You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

29 lines
737 B

  1. #ifndef REGISTERMANAGER_H
  2. #define REGISTERMANAGER_H
  3. #include <QObject>
  4. #include "item.h"
  5. class RegisterManager : public QObject
  6. {
  7. Q_OBJECT
  8. public:
  9. explicit RegisterManager(QObject *parent = nullptr);
  10. // 注册图元与寄存器绑定关系
  11. void bindItem(Item* item, const QString& registerId);
  12. // 更新寄存器值
  13. void updateRegisterValue(const QString& registerId, quint16 value);
  14. QStringList getAllRegisteredRegisters() const;
  15. // 获取绑定特定寄存器的所有图元
  16. QList<Item*> getItemsForRegister(const QString& registerId) const;
  17. private:
  18. // 寄存器到图元的映射 (寄存器ID -> 图元列表)
  19. QMap<QString, QList<Item*>> registerMap;
  20. };
  21. #endif // REGISTERMANAGER_H