lhtransmitterswitchapi.h 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  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. struct InitData
  23. {
  24. QString url;
  25. QString serverID;
  26. QString serverKey;
  27. };
  28. /**
  29. * @brief 用于传输执行计划相关的信息
  30. *
  31. */
  32. struct ExecPlanInfo
  33. {
  34. int ChannelID = -1; /* 频率ID */
  35. QString ChannelName; /* 频率名称 */
  36. QString DatabasePath; /* 数据库路径 */
  37. ExecPlanInfo& operator=(const ExecPlanInfo& info)
  38. {
  39. ChannelID = info.ChannelID;
  40. ChannelName = info.ChannelName;
  41. DatabasePath = info.DatabasePath;
  42. return *this;
  43. }
  44. };
  45. /**
  46. * @brief 页面的其他配置信息
  47. *
  48. */
  49. struct ExecPlanConfig
  50. {
  51. int isUsingPlan; /* 是否使用执行计划,0不使用,1使用 */
  52. int execMdoe; /* 执行模式,0按时刻,1按天 */
  53. };
  54. /**
  55. * @brief 执行计划条目信息
  56. *
  57. */
  58. struct OnePlanItemInfo
  59. {
  60. int ChannelID; /* 频率ID */
  61. QString ChannelName; /* 频率名称 */
  62. enum_WeekDay onWeekDay; /* 周几,数据库里是1-7一周,周8是特殊日 */
  63. QDateTime onDateTime; /* 时间和日期 */
  64. enum_WeekDay offWeekDay; /* 周几,数据库里是1-7一周,周8是特殊日 */
  65. QDateTime offDateTime; /* 时间和日期 */
  66. OnePlanItemInfo();
  67. OnePlanItemInfo(const OnePlanItemInfo& item);
  68. OnePlanItemInfo& operator=(const OnePlanItemInfo& item);
  69. };
  70. /* 回调函数 */
  71. using trackCallBack = void(*)(int actionID, QString strMemo);
  72. class LHTransmitterSwitchAPI
  73. {
  74. using pInit = int(*)(const InitData*);
  75. using pCreateWindow = int(*)(int, QWidget*);
  76. using pShowWindow = int(*)(int, bool);
  77. using pGetExecPlanFromEQM = int(*)();
  78. using pSaveExecPlanToEQM = int(*)();
  79. using pRelease = int(*)();
  80. using pSetCallBack = int(*)(trackCallBack);
  81. using pDoInitLibrary = int(*)();
  82. using pCreateOneWindow = int(*)(int, QWidget*);
  83. using pSetWebAPIInfo = int(*)(const InitData*);
  84. using pSetChannelInfo = int(*)(ExecPlanInfo*, int);
  85. using pSetOnePageCardNum = int(*)(int, int);
  86. using pGetPlanData = int(*)(QList<OnePlanItemInfo>*, ExecPlanConfig*, int);
  87. using pSetPlanData = int(*)(QList<OnePlanItemInfo>*, ExecPlanConfig*, int);
  88. using pClearAll = int(*)();
  89. public:
  90. LHTransmitterSwitchAPI();
  91. ~LHTransmitterSwitchAPI();
  92. /* 加载动态库 */
  93. bool loadLibrary();
  94. int DoInit(const InitData* pData);
  95. int DoCreateWindow(int skintype, QWidget* parent);
  96. int DoShowWindow(int skintype, bool showWindow);
  97. int DoGetExecPlanFromEQM();
  98. int DoSaveExecPlanToEQM();
  99. int DoRelease();
  100. int DoSetCallBack(trackCallBack cb);
  101. int DoInitLibrary();
  102. int DoCreateOneWindow(int skintype, QWidget* parent);
  103. int DoSetWebAPIInfo(InitData* pData);
  104. int DoSetChannelInfo(ExecPlanInfo* info, bool useOnlineDB = true);
  105. int DoSetOnePageCardNum(int horNum, int verNum);
  106. int DoGetPlanData(QList<OnePlanItemInfo>* listPlan, ExecPlanConfig* config, int channelID = 0);
  107. int DoSetPlanData(QList<OnePlanItemInfo>* listPlan, ExecPlanConfig* config, int channelID = 0);
  108. int DoClearAll();
  109. private:
  110. pInit m_pInit = nullptr;
  111. pCreateWindow m_pCreateWindow = nullptr;
  112. pShowWindow m_pShowWindow = nullptr;
  113. pGetExecPlanFromEQM m_pGetExecPlanFromEQM = nullptr;
  114. pSaveExecPlanToEQM m_pSaveExecPlanToEQM = nullptr;
  115. pRelease m_pRelease = nullptr;
  116. pSetCallBack m_pSetCallBack = nullptr;
  117. pDoInitLibrary m_pDoInitLibrary = nullptr;
  118. pCreateOneWindow m_pCreateOneWindow = nullptr;
  119. pSetWebAPIInfo m_pSetWebAPIInfo = nullptr;
  120. pSetChannelInfo m_pSetChannelInfo = nullptr;
  121. pSetOnePageCardNum m_pSetOnePageCardNum = nullptr;
  122. pGetPlanData m_pGetPlanData = nullptr;
  123. pSetPlanData m_pSetPlanData = nullptr;
  124. pClearAll m_pClearAll = nullptr;
  125. };
  126. #endif /* LHTRANSMITTERSWITCHAPI_H */