lhtransmitterswitchapi.h 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. #ifndef LHTRANSMITTERSWITCHAPI_H
  2. #define LHTRANSMITTERSWITCHAPI_H
  3. #include <QString>
  4. #include <QWidget>
  5. #include <QDateTime>
  6. /**
  7. * @brief 周几枚举
  8. *
  9. */
  10. enum class enum_WeekDay : int
  11. {
  12. WeekDay_Mon = 1, /* 周一 */
  13. WeekDay_Tue = 2, /* 周二 */
  14. WeekDay_Wed = 3, /* 周三 */
  15. WeekDay_Thu = 4, /* 周四 */
  16. WeekDay_Fri = 5, /* 周五 */
  17. WeekDay_Sat = 6, /* 周六 */
  18. WeekDay_Sun = 7, /* 周日 */
  19. WeekDay_Special = 8 /* 特殊日 */
  20. };
  21. /**
  22. * @brief 用户权限枚举
  23. *
  24. */
  25. enum class eUserPermission : int
  26. {
  27. User_Administrator = 0, /* 管理员 */
  28. User_Normal = 1, /* 普通用户 */
  29. };
  30. /* 初始化数据 */
  31. struct InitData
  32. {
  33. int userPermission = 0; /* 用户权限,0是普通用户,1是管理员 */
  34. QString url;
  35. QString serverID;
  36. QString serverKey;
  37. };
  38. /**
  39. * @brief 用于传输执行计划相关的信息
  40. *
  41. */
  42. struct ExecPlanInfo
  43. {
  44. int ChannelID = -1; /* 频率ID */
  45. QString ChannelName; /* 频率名称 */
  46. QString DatabasePath; /* 数据库路径 */
  47. ExecPlanInfo& operator=(const ExecPlanInfo& info)
  48. {
  49. ChannelID = info.ChannelID;
  50. ChannelName = info.ChannelName;
  51. DatabasePath = info.DatabasePath;
  52. return *this;
  53. }
  54. };
  55. /**
  56. * @brief 页面的其他配置信息
  57. *
  58. */
  59. struct ExecPlanConfig
  60. {
  61. int isUsingPlan; /* 是否使用执行计划,0不使用,1使用 */
  62. int execMdoe; /* 执行模式,0按时刻,1按天 */
  63. };
  64. /**
  65. * @brief 执行计划条目信息
  66. *
  67. */
  68. struct OnePlanItemInfo
  69. {
  70. int ChannelID; /* 频率ID */
  71. QString ChannelName; /* 频率名称 */
  72. enum_WeekDay onWeekDay; /* 周几,数据库里是1-7一周,周8是特殊日 */
  73. QDateTime onDateTime; /* 时间和日期 */
  74. enum_WeekDay offWeekDay; /* 周几,数据库里是1-7一周,周8是特殊日 */
  75. QDateTime offDateTime; /* 时间和日期 */
  76. OnePlanItemInfo();
  77. OnePlanItemInfo(const OnePlanItemInfo& item);
  78. OnePlanItemInfo& operator=(const OnePlanItemInfo& item);
  79. };
  80. /* 回调函数 */
  81. using trackCallBack = void(*)(int actionID, QString strMemo);
  82. class LHTransmitterSwitchAPI
  83. {
  84. using pInit = int(*)(const InitData*);
  85. using pCreateWindow = int(*)(int, QWidget*);
  86. using pShowWindow = int(*)(int, bool);
  87. using pGetExecPlanFromEQM = int(*)();
  88. using pSaveExecPlanToEQM = int(*)();
  89. using pRelease = int(*)();
  90. using pSetCallBack = int(*)(trackCallBack);
  91. using pSetUserPermission = int(*)(int);
  92. using pDoInitLibrary = int(*)();
  93. using pCreateOneWindow = int(*)(int, QWidget*);
  94. using pSetWebAPIInfo = int(*)(const InitData*);
  95. using pSetChannelInfo = int(*)(ExecPlanInfo*, int);
  96. using pSetOnePageCardNum = int(*)(int, int);
  97. using pGetPlanData = int(*)(QList<OnePlanItemInfo>*, ExecPlanConfig*, int);
  98. using pSetPlanData = int(*)(QList<OnePlanItemInfo>*, ExecPlanConfig*, int);
  99. using pClearAll = int(*)();
  100. public:
  101. LHTransmitterSwitchAPI();
  102. ~LHTransmitterSwitchAPI();
  103. /* 加载动态库 */
  104. bool loadLibrary();
  105. int DoInit(const InitData* pData);
  106. int DoCreateWindow(int skintype, QWidget* parent);
  107. int DoShowWindow(int skintype, bool showWindow);
  108. int DoGetExecPlanFromEQM();
  109. int DoSaveExecPlanToEQM();
  110. int DoRelease();
  111. int DoSetCallBack(trackCallBack cb);
  112. int DoSetUserPermission(int userPermission);
  113. int DoInitLibrary();
  114. int DoCreateOneWindow(int skintype, QWidget* parent);
  115. int DoSetWebAPIInfo(InitData* pData);
  116. int DoSetChannelInfo(ExecPlanInfo* info, bool useOnlineDB = true);
  117. int DoSetOnePageCardNum(int horNum, int verNum);
  118. int DoGetPlanData(QList<OnePlanItemInfo>* listPlan, ExecPlanConfig* config, int channelID = 0);
  119. int DoSetPlanData(QList<OnePlanItemInfo>* listPlan, ExecPlanConfig* config, int channelID = 0);
  120. int DoClearAll();
  121. private:
  122. pInit m_pInit = nullptr;
  123. pCreateWindow m_pCreateWindow = nullptr;
  124. pShowWindow m_pShowWindow = nullptr;
  125. pGetExecPlanFromEQM m_pGetExecPlanFromEQM = nullptr;
  126. pSaveExecPlanToEQM m_pSaveExecPlanToEQM = nullptr;
  127. pRelease m_pRelease = nullptr;
  128. pSetCallBack m_pSetCallBack = nullptr;
  129. pSetUserPermission m_pSetUserPermission = nullptr;
  130. pDoInitLibrary m_pDoInitLibrary = nullptr;
  131. pCreateOneWindow m_pCreateOneWindow = nullptr;
  132. pSetWebAPIInfo m_pSetWebAPIInfo = nullptr;
  133. pSetChannelInfo m_pSetChannelInfo = nullptr;
  134. pSetOnePageCardNum m_pSetOnePageCardNum = nullptr;
  135. pGetPlanData m_pGetPlanData = nullptr;
  136. pSetPlanData m_pSetPlanData = nullptr;
  137. pClearAll m_pClearAll = nullptr;
  138. };
  139. #endif /* LHTRANSMITTERSWITCHAPI_H */