|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- #pragma once
-
- #include <QObject>
- #include <QString>
- #include <QVariant>
- #include <QList>
- #include <QStringList>
-
- /**
- * @brief 数据项结构
- * 用于数据传输的基本单元
- */
- struct DataItem {
- int ID;
- QVariant value;
-
- // 添加构造函数
- DataItem(int id = 0, const QVariant& val = QVariant())
- : ID(id), value(val) {}
- };
-
-
- /**
- * @brief 数据点信息结构
- * 描述数据点的详细信息
- */
- struct DataPointInfo {
- int ID; // 数据点编号
- QString name; // 数据点名称
- QString dataType; // 数据类型
- };
-
- /**
- * @brief DDS插件接口类
- */
- class AuseftDDSPluginInterface
- {
- public:
- // 定义支持的数据类型列表
- static const inline QStringList SupportedTypes = {
- "bool", // 布尔型
- "int8", // 8位整型
- "uint8", // 8位无符号整型
- "int16", // 16位整型
- "uint16", // 16位无符号整型
- "int32", // 32位整型
- "uint32", // 32位无符号整型
- "int64", // 64位整型
- "uint64", // 64位无符号整型
- "float", // 单精度浮点
- "double", // 双精度浮点
- "string" // 字符串
- };
-
- // 验证数据类型是否支持
- static bool isTypeSupported(const QString& type) {
- return SupportedTypes.contains(type.toLower());
- }
-
- virtual ~AuseftDDSPluginInterface() {}
-
- /**
- * @brief 初始化插件
- * @param domainId DDS域ID
- * @param domainName DDS域名称
- * @return 是否初始化成功
- */
- virtual Q_INVOKABLE bool init(uint32_t domainId, const QString& domainName) = 0;
-
- /**
- * @brief 获取所有支持的数据点信息
- * @return 数据点信息列表
- */
- virtual Q_INVOKABLE QList<DataPointInfo> getDataPoints() = 0;
-
- /**
- * @brief 发布数据
- * @param dataList 要发布的数据列表
- * @return 是否发布成功
- */
- virtual Q_INVOKABLE bool publishData(const QList<DataItem>& dataList) = 0;
-
- /**
- * @brief 配置PLC参数
- * @param
- * @return 是否配置是否成功
- */
- virtual Q_INVOKABLE bool config()=0;
- /**
- * @brief 数据更新回调
- * @param dataList 更新的数据列表
- */
- signals:
-
- //通知调用者数据已变化
- void onDataUpdated(const QList<DataItem>& dataList) ;
- //通知调用者参数配置完成
- void onCongifOver(const QList<DataItem>& dataList) ;
-
- };
-
- #define AuseftDDSPluginInterface_iid "Com.Auseft.AuseftDDSPluginInterface"
- Q_DECLARE_INTERFACE(AuseftDDSPluginInterface, AuseftDDSPluginInterface_iid)
|