www.pudn.com > CirMMI.rar > CirMMIDlg.h
// CirMMIDlg.h : header file
//
#if !defined(AFX_CIRMMIDLG_H__39558E33_62BD_4D07_9FA0_2DD0E63B1248__INCLUDED_)
#define AFX_CIRMMIDLG_H__39558E33_62BD_4D07_9FA0_2DD0E63B1248__INCLUDED_
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
#include ".\share\myptrlist.h"
#include ".\share\serial.h"
#include ".\share\staticzuhe.h"
#include "statictraintrail.h"
#include "mykeystatic.h"
#include "CommunicateStatic.h"
#include "dispatchcmddlg.h"
#include "settingdlg.h"
#include "handclaspdlg.h"
#include "queryindexdlg.h"
#include "querycmddlg.h"
#include "dialupdlg.h"
#include "DlgVolumeOfHandset.h"
#include "DlgVolumeOfSpeaker.h"
//#include "DlgBook.h"
#include "dglphonebook.h"
#include "DlgRunningRoad.h"
#include "DlgMaintain.h"
#include "DlgStatus.h"
#include "infoframestatic.h"
#include "dislinestatic.h"
#include "DlgMaintenance.h"
#include "DlgShowInfo.h"
#include "DlgRoad.h"
/////////////////////////////////////////////////////////////////////////////
// CCirMMIDlg dialog
class CCirMMIDlg : public CDialog
{
// Construction
public:
CCirMMIDlg(CWnd* pParent = NULL); // standard constructor
// Dialog Data
//{{AFX_DATA(CCirMMIDlg)
enum { IDD = IDD_CIRMMI_DIALOG };
CDisLineStatic m_ctCurLoad;
CStatic m_ctLocalTime;
CStaticTrainTrail m_ctTrainTrail;
CStaticZuhe m_ctRightIndication;
CStaticZuhe m_ctLeftIndication;
CStatic m_ctTrainID;
CStatic m_ctRunning;
CCommunicateStatic m_ctCommunicate;
CStatic m_ctUnkown;
CInfoFrameStatic m_ctInfoFrame;
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CCirMMIDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
HICON m_hIcon;
// Generated message map functions
//{{AFX_MSG(CCirMMIDlg)
virtual BOOL OnInitDialog();
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
afx_msg void OnTimer(UINT nIDEvent);
afx_msg void OnDestroy();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
public:
void ToShowInfo(const CString& strDisInfo,WORD cnt=50,BYTE Pri=STATE_GENERAL_PRI,INT iType=MAKELONG(STATE_UNKNOWN,UNKNOWN_OBJ),COLORREF crText=RGB(128,255,0));//g_CommonSet.crSecondText/*RGB(125,200,0)*/);
void ToShowWarning(const CString& strDisInfo,WORD cnt=50,BYTE Pri=STATE_GENERAL_PRI);
void ToShowFailInfo(const CString& strDisInfo,WORD cnt=50,BYTE Pri=STATE_GENERAL_PRI);
INT WriteToHost(const void* pData,INT iLen);
INT WriteToMcu(const void *pData,INT iLen);
void mcuDataProc(BYTE *pData,INT iLen);
void hostDataProc(BYTE *pData,INT iLen);
static UINT mcuQueueThd(PVOID lParam);
static UINT hostQueueThd(PVOID lParam);
static UINT DisplayThd(PVOID lParam);
UINT ControlButtonBright(WPARAM w,LPARAM l);
UINT OnRevCommEvent(WPARAM w,LPARAM l);
void OnCommandKey(UINT id);
INT GetWndIndexByID(UINT wnd_id); //根据窗体ID获取对应 m_WndAr's Index
BOOL SetActiveWndByIndex(INT nPage,BOOL bUpDataAll=FALSE);
BOOL SetActiveWndByID(UINT wnd_id,BOOL bUpDataAll=FALSE);
private:
void AdjustChildWnd(); //调整子窗体
BOOL CreateChildWnd(); //创建子窗体
void HandclaspWithHost();
public:
//向主机发送报文1
void PostPackToHost(BYTE optype,
BYTE cmd,
/*
BYTE cbsport,
BYTE saddrlen,
BYTE *saddr,
*/
BYTE dport=0x01,
/*
BYTE daddrlen,
BYTE *daddr,
*/
BYTE *data=NULL,
SHORT slen=0,
BOOL bAsk=FALSE);
//向主机发送报文2 必定会要求应答
void PostPackToHost(BYTE optype,
BYTE cmd,
/*
BYTE cbsport,
BYTE saddrlen,
BYTE *saddr,
*/
BYTE dport,
/*
BYTE daddrlen,
BYTE *daddr,
*/
BYTE *data,
SHORT slen,
const MSG* pMsg);
void PostPackToHost(BYTE optype,
BYTE cmd,
BYTE dport,
BYTE byte,
BOOL bAsk);
//向主机发送报文4
void CCirMMIDlg::PostPackToHost(BYTE optype,
BYTE cbcmd,
BYTE cbsport,
BYTE saddrlen,
BYTE *saddr,
BYTE cbdport,
BYTE daddrlen,
BYTE *daddr,
BYTE *data,
SHORT slen,
const MSG* pMsg=NULL);
private:
UINT m_nCurActivePage; //当前活动页
CObArray m_WndAr; //窗体的容器
CDWordArray m_IDAr;
CByteArray m_PageAr; //记录页面切换
CHandclaspDlg m_HandclaspDlg;
friend class CDispatchCmdDlg;
CDispatchCmdDlg m_DispatchCmdDlg; //调度命令处理窗体
CSettingDlg m_SettingDlg; //综合设置界面窗体
friend class CQueryCmdDlg;
CQueryIndexDlg m_QueryIndexDlg;
CQueryCmdDlg m_QueryCmdDlg;
CDlgVolumeOfHandset m_VolumeOfHandsetDlg;
CDlgVolumeOfSpeaker m_VolumeOfSpeakerDlg;
//CDlgBook m_BookDlg;
CDglPhoneBook m_BookDlg;
//CDlgRunningRoad
CDlgRoad m_RoadDlg;
//CDlgMaintain m_MaintainDlg;
CDlgMaintenance m_MaintainDlg;
CDlgStatus m_statusDlg;
CDialUpDlg m_DialUpDlg;
CSerial m_HostComm;
CSerial m_McuComm;
CString m_strText[8]; //配置按键显示字符
public:
CDlgShowInfo m_DlgPopShow;
public:
CSerial m_PrintComm;
//设置相关
private:
BYTE m_cbSpeakerValue;
BYTE m_cbHandsetValue;
BOOL m_bRetDef; //del...
BOOL m_bSwitchUI;
BOOL m_bWaitInfoEnvent; //用于判断是否返回主界面的标志
public:
BYTE GetSpeakerValue()
{
return m_cbSpeakerValue;
}
BYTE GetHandsetValue()
{
return m_cbHandsetValue;
}
BOOL GetHandsetState(){return m_bHandset;}
void SetWaitInfoEnvent(){m_bWaitInfoEnvent=TRUE;}
//呼叫相关
public:
CALL_INFO m_Call;
CArraym_CallAr;
BOOL m_bHandset; //听筒代表摘机状态
BOOL m_bFactHandset;
BOOL m_bPTTDown; //默认PTT抬起
BOOL m_bWillTalk;
BOOL m_bEnterTalk;
DWORD m_dwCntHang;
//450m
BOOL m_bHandsetSucceed; //摘机成功 (当主机对呼叫报文返回ack)
INT m_iEstablishMask; //-1,0,1 失败,等待,成功
public:
void GsmrCall(BYTE ct,BYTE pri,BYTE *data,BYTE clen);
void CheckProc(BYTE cbsport,BYTE cbcmd,BYTE *pData,SHORT slen);
void ReportMMIstate();
void MMISTalk();
void ExitGsmr();
void EnterGsmr(INT iCallDir=CALL_OUT);
BOOL IsExistHighCall();
INT AddNewCallToList( CALL_INFO &call);
void CallsProc(CALL_INFO *pCall=NULL);
BOOL IsHandsetValidate();
BOOL IsAllow450MInComing();
BOOL IsAllow450MCall();
void DUTXProcBoth(BYTE cbcmd, BYTE cbsport, BYTE *data, SHORT slen);
void UpdatingUI();
void CommonInfoProc(BYTE *pData,INT iLen);
BOOL IsNeedInPhase(INT type,BYTE *pData,INT iLen);
// void GetOwnRunningRoad();
void PostInPhaseInfo(BYTE *pData, INT iLen);
void ProcIntegrationInfo(BYTE *pData,INT iLen);
void ModeSwitch(BYTE cbModeNum);
void CCirMMIDlg::GsmrCallByKey(BYTE key);
void GsmrCallByNUM(BYTE *data,INT iLen);
static UINT PlaySoundThd(PVOID lParam);
void DspchCmdProc(BYTE cbcmd, BYTE cbsport, BYTE *data, SHORT slen);
void DUTXProcGsmr(BYTE cbcmd, BYTE cbsport, BYTE *data, SHORT slen);
void DUTXProc450M(BYTE cbcmd, BYTE cbsport, BYTE *data, SHORT slen);
void ProcPTT(BOOL bPTTDown);
void ProcFromHostAck(WORD AckFlag);
void M450Call(BYTE callobj);
void mcuFrameProc(INT iType,const BYTE *pData,INT iLen,BOOL bOwn=TRUE);
void InitTalkMark();
void UpDateKeyState();
void ProcHand(BOOL bHandset);
INT CCirMMIDlg::PeekPrePage();
INT PopPage();
INT PushPage(UINT wnd_id);
void Flash_KeyText();
void Flash_KeyText(INT index);
void Init_KeyTextByWorkMode(INT iWorkMode);
void RetDefaultPage();
void RetPrePage();
void GeneralKeyProc(FromMcuInfo &McuInfo);
void Init_Unit();
BOOL m_bhandclaspOk;
//CMyPtrList m_SendQueue;
CMyKeyStatic m_KeyBt[8];
};
//{{AFX_INSERT_LOCATION}}
// Microsoft eMbedded Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_CIRMMIDLG_H__39558E33_62BD_4D07_9FA0_2DD0E63B1248__INCLUDED_)