#ifndef REGISTERCHAIN_H #define REGISTERCHAIN_H #include "model/hardware/core/register/Field.h" #include "model/hardware/device/SonoDevice.h" class RegisterChain { private: virtual void prepareData(quint32 index)=0; //virtual void receiveData(void); protected: quint32 _bar; quint32 _offset; quint32 _baseOffset; quint32 _arrayLength; quint8 _arrayDepth; quint32 _value; bool _isUpdated; QList _fields; SonoDevice* _device; public: RegisterChain(quint8 bar, quint32 offset, SonoDevice* device, quint32 arrayLength); // Constructor for general Registers: single and array virtual ~RegisterChain(); quint32 getValue(); void setValue(quint32 value); void changeOffset(quint32 offset); quint32 getCurrentOffset (void) const; bool isUpdated(); void update(); void upadteArray(); void sync(); void syncArray(); }; #endif // REGISTERCHAIN_H