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_)