130 lines
5.0 KiB
C
Raw Normal View History

/*
@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,
const CParamMngPtr &ptrParamMng,
const CTimetableMsgBusMngPtr &ptrMsgMng,
const CBasicOperationPtr &ptrBasicOpt);
virtual ~CDownloadTimetable();
/*
@brief
@param STimetableCmd & stCmd
*/
void handleDownloadCmd(STimetableCmd &stCmd);
private:
/*
@brief DCFURFRRF标识
@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 truefalse
*/
bool makeDownloadMsg(const STimetableCmd &stCmd, std::string &strMsg);
private:
2025-03-12 14:17:53 +08:00
iot_public::SRunAppInfo m_stRunAppInfo; //< 本应用相关运行参数
CParamMngPtr m_ptrParamMng; //< 参数信息管理类
CTimetableMsgBusMngPtr m_ptrMsgMng; //< 消息管理类
CBasicOperationPtr m_ptrBasicOpt; //< 基础操作类
};
typedef boost::shared_ptr<CDownloadTimetable> CCDownloadTimetablePtr;
}