Orion
high-rate readout
field.hpp
1 
5 #pragma once
6 
7 namespace itk {
8 
15 template<typename U, typename IRegister>
16 class Field {
17 public:
18  using fld_t = U;
19  using reg_t = IRegister::reg_t;
20  using Register = IRegister;
21  using RegMem = IRegister::RegMem;
22  using Commander = IRegister::Commander;
23 
25  virtual ~Field() = default;
26 
30  virtual fld_t get(const RegMem &regmem) const = 0;
31 
35  virtual void set(RegMem &regmem, fld_t value) const = 0;
36 
42  virtual void read(RegMem &regmem, Commander &cmdr) const = 0;
43 
49  virtual void write(RegMem &regmem, Commander &cmdr, fld_t value) const = 0;
50 
52 
55  virtual std::string get_name() const = 0;
56 
59  virtual std::string get_desc() const = 0;
60 
61 }; // Field
62 
63 } // itk
Interface definition for field.
Definition: field.hpp:16
virtual void write(RegMem &regmem, Commander &cmdr, fld_t value) const =0
Set field value in memory and write commands sequence to modify field value in chip to cmdr buffer,...
virtual void set(RegMem &regmem, fld_t value) const =0
Set field value into the memory.
virtual std::string get_name() const =0
Properties.
virtual ~Field()=default
Default destructor.
virtual std::string get_desc() const =0
Get field description.
virtual fld_t get(const RegMem &regmem) const =0
Get field value from the memory.
virtual void read(RegMem &regmem, Commander &cmdr) const =0
Set field value in memory and write commands sequence to modify field value in chip to cmdr buffer,...