Orion
high-rate readout
commander.hpp
Go to the documentation of this file.
1 
5 #pragma once
6 
7 #include "itk/fec/commander.hpp"
8 
9 
10 namespace itk::itkpix {
11 
16 class Commander : public itk::Commander {
17 public:
18 
20  virtual void idle() = 0;
21 
23  virtual void sync() = 0;
24 
28  virtual void trig(uint16_t bc, uint16_t tag) = 0;
29 
33  virtual void read_trig(uint8_t chip_id, uint8_t ext_tag) = 0;
34 
37  virtual void clear(uint8_t chip_id) = 0;
38 
41  virtual void global(uint8_t chip_id) = 0;
42 
50  virtual void calib(uint8_t chip_id,
51  uint8_t edg_mode, uint8_t edg_delay, uint8_t edg_width,
52  uint8_t aux_mode, uint8_t aux_delay) = 0;
53 
57  virtual void read_reg(uint8_t chip_id, uint16_t addr) = 0;
58 
63  virtual void write_reg(uint8_t chip_id, uint16_t addr, uint16_t data) = 0;
64 
67  virtual void write_pix_start(uint8_t chip_id) = 0;
68 
71  virtual void write_pix_next(uint16_t data) = 0;
72 
76  virtual void write_pix_portal(uint8_t chip_id, std::span<const uint16_t> data) = 0;
77 
81  virtual void trig_fw(uint count, uint delay) = 0;
82 
83 };
84 
85 } // itk::itkpix
Commander interface to send 16 bit commands over e-link.
Definition: commander.hpp:18
ITkPix Commander interface.
Definition: commander.hpp:16
virtual void trig(uint16_t bc, uint16_t tag)=0
Writing 'trigger' command.
virtual void write_reg(uint8_t chip_id, uint16_t addr, uint16_t data)=0
Writing 'write register' command.
virtual void clear(uint8_t chip_id)=0
Writing 'clear' command.
virtual void write_pix_portal(uint8_t chip_id, std::span< const uint16_t > data)=0
Writing data block to pixel portal.
virtual void write_pix_start(uint8_t chip_id)=0
Writing 'write pixel' start command.
virtual void read_reg(uint8_t chip_id, uint16_t addr)=0
Writing 'read register' command.
virtual void trig_fw(uint count, uint delay)=0
Writing firmware trigger command.
virtual void global(uint8_t chip_id)=0
Writing 'global' command.
virtual void idle()=0
Writing 'idle' frame.
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
Writing 'calib' command.
virtual void write_pix_next(uint16_t data)=0
Writing 'write pixel' next command.
virtual void sync()=0
Writing 'sync' frame.
virtual void read_trig(uint8_t chip_id, uint8_t ext_tag)=0
Writing 'trigger read' command.