2025-03-12 14:17:53 +08:00

75 lines
3.2 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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