HORIBA C++ SDK
Library for HORIBA devices
Loading...
Searching...
No Matches
mono.h
Go to the documentation of this file.
1#ifndef MONO_H
2#define MONO_H
3
6
7#include <nlohmann/json.hpp>
8#include <string>
9
11
20class Monochromator final : public Device {
21 public:
23 std::shared_ptr<communication::Communicator> communicator);
24 ~Monochromator() override = default;
25
30 enum class Shutter : int { FIRST, SECOND };
31
35 enum class ShutterPosition : int { CLOSED, OPENED };
36
41 enum class Grating : int { FIRST, SECOND, THIRD };
42
47 enum class FilterWheel : int { FIRST, SECOND };
48
53 enum class FilterWheelPosition : int { RED, GREEN, BLUE, YELLOW };
54
59 enum class Mirror : int { ENTRANCE, EXIT };
60
64 enum class MirrorPosition : int { AXIAL, LATERAL };
65
70 enum class Slit : int { A, B, C, D };
71
77 void open() noexcept(false) override;
78
84 void close() noexcept(false) override;
85
93 bool is_open() noexcept(false);
94
102 bool is_busy() noexcept(false);
103
113 void home(bool force_homing = false) noexcept(false);
114
125 bool initialized() noexcept(false);
126
134 nlohmann::json configuration() noexcept(false);
135
143 double get_current_wavelength() noexcept(false);
144
156 void calibrate_wavelength(double wavelength) noexcept(false);
157
167 void move_to_target_wavelength(double wavelength) noexcept(false);
168
177 Grating get_turret_grating() noexcept(false);
178
187 void set_turret_grating(Grating grating) noexcept(false);
188
200 FilterWheel filter_wheel) noexcept(false);
201
212 FilterWheelPosition position) noexcept(false);
213
226
236 MirrorPosition position) noexcept(false);
237
248 double get_slit_position_in_mm(Slit slit) noexcept(false);
249
259 void set_slit_position(Slit slit, double position_in_mm) noexcept(false);
260
270 int get_slit_step_position(Slit slit) noexcept(false);
271
281 void set_slit_step_position(Slit slit, int step_position) noexcept(false);
282
288 void open_shutter() noexcept(false);
289
295 void close_shutter() noexcept(false);
296
308
317 void wait_until_ready(std::chrono::seconds timeout) noexcept(false);
318};
319} // namespace horiba::devices::single_devices
320#endif /* ifndef MONO_H */
Device(int id, std::shared_ptr< communication::Communicator > communicator)
void set_mirror_position(Mirror mirror, MirrorPosition position) noexcept(false)
Sets the position of the selected mirror.
Mirror
Mirrors installed in the monochromator. Depending on the model, not all mirrors may be available.
Definition mono.h:59
Monochromator(int id, std::shared_ptr< communication::Communicator > communicator)
Slit
Slits available on the monochromator. Depending on the model, not all slits may be available.
Definition mono.h:70
void set_slit_step_position(Slit slit, int step_position) noexcept(false)
Sets the step position of the selected slit.
Grating
Gratings installed in the monochromator. Depending on the model, not all gratings may be available.
Definition mono.h:41
void calibrate_wavelength(double wavelength) noexcept(false)
This command sets the wavelength value of the current grating position of the monochromator.
ShutterPosition
Position of the shutter.
Definition mono.h:35
void wait_until_ready(std::chrono::seconds timeout) noexcept(false)
Blocking waits until the monochromator is ready.
FilterWheelPosition get_filter_wheel_position(FilterWheel filter_wheel) noexcept(false)
Current position of the filter wheel.
MirrorPosition get_mirror_position(Mirror mirror) noexcept(false)
Position of the selected mirror.
FilterWheelPosition
Positions of the filter wheel installed in the monochromator. Depending on the model,...
Definition mono.h:53
void home(bool force_homing=false) noexcept(false)
Starts the monochromator initialization process called "homing".
int get_slit_step_position(Slit slit) noexcept(false)
Returns the step position of the selected slit.
void close() noexcept(false) override
Closes the device.
void set_filter_wheel_position(FilterWheel filter_wheel, FilterWheelPosition position) noexcept(false)
Sets the current position of the filter wheel.
bool is_open() noexcept(false)
Checks if the connection to the monochromator is open.
void open_shutter() noexcept(false)
Opens the shutter.
void set_slit_position(Slit slit, double position_in_mm) noexcept(false)
Sets the position of the selected slit.
void move_to_target_wavelength(double wavelength) noexcept(false)
Orders the monochromator to move to the requested wavelength.
MirrorPosition
Possible positions of the mirrors.
Definition mono.h:64
FilterWheel
Filter wheels installed in the monochromator. Depending on the model, not all filter wheels may be av...
Definition mono.h:47
void close_shutter() noexcept(false)
Closes the shutter.
nlohmann::json configuration() noexcept(false)
Returns the configuration of the monochromator.
double get_current_wavelength() noexcept(false)
Current wavelength of the monochromator's position in nm.
bool is_busy() noexcept(false)
Checks if the monochromator is busy.
double get_slit_position_in_mm(Slit slit) noexcept(false)
Returns the position in millimeters[mm] of the selected slit.
Grating get_turret_grating() noexcept(false)
Current grating of the turret.
Shutter
Shutters installed in the monochromator. Depending on the model, not all shutters may be available.
Definition mono.h:30
void set_turret_grating(Grating grating) noexcept(false)
Select turret grating.
bool initialized() noexcept(false)
Checks if the monochromator is initialized.
ShutterPosition get_shutter_position(Shutter shutter) noexcept(false)
Returns the shutter position.
void open() noexcept(false) override
Opens the device.
Definition device_manager.h:7