|
- #pragma once
-
- #include "register_repository.h"
-
- // 根据当前运行模式把寄存器访问转发给虚拟仓库或 PLC 缓存仓库
- class ActiveRegisterRepository final : public RegisterRepository
- {
- public:
- explicit ActiveRegisterRepository(RegisterRepository &initial_repository);
-
- // 切换活动仓库;运行模式服务负责保证切换时机和生命周期
- void use(RegisterRepository &repository);
- BitReadResult readBit(const RegisterAddress &address) const override;
- RegisterWriteResult writeBit(const RegisterAddress &address, bool value) override;
- WordReadResult readWord(const RegisterAddress &address) const override;
- RegisterWriteResult writeWord(
- const RegisterAddress &address, std::int16_t value) override;
- WordPairReadResult readWordPair(const RegisterAddress &address) const override;
- RegisterWriteResult writeWordPair(
- const RegisterAddress &address,
- const std::array<std::int16_t, 2> &values) override;
-
- private:
- RegisterRepository *repository_ = nullptr;
- };
|