#pragma once #include "BaseDefine.h" #include "NetWorkMng_I.h" #include "DispatchMng_I.h" #include "CallBackFun_Def.h" class CNetWork_Alone : public CNetWorkMng_I { public: CNetWork_Alone(CDispatchMng_I* pDispatchMng); ~CNetWork_Alone(void); private: CommandQueue* m_pSendList_TCP; CommandQueue* m_pSendList_UDP; CommandQueue* m_pSendList_Group; CommandQueue* m_pRecvList_TCP; CommandQueue* m_pRecvList_UDP; CommandQueue* m_pRecvList_Group; NETDATA_CALLBACK m_pTCPSendCallBack; NETDATA_CALLBACK m_pUDPSendCallBack; private: DWORD m_SendTCPThreadID; //线程ID-TCP数据发送 DWORD m_SendUDPThreadID; //线程ID-UDP数据发送 DWORD m_SendGroupThreadID; //线程ID-组播数据发送 HANDLE m_SendTCPThreadHandle; //线程句柄-TCP数据发送 HANDLE m_SendUDPThreadHandle; //线程句柄-UDP数据发送 HANDLE m_SendGroupThreadHandle; //线程句柄-组播数据发送 std::thread m_ThreadSend_TCP; //线程发送_TCP数据 std::thread m_ThreadSend_UDP; //线程发送_UDP数据 std::thread m_ThreadSend_Group; //线程发送_组播数据 public: bool m_SendTCPThreadOut; //线程退出标志-TCP数据发送 bool m_SendUDPThreadOut; //线程退出标志-UDP数据发送 bool m_SendGroupThreadOut; //线程退出标志-组播数据发送 public: void ThreadFun_TCP_Send(); void ThreadFun_UDP_Send(); void ThreadFun_Group_Send(); public: virtual int _IGet_System_ID(); virtual int _IGetTrainID(); virtual int _IConnectToTech(); virtual bool _IClose(); virtual void _ICreate_TCP_Connect( int nSysID ); virtual void _ISend_TCPData_RightNow( OCCCOMMAND NetCmd ); virtual void _ISend_UDPData_RightNow( OCCCOMMAND NetCmd ); virtual void _ISetRepeat_MainCtrl_SysID ( int nSysID ); virtual void _ISetRepeat_MainCtrl_ClientID( int nSysID ); virtual void _ISetTechID ( int nTeachSysID ); virtual void _ISetTrainID( int nTrainingID ); virtual void _IRecord_Training_Sys( int nSysType); virtual void _IRecord_Key_System ( int nSysType, int nSysID ); virtual void _ISetNetData_MonitorS(BOOL bNetData_MonitorS); //设置网络数据监视开关 virtual void _IStart_Training( int nTrainingID, int nCourseID, int nSimTime ); virtual void _IEnd_Training ( int nTrainingID, int nCourseID, int nSimTime ); virtual void _ISend_TCP_OtherCmd(OTHER_CMD_TCP OtherCmd_TCP); //数据发送 - TCP非OCC封装 virtual void _ISend_UDP_OtherCmd(OTHER_CMD_UDP OtherCmd_UDP); //数据发送 - UDP非OCC封装 public: void InitAlone_NetWork(CDispatchMng_I* pDispatchMng); BOOL DealWith_TCP_Send(); BOOL DealWith_UDP_Send(); BOOL DealWith_Group_Send(); };