2025-03-12 10:03:16 +08:00
|
|
|
|
/*
|
|
|
|
|
|
@file DownloadTimetable.h
|
|
|
|
|
|
@brief 时间表下载操作类
|
|
|
|
|
|
@author 曹顶法
|
|
|
|
|
|
*/
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
#include "pub_sysinfo_api/SysInfoApi.h"
|
|
|
|
|
|
#include "TimetableCommon.h"
|
|
|
|
|
|
#include "TimetableCtrlParamTable.h"
|
|
|
|
|
|
#include "TimetableRtdbTableOperate.h"
|
|
|
|
|
|
#include "TimetableMsgBusMng.h"
|
|
|
|
|
|
#include "BasicOperation.h"
|
|
|
|
|
|
|
|
|
|
|
|
namespace kbd_app
|
|
|
|
|
|
{
|
|
|
|
|
|
class CDownloadTimetable
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
2025-03-12 14:17:53 +08:00
|
|
|
|
CDownloadTimetable(const iot_public::SRunAppInfo &stRunAppInfo,
|
2025-03-12 10:03:16 +08:00
|
|
|
|
const CParamMngPtr &ptrParamMng,
|
|
|
|
|
|
const CTimetableMsgBusMngPtr &ptrMsgMng,
|
|
|
|
|
|
const CBasicOperationPtr &ptrBasicOpt);
|
|
|
|
|
|
virtual ~CDownloadTimetable();
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
@brief 处理下载命令
|
|
|
|
|
|
@param STimetableCmd & stCmd 下载命令
|
|
|
|
|
|
*/
|
|
|
|
|
|
void handleDownloadCmd(STimetableCmd &stCmd);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
@brief 检查DCF、URF、RRF标识
|
|
|
|
|
|
@param STimetableCmd & stCmd 当前下载命令
|
|
|
|
|
|
@param const ETimetableCmdState eSuccessState 成功设置的状态
|
|
|
|
|
|
@param const ETimetableCmdState eFailState 失败设置的状态
|
|
|
|
|
|
@return 无
|
|
|
|
|
|
*/
|
|
|
|
|
|
void checkFlag(STimetableCmd &stCmd,
|
|
|
|
|
|
const ETimetableCmdState eSuccessState,
|
|
|
|
|
|
const ETimetableCmdState eFailState);
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
@brief 等待关系库中的配置同步到内存库
|
|
|
|
|
|
@param STimetableCmd & stCmd 当前命令
|
|
|
|
|
|
@param const ETimetableCmdState eSuccessState 成功设置的状态
|
|
|
|
|
|
@param const ETimetableCmdState eFailState 失败设置的状态
|
|
|
|
|
|
@return 无
|
|
|
|
|
|
*/
|
|
|
|
|
|
void waitSyncTimetableInfo(STimetableCmd &stCmd,
|
|
|
|
|
|
const ETimetableCmdState eSuccessState,
|
|
|
|
|
|
const ETimetableCmdState eFailState);
|
|
|
|
|
|
/*
|
|
|
|
|
|
@brief 发送下载命令消息
|
|
|
|
|
|
@param STimetableCmd & stCmd 当前命令
|
|
|
|
|
|
@param const EDownloadState eSuccessState 成功设置的状态
|
|
|
|
|
|
@param const EDownloadState eFailState 失败设置的状态
|
|
|
|
|
|
*/
|
|
|
|
|
|
void sendDownloadCmd(STimetableCmd &stCmd,
|
|
|
|
|
|
const ETimetableCmdState eSuccessState,
|
|
|
|
|
|
const ETimetableCmdState eFailState);
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
@brief 检查下载命令反馈结果
|
|
|
|
|
|
@param STimetableCmd & stCmd 当前命令
|
|
|
|
|
|
@param const EDownloadState eSuccessState 成功设置的状态
|
|
|
|
|
|
@param const EDownloadState eFailState 失败设置的状态
|
|
|
|
|
|
*/
|
|
|
|
|
|
void waitDownloadResponse(STimetableCmd &stCmd,
|
|
|
|
|
|
const ETimetableCmdState eSuccessState,
|
|
|
|
|
|
const ETimetableCmdState eFailState);
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
@brief 设置下载完成标识DCF
|
|
|
|
|
|
@param STimetableCmd & stCmd 当前命令
|
|
|
|
|
|
@param const ETimetableCmdState eSuccessState 成功设置的状态
|
|
|
|
|
|
@param const ETimetableCmdState eFailState 失败设置的状态
|
|
|
|
|
|
@return 无
|
|
|
|
|
|
*/
|
|
|
|
|
|
void setDownloadFlag(STimetableCmd &stCmd,
|
|
|
|
|
|
const ETimetableCmdState eSuccessState,
|
|
|
|
|
|
const ETimetableCmdState eFailState);
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
@brief 等待设置下载完成标识DCF的命令反馈
|
|
|
|
|
|
@param STimetableCmd & stCmd 当前命令
|
|
|
|
|
|
@param const ETimetableCmdState eSuccessState 成功设置的状态
|
|
|
|
|
|
@param const ETimetableCmdState eFailState 失败设置的状态
|
|
|
|
|
|
@return 无
|
|
|
|
|
|
*/
|
|
|
|
|
|
void waitDownloadFlagRep(STimetableCmd &stCmd,
|
|
|
|
|
|
const ETimetableCmdState eSuccessState,
|
|
|
|
|
|
const ETimetableCmdState eFailState);
|
|
|
|
|
|
/*
|
|
|
|
|
|
@brief 校验时间表ID和版本号
|
|
|
|
|
|
@param STimetableCmd & stCmd 当前命令
|
|
|
|
|
|
@param const ETimetableCmdState eSuccessState 成功设置的状态
|
|
|
|
|
|
@param const ETimetableCmdState eFailState 失败设置的状态
|
|
|
|
|
|
@return 无
|
|
|
|
|
|
*/
|
|
|
|
|
|
void verifyVersion(STimetableCmd &stCmd,
|
|
|
|
|
|
const ETimetableCmdState eSuccessState,
|
|
|
|
|
|
const ETimetableCmdState eFailState);
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
@brief 下载命令完成后的处理
|
|
|
|
|
|
@param STimetableCmd & stCmd 当前命令
|
|
|
|
|
|
*/
|
|
|
|
|
|
void downloadCompleted(STimetableCmd &stCmd);
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
@brief 生成下载命令报文
|
|
|
|
|
|
@param const STimetableCmd & stCmd 当前命令
|
|
|
|
|
|
@param std::string & strMsg 返回的命令报文
|
|
|
|
|
|
@return 成功返回true,失败返回false
|
|
|
|
|
|
*/
|
|
|
|
|
|
bool makeDownloadMsg(const STimetableCmd &stCmd, std::string &strMsg);
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
2025-03-12 14:17:53 +08:00
|
|
|
|
iot_public::SRunAppInfo m_stRunAppInfo; //< 本应用相关运行参数
|
2025-03-12 10:03:16 +08:00
|
|
|
|
CParamMngPtr m_ptrParamMng; //< 参数信息管理类
|
|
|
|
|
|
CTimetableMsgBusMngPtr m_ptrMsgMng; //< 消息管理类
|
|
|
|
|
|
CBasicOperationPtr m_ptrBasicOpt; //< 基础操作类
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
typedef boost::shared_ptr<CDownloadTimetable> CCDownloadTimetablePtr;
|
|
|
|
|
|
}
|