#ifndef LHTRANSMITTERSWITCHAPI_H #define LHTRANSMITTERSWITCHAPI_H #include #include #include /** * @brief 周几枚举 * */ enum class enum_WeekDay : int { WeekDay_Mon = 1, /* 周一 */ WeekDay_Tue = 2, /* 周二 */ WeekDay_Wed = 3, /* 周三 */ WeekDay_Thu = 4, /* 周四 */ WeekDay_Fri = 5, /* 周五 */ WeekDay_Sat = 6, /* 周六 */ WeekDay_Sun = 7, /* 周日 */ WeekDay_Special = 8 /* 特殊日 */ }; /* 初始化数据 */ struct InitData { QString url; QString serverID; QString serverKey; }; /** * @brief 用于传输执行计划相关的信息 * */ struct ExecPlanInfo { int ChannelID = -1; /* 频率ID */ QString ChannelName; /* 频率名称 */ QString DatabasePath; /* 数据库路径 */ ExecPlanInfo& operator=(const ExecPlanInfo& info) { ChannelID = info.ChannelID; ChannelName = info.ChannelName; DatabasePath = info.DatabasePath; return *this; } }; /** * @brief 页面的其他配置信息 * */ struct ExecPlanConfig { int isUsingPlan; /* 是否使用执行计划,0不使用,1使用 */ int execMdoe; /* 执行模式,0按时刻,1按天 */ }; /** * @brief 执行计划条目信息 * */ struct OnePlanItemInfo { int ChannelID; /* 频率ID */ QString ChannelName; /* 频率名称 */ enum_WeekDay onWeekDay; /* 周几,数据库里是1-7一周,周8是特殊日 */ QDateTime onDateTime; /* 时间和日期 */ enum_WeekDay offWeekDay; /* 周几,数据库里是1-7一周,周8是特殊日 */ QDateTime offDateTime; /* 时间和日期 */ OnePlanItemInfo(); OnePlanItemInfo(const OnePlanItemInfo& item); OnePlanItemInfo& operator=(const OnePlanItemInfo& item); }; /* 回调函数 */ using trackCallBack = void(*)(int actionID, QString strMemo); class LHTransmitterSwitchAPI { using pInit = int(*)(const InitData*); using pCreateWindow = int(*)(int, QWidget*); using pShowWindow = int(*)(int, bool); using pGetExecPlanFromEQM = int(*)(); using pSaveExecPlanToEQM = int(*)(); using pRelease = int(*)(); using pSetCallBack = int(*)(trackCallBack); using pDoInitLibrary = int(*)(); using pCreateOneWindow = int(*)(int, QWidget*); using pSetWebAPIInfo = int(*)(const InitData*); using pSetChannelInfo = int(*)(ExecPlanInfo*, int); using pSetOnePageCardNum = int(*)(int, int); using pGetPlanData = int(*)(QList*, ExecPlanConfig*, int); using pSetPlanData = int(*)(QList*, ExecPlanConfig*, int); using pClearAll = int(*)(); public: LHTransmitterSwitchAPI(); ~LHTransmitterSwitchAPI(); /* 加载动态库 */ bool loadLibrary(); int DoInit(const InitData* pData); int DoCreateWindow(int skintype, QWidget* parent); int DoShowWindow(int skintype, bool showWindow); int DoGetExecPlanFromEQM(); int DoSaveExecPlanToEQM(); int DoRelease(); int DoSetCallBack(trackCallBack cb); int DoInitLibrary(); int DoCreateOneWindow(int skintype, QWidget* parent); int DoSetWebAPIInfo(InitData* pData); int DoSetChannelInfo(ExecPlanInfo* info, bool useOnlineDB = true); int DoSetOnePageCardNum(int horNum, int verNum); int DoGetPlanData(QList* listPlan, ExecPlanConfig* config, int channelID = 0); int DoSetPlanData(QList* listPlan, ExecPlanConfig* config, int channelID = 0); int DoClearAll(); private: pInit m_pInit = nullptr; pCreateWindow m_pCreateWindow = nullptr; pShowWindow m_pShowWindow = nullptr; pGetExecPlanFromEQM m_pGetExecPlanFromEQM = nullptr; pSaveExecPlanToEQM m_pSaveExecPlanToEQM = nullptr; pRelease m_pRelease = nullptr; pSetCallBack m_pSetCallBack = nullptr; pDoInitLibrary m_pDoInitLibrary = nullptr; pCreateOneWindow m_pCreateOneWindow = nullptr; pSetWebAPIInfo m_pSetWebAPIInfo = nullptr; pSetChannelInfo m_pSetChannelInfo = nullptr; pSetOnePageCardNum m_pSetOnePageCardNum = nullptr; pGetPlanData m_pGetPlanData = nullptr; pSetPlanData m_pSetPlanData = nullptr; pClearAll m_pClearAll = nullptr; }; #endif /* LHTRANSMITTERSWITCHAPI_H */