HORIBA C++ SDK
Library for HORIBA devices
Loading...
Searching...
No Matches
icl_device_manager.h
Go to the documentation of this file.
1#ifndef ICL_DEVICE_MANAGER_H
2#define ICL_DEVICE_MANAGER_H
3
7
8#include <string>
9
11
12namespace horiba::communication {
13class Communicator;
14} /* namespace horiba::communication */
15
16namespace horiba::devices {
17
22class ICLDeviceManager final : public DeviceManager {
23 public:
35 explicit ICLDeviceManager(std::shared_ptr<horiba::os::Process> icl_process,
36 std::string websocket_ip = "127.0.0.1",
37 std::string websocket_port = "25010",
38 bool manage_icl_lifetime = true,
39 bool enable_binary_messages = false);
40
45 void start() override;
46
51 void stop() override;
52
59 void discover_devices(bool error_on_no_device = false) override;
60
66 [[nodiscard]] std::vector<
67 std::shared_ptr<horiba::devices::single_devices::Monochromator>>
68 monochromators() const override;
69
75 [[nodiscard]] std::vector<
76 std::shared_ptr<horiba::devices::single_devices::ChargeCoupledDevice>>
77 charge_coupled_devices() const override;
78
84 [[nodiscard]] std::vector<
85 std::shared_ptr<horiba::devices::single_devices::SpectrAcq3>>
86 spectracq3_devices() const override;
87
88 private:
89 std::shared_ptr<horiba::os::Process> icl_process;
90 std::string websocket_ip;
91 std::string websocket_port;
92 bool manage_icl_lifetime;
93 bool enable_binary_messages;
94 std::shared_ptr<horiba::communication::Communicator> communicator;
95 std::vector<std::shared_ptr<horiba::devices::single_devices::Monochromator>>
96 monos;
97 std::vector<
98 std::shared_ptr<horiba::devices::single_devices::ChargeCoupledDevice>>
99 ccds;
100 std::vector<std::shared_ptr<horiba::devices::single_devices::SpectrAcq3>>
101 spectracq3s;
102
103 void enable_binary_messages_on_icl();
104};
105} /* namespace horiba::devices */
106
107#endif /* ifndef ICL_DEVICE_MANAGER_H */
Interface representing a communication channel with the ICL.
Definition communicator.h:12
Responsible to detect and and manage Horiba devices connected to the computer.
Definition device_manager.h:19
std::vector< std::shared_ptr< horiba::devices::single_devices::ChargeCoupledDevice > > charge_coupled_devices() const override
The connected charge coupled devices.
std::vector< std::shared_ptr< horiba::devices::single_devices::Monochromator > > monochromators() const override
The connected monochromators.
ICLDeviceManager(std::shared_ptr< horiba::os::Process > icl_process, std::string websocket_ip="127.0.0.1", std::string websocket_port="25010", bool manage_icl_lifetime=true, bool enable_binary_messages=false)
Creates a device manager that uses the ICL to communicate with the devices.
void discover_devices(bool error_on_no_device=false) override
Discovers connected Horiba devices to the ICL.
void stop() override
Stops the ICL device manager. Also stops the icl.exe if managing its lifecycle.
std::vector< std::shared_ptr< horiba::devices::single_devices::SpectrAcq3 > > spectracq3_devices() const override
The connected SpectrAcq3s.
void start() override
Starts the ICL device manager. Also starts the icl.exe if managing its lifecycle.
Definition command.h:9
Definition ccds_discovery.h:11