12 namespace itk::itkpix::cmd {
35 virtual void trig(uint8_t bc, uint8_t tag) = 0;
40 virtual void read_trig(uint8_t chip_id, uint8_t ext_tag) = 0;
44 virtual void clear(uint8_t chip_id) = 0;
48 virtual void global(uint8_t chip_id) = 0;
57 virtual void calib(uint8_t chip_id,
58 uint8_t edg_mode, uint8_t edg_delay, uint8_t edg_width,
59 uint8_t aux_mode, uint8_t aux_delay) = 0;
64 virtual void read_reg(uint8_t chip_id, uint16_t addr) = 0;
70 virtual void write_reg(uint8_t chip_id, uint16_t addr, uint16_t data) = 0;
104 {
self.
idle() } -> std::same_as<void>;
109 {
self.sync() } -> std::same_as<void>;
115 requires(T
self, uint8_t bc, uint8_t tag) {
116 {
self.trig(bc, tag) } -> std::same_as<void>;
122 requires(T
self, uint8_t chip_id, uint8_t ext_tag) {
123 {
self.read_trig(chip_id, ext_tag) } -> std::same_as<void>;
128 requires(T
self, uint8_t chip_id) {
129 {
self.clear(chip_id) } -> std::same_as<void>;
134 requires(T
self, uint8_t chip_id) {
135 {
self.global(chip_id) } -> std::same_as<void>;
145 requires(T
self, uint8_t chip_id,
146 uint8_t edg_mode, uint8_t edg_delay, uint8_t edg_width,
147 uint8_t aux_mode, uint8_t aux_delay)
149 {
self.calib(chip_id, edg_mode, edg_delay, edg_width, aux_mode, aux_delay) } -> std::same_as<void>;
155 requires(T
self, uint8_t chip_id, uint16_t addr) {
156 {
self.read_reg(chip_id, addr) } -> std::same_as<void>;
163 requires(T
self, uint8_t chip_id, uint16_t addr, uint16_t data) {
164 {
self.write_reg(chip_id, addr, data) } -> std::same_as<void>;
169 requires(T
self, uint8_t chip_id) {
170 {
self.write_pix_start(chip_id) } -> std::same_as<void>;
175 requires(T
self, uint16_t data) {
176 {
self.write_pix_next(data) } -> std::same_as<void>;
179 requires(T
self, uint16_t frame) {
180 {
self.on_warning(frame) } -> std::same_as<void>;
183 requires(T
self, uint16_t frame) {
184 {
self.on_error(frame) } -> std::same_as<void>;
Command callback interface for ITkPix.
Definition: cmdcallback.hpp:20
virtual void sync()=0
'sync' command
virtual void on_warning(uint16_t frame)=0
on_warning callback
virtual void trig(uint8_t bc, uint8_t tag)=0
trigger command
virtual void write_reg(uint8_t chip_id, uint16_t addr, uint16_t data)=0
write register command
virtual void write_pix_next(uint16_t data)=0
next multi-write command to PIX_PORTAL
virtual void global(uint8_t chip_id)=0
global pulse command
virtual void idle()=0
'idle' command
virtual void read_trig(uint8_t chip_id, uint8_t ext_tag)=0
read trigger command
virtual void clear(uint8_t chip_id)=0
clear command
virtual void write_pix_start(uint8_t chip_id)=0
start multi-write command to PIX_PORTAL
virtual ~CommandCallback()=default
Destructor.
virtual void calib(uint8_t chip_id, uint8_t edg_mode, uint8_t edg_delay, uint8_t edg_width, uint8_t aux_mode, uint8_t aux_delay)=0
calibration command
virtual void read_reg(uint8_t chip_id, uint16_t addr)=0
read register command
virtual void on_error(uint16_t frame)=0
on_error callback