/workspaces/astro/sol3-sdk/cpp/sol3/camera_module/camera_snapshot_component.h Source File

Space-ng SDK: /workspaces/astro/sol3-sdk/cpp/sol3/camera_module/camera_snapshot_component.h Source File
Space-ng SDK
camera_snapshot_component.h
Go to the documentation of this file.
1 // Copyright (c) Space-ng, inc. All rights reserved.
2 #pragma once
3 
7 
8 #include <cstdint>
9 #include <memory>
10 
11 namespace sol3::camera_module {
12 
15  public:
17  core::IBufferExchange& exchange, uint32_t component_id);
18 
23  void poll();
24 
25  private:
26  void takeSnapshot(
27  core::MessageView<CameraModuleSpec::RawFrame> const& raw_frame_view);
28  void publishTelemetry();
29  void ensureSnapshotOutputCapacity(
30  core::MessageView<CameraModuleSpec::RawFrame> const& raw_frame_view);
31 
32  uint32_t component_id_ = 0;
33  core::IBufferExchange* exchange_ = nullptr;
36  std::unique_ptr<core::MessageOutput<CameraModuleSpec::RawFrameSnapshot>>
37  snapshot_output_;
39  telemetry_output_;
40 };
41 
42 } // namespace sol3::camera_module
Produces RawFrameSnapshot messages from the RawFrame stream.
Definition: camera_snapshot_component.h:14
CameraSnapshotComponent(core::IBufferExchange &exchange, uint32_t component_id)
Interface for registering, discovering, and disposing shared buffers.
Definition: shmem_buffer.h:112
Definition: message_input.h:23
Definition: message_output.h:20
Definition: message_view.h:14
Definition: camera_component.h:8