8 #include "itk/fec/procdefs.hpp"
18 template<
typename IField>
19 class Chip :
public IField::RegMem {
22 using RegMem = IField::RegMem;
23 using Register = IField::Register;
24 using Commander = IField::Commander;
25 using reg_t = IField::reg_t;
26 using fld_t = IField::fld_t;
34 virtual const Register*
find_reg(uint16_t addr)
const = 0;
35 virtual const Register*
find_reg(
const std::string& name)
const = 0;
42 virtual reg_t
get_reg(uint16_t addr)
const = 0;
43 virtual reg_t
get_reg(
const Register ®)
const = 0;
44 virtual reg_t
get_reg(
const std::string& name)
const = 0;
51 virtual void set_reg(uint16_t addr, reg_t value) = 0;
52 virtual void set_reg(
const Register ®, reg_t value) = 0;
53 virtual void set_reg(
const std::string& name, reg_t value) = 0;
61 virtual void read_reg(
const Register ®) = 0;
62 virtual void read_reg(
const std::string& name) = 0;
70 virtual void write_reg(uint16_t addr, reg_t value) = 0;
71 virtual void write_reg(
const Register ®, reg_t value) = 0;
72 virtual void write_reg(
const std::string& name, reg_t value) = 0;
80 virtual const Field*
find_fld(
const std::string& name)
const = 0;
86 virtual fld_t
get_fld(
const Field &fld)
const = 0;
87 virtual fld_t
get_fld(
const std::string& name)
const = 0;
93 virtual void set_fld(
const Field &fld, fld_t value) = 0;
94 virtual void set_fld(
const std::string& name, fld_t value) = 0;
101 virtual void read_fld(
const std::string& name) = 0;
108 virtual void write_fld(
const Field &fld, fld_t value) = 0;
109 virtual void write_fld(
const std::string& name, fld_t value) = 0;
Interface definition for chip.
Definition: chip.hpp:19
virtual void read_reg(uint16_t addr)=0
Write command sequence to Commander buffer to read register value from the chip, does not send comman...
virtual void set_fld(const Field &fld, fld_t value)=0
Set field value in memory by field name or reference. Does not send any commands to chip.
virtual void write_reg(uint16_t addr, reg_t value)=0
Set register value in memory and appends commands sequence to modify register value in chip to Comman...
virtual void set_reg(uint16_t addr, reg_t value)=0
Set register value in memory by register name, address or reference. Does not send any commands to ch...
virtual void read_fld(const Field &fld)=0
Write command sequence to Commander buffer to read register value from the chip, does not send comman...
virtual void write_fld(const Field &fld, fld_t value)=0
Set field value in memory and appends commands sequence to modify field value in chip to Commander bu...
virtual reg_t get_reg(uint16_t addr) const =0
Get register value from the memory by register name, address or reference.
virtual const Field * find_fld(const std::string &name) const =0
Field methods.
virtual void configure()=0
Configures chip, actually sends command over e-link via Commander.
virtual void send()=0
Sends data accumulated in command buffer over the e-link.
virtual fld_t get_fld(const Field &fld) const =0
Get field value from the memory by field name or reference.
virtual const Register * find_reg(uint16_t addr) const =0
Register methods.
Common types and constants definitions.