camcom 1.0.0-pre2
 
Loading...
Searching...
No Matches
camera_controller.hpp
Go to the documentation of this file.
1
6
7#ifndef CAMCOM_TESTBENCH_CAMERA_CONTROLLER_HPP
8#define CAMCOM_TESTBENCH_CAMERA_CONTROLLER_HPP
9
15#include <vector>
16#include <span>
17#include <memory>
18#include <atomic>
19
20namespace camcom::server {
21
23public:
24 explicit CameraController(const ServerConfig& config);
26
27 bool connect();
28 void disconnect();
29 bool isConnected() const;
30 std::string getProtocol() const;
31
32 void applySetValues();
33 void startAcquisition();
34 void stopAcquisition();
35 std::string getState() const;
38
39 // Parameter access
40 std::vector<common::Parameter> scan();
42 common::Parameter readParameter(const std::string& param_name);
43 std::vector<common::Parameter> readParameters(const std::vector<std::string>& names);
44 void writeParameter(const common::Parameter& param, bool skip_acq_management = false);
45
48 std::string resolveCameraName(const std::string& param_name) const;
49 std::string resolveGenericName(const std::string& param_name) const;
50
51 // Frame reception
52 void receiveFrame(bool& received, std::vector<uint8_t>& buffer, common::FrameInfo& frame_info);
53
54 private:
55 ServerConfig config_;
56 std::unique_ptr<AdapterLoader> loader_;
58 std::atomic<bool> acquisition_running_{false};
59
60 // Enforce expo_time/frame_rate constraints (if setup.auto_adjust_expo_time_rate)
61 // Uses adapter's GetBasicParams() for standardized values.
62 void enforceExpoRateConstraint();
63};
64
65} // namespace camcom::server
66
67#endif
Header file for the CamCom Common Library.
Definition adapterBase.hpp:69
Definition frameInfo.hpp:23
Definition parameter.hpp:24
common::Parameter readParameter(const std::string &param_name)
Definition camera_controller.cpp:273
common::NativeDocument getNativeParameterDocument() const
Definition camera_controller.cpp:266
CameraController(const ServerConfig &config)
Definition camera_controller.cpp:17
bool isConnected() const
Definition camera_controller.cpp:119
std::string resolveGenericName(const std::string &param_name) const
Definition camera_controller.cpp:135
std::string getState() const
Definition camera_controller.cpp:352
common::BasicParams getBasicParams() const
Definition camera_controller.cpp:250
std::string getProtocol() const
Definition camera_controller.cpp:123
std::vector< common::Parameter > scan()
Definition camera_controller.cpp:257
void disconnect()
Definition camera_controller.cpp:107
void stopAcquisition()
Definition camera_controller.cpp:226
void writeParameter(const common::Parameter &param, bool skip_acq_management=false)
Definition camera_controller.cpp:287
void receiveFrame(bool &received, std::vector< uint8_t > &buffer, common::FrameInfo &frame_info)
Definition camera_controller.cpp:339
std::string resolveCameraName(const std::string &param_name) const
Definition camera_controller.cpp:130
std::vector< common::Parameter > readParameters(const std::vector< std::string > &names)
Definition camera_controller.cpp:280
common::AcquisitionState getAcquisitionState() const
Definition camera_controller.cpp:243
void startAcquisition()
Definition camera_controller.cpp:209
void applySetValues()
Definition camera_controller.cpp:140
~CameraController()
Definition camera_controller.cpp:20
bool connect()
Definition camera_controller.cpp:31
Header file for the CamCom Common Library.
Definition adapter_loader.cpp:11
Header file for the CamCom Common Library.
Current acquisition state information.
Definition adapterBase.hpp:40
Standardized basic camera parameters in common units.
Definition basicParams.hpp:38
Native parameter document from camera (protocol-specific)
Definition adapterBase.hpp:49
Main server configuration.
Definition config.hpp:157