📄 statuscontrol.h
字号:
// 控制类CStatusControl负责用户界面对象间的切换。操作员对车道软件
// 的操作过程实际上就是一个状态转换过程,本控制类维护一个状态转换
// 表,根据当前状态及输入条件决定将要转入的状态
// StatusControl.h: interface for the CStatusControl class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_STATUSCONTROL_H__059FA3DA_08E8_4E6C_801A_A8C05E55622D__INCLUDED_)
#define AFX_STATUSCONTROL_H__059FA3DA_08E8_4E6C_801A_A8C05E55622D__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "DeviceControl.h"
// 控制类CStatusControl以函数调用的方式来命令用户界面类处理事件
// 或获取用户界面类数据
// 用户界面类每完成一次人机交互后发送消息WM_OPTION_FINISH通知
// CStatusControl类它已经完成某项操作,CStatusControl类收到该
// 消息后根据其所完成的操作当前状态决定转换主状态还是转换从状态
class CStatusControl
{
public:
void ReleaseMemory();
void ProcessStatusInfo(char *pStr); // 调用GetCurrentStatus()
void ProcessCxpStatus(UINT nIndex,char status);
void ProcessOptionFinish(UINT nEventType,UINT KeyValue=0);
void ProcessUpdate(UINT nType,char *pValue);
void ProcessTimerOut(UINT nIndex);// 调用GetCurrentStatus()
void ProcessKeyboard(UINT nChar); // 调用GetCurrentStatus()
void Initial();
CStatusControl();
private:
static CScreen * GetCurrentStatus();
///////////////////////////////////////////////////////////////////
//抓拍和触发线圈事件
void ProcessGroupLoop(char status);
void ProcessLeaveLoop(char status);
void ProcessPictureLoop(char status);
void ProcessViolateEvent();
//上下班事件/////////////////////////////////////////////////////////
void ProcessMustExitEvent(); //通知用户程序将退出
void ProcessBeginKey(); //操作员按“开始”键
void ProcessKeyOfInputID(UINT KeyValue); //输入工号窗口状态的事件
void ProcessKeyOfInputPassword(UINT KeyValue); //密码输入窗口状态的事件
void ProcessKeyOfInputShiftNO(UINT KeyValue); //选择班次或修改密码窗口状态的事件
void ProcessKeyOfStartInvoice(UINT KeyValue); //发票起号被确认窗口状态的事件
void ProcessKeyOfChangePassword(UINT KeyValue); //输入修改密码窗口状态的事件
void ProcessKeyOfPasswordResult(UINT KeyValue); //输入修改密码结果窗口状态的事件
void ProcessKeyOfEndInvoice(UINT KeyValue); //交班显示发票窗口状态的事件
void ProcessKeyOfEndShift(UINT KeyValue); //确认交班窗口状态的事件
////////////////////////////////////////////////////////////
//输入车辆信息事件
void ProcessKeyOfInputBusClass(UINT KeyValue); //输入车型窗口状态的事件
void ProcessKeyOfInputFare(UINT KeyValue); //显示费额窗口状态的事件
void ProcessKeyOfInputBusNO(UINT KeyValue); //显示输入特殊车车牌窗口状态的事件
void ProcessKeyOfNoteFree(UINT KeyValue); //显示输入特殊车认证窗口状态的事件
void ProcessKeyOfViolate(UINT KeyValue); //显示违章车窗口状态的事件
void ProcessKeyOfInputGroupClass(UINT KeyValue);//显示输入车队车型窗口状态的事件
void ProcessKeyOfGroup(UINT KeyValue); //显示车队过车窗口状态的事件
void ProcessKeyOfInputBlackCar(UINT KeyValue); //显示输入黑名单车车牌窗口状态的事件
void ProcessKeyOfIsBlackCar(UINT KeyValue); //显示黑名单车认证窗口状态的事件
////////////////////////////////////////////////////////////////////
void FinishTrade();
void MonthOrFreeOK();
void ProcessEndKey();
void ProcessDownKey();
void ProcessUpKey();
void ProcessViolateOK();
void UpdateLaneStatus();
void ProcessHasGoKey();
////////////////////////////////////////////////////////////////
//维修员按键事件 :测试 设置 编辑
////////////////////////////////////////////////////////////////////
void ProcessEditFinish();
void ProcessEditMenuOK();
void ProcessCancelOfSetParam();
void ProcessSetParamOK();
void ProcessSetMenuOK();
void ProcessTestOverlay();
void ProcessTestPrinter();
void ProcessTestTFI();
void ProcessTestOutputDevice();
void ProcessCancelOfOutputDevice();
void ProcessCancelOfInputDevice();
void ProcessCxpMenuOK();
void ProcessTestItemFinish();
void ProcessTestMenuOK();
void ProcessModeOK();
void ProcessCancelOfMode();
void ProcessEditNumberOK(); //编辑发票号完成
///////////////////////////////////////////////////////////////
CLaneInfo m_clsLane;
CStatInfo m_clsStat;
CTransInfo m_clsTrans;
CRecord m_clsRecord;
CDeviceControl m_clsDevice;
static CScreen * pScreen;
static UINT nMainStatus; //本属性记录类状态机的当前状态
static UINT nSlaveStatus; //本属性记录类内部状态机的当前状态
};
#endif // !defined(AFX_STATUSCONTROL_H__059FA3DA_08E8_4E6C_801A_A8C05E55622D__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -