75 lines
3.2 KiB
C++
75 lines
3.2 KiB
C++
#pragma once
|
||
#include "pub_sysinfo_api/SysInfoApi.h"
|
||
#include "TimetableCommon.h"
|
||
#include "TimetableMsgBusMng.h"
|
||
#include "BasicOperation.h"
|
||
|
||
namespace kbd_app
|
||
{
|
||
class CReadTimetable
|
||
{
|
||
public:
|
||
CReadTimetable(const iot_public::SRunAppInfo &stRunAppInfo,
|
||
const CParamMngPtr &ptrParamMng,
|
||
const CTimetableMsgBusMngPtr &ptrMsgMng,
|
||
const CBasicOperationPtr &ptrBasicOpt);
|
||
virtual ~CReadTimetable();
|
||
|
||
/*
|
||
@brief 处理读取命令
|
||
@param STimetableCmd & stCmd 下载命令
|
||
*/
|
||
void handleManualRead(STimetableCmd &stCmd);
|
||
|
||
private:
|
||
void setURFFlag(STimetableCmd &stCmd, const ETimetableCmdState eSuccessState, const ETimetableCmdState eFailState);
|
||
void waitURFFlagRep(STimetableCmd &stCmd, const ETimetableCmdState eSuccessState, const ETimetableCmdState eFailState);
|
||
void waitRRFFlag(STimetableCmd &stCmd, const ETimetableCmdState eSuccessState, const ETimetableCmdState eFailState);
|
||
void checkFlag(STimetableCmd &stCmd,
|
||
const ETimetableCmdState eSuccessState,
|
||
const ETimetableCmdState eFailState);
|
||
void resetRRFFlag(STimetableCmd &stCmd, const ETimetableCmdState eSuccessState, const ETimetableCmdState eFailState);
|
||
void waitResetRRFFlagRep(STimetableCmd &stCmd, const ETimetableCmdState eSuccessState, const ETimetableCmdState eFailState);
|
||
|
||
/*
|
||
@brief 发送读取命令消息
|
||
@param STimetableCmd & stCmd 当前命令
|
||
@param const EDownloadState eSuccessState 成功设置的状态
|
||
@param const EDownloadState eFailState 失败设置的状态
|
||
*/
|
||
void sendReadCmd(STimetableCmd &stCmd,
|
||
const ETimetableCmdState eSuccessState,
|
||
const ETimetableCmdState eFailState);
|
||
|
||
/*
|
||
@brief 检查读取命令执行结果
|
||
@param STimetableCmd & stCmd 当前命令
|
||
@param const EDownloadState eSuccessState 成功设置的状态
|
||
@param const EDownloadState eFailState 失败设置的状态
|
||
*/
|
||
void waitReadResult(STimetableCmd &stCmd,
|
||
const ETimetableCmdState eSuccessState,
|
||
const ETimetableCmdState eFailState);
|
||
/*
|
||
@brief 读取命令完成后的处理
|
||
@param STimetableCmd & stCmd 当前命令
|
||
*/
|
||
void readCompleted(STimetableCmd &stCmd);
|
||
/*
|
||
@brief 生成读取时间表命令报文
|
||
@param const STimetableCmd & stCmd 当前命令
|
||
@param std::string & strMsg 返回的命令报文
|
||
@return 成功返回true,失败返回false
|
||
*/
|
||
bool makeReadMsg(const STimetableCmd &stCmd, std::string &strMsg);
|
||
|
||
private:
|
||
iot_public::SRunAppInfo m_stRunAppInfo; //< 本应用相关运行参数
|
||
CParamMngPtr m_ptrParamMng; //< 参数信息管理类
|
||
CTimetableMsgBusMngPtr m_ptrMsgMng; //< 消息管理类
|
||
CBasicOperationPtr m_ptrBasicOpt; //< 基础操作类
|
||
};
|
||
|
||
typedef boost::shared_ptr<CReadTimetable> CReadTimetablePtr;
|
||
} //namespace kbd_app
|