综合平台编程器项目的远程存储
Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
 
 
 
 

22 righe
824 B

  1. #pragma once
  2. #include "register_repository.h"
  3. // 根据当前运行模式把寄存器访问转发给虚拟仓库或 PLC 缓存仓库
  4. class ActiveRegisterRepository final : public RegisterRepository
  5. {
  6. public:
  7. explicit ActiveRegisterRepository(RegisterRepository &initial_repository);
  8. // 切换活动仓库;运行模式服务负责保证切换时机和生命周期
  9. void use(RegisterRepository &repository);
  10. BitReadResult readBit(const RegisterAddress &address) const override;
  11. RegisterWriteResult writeBit(const RegisterAddress &address, bool value) override;
  12. WordReadResult readWord(const RegisterAddress &address) const override;
  13. RegisterWriteResult writeWord(
  14. const RegisterAddress &address, std::int16_t value) override;
  15. private:
  16. RegisterRepository *repository_ = nullptr;
  17. };