| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- #pragma once
- #include <Net.h>
- #include <BaseDefine.h>
- #include <FrameTool_I.h>
- #include <DispatchMng_I.h>
- #include <Debug_Module_I.h>
- #include <YD_DBOperator.h>
- #if defined(_MSC_VER) || defined(WIN64) || defined(__WIN64__) || defined(WIN32) || defined(_WIN32)
- #ifdef _YD_OCC_NETBASE_SDK
- #define _YD_OCC_NETBASE_MODE __declspec(dllexport)
- #else
- #define _YD_OCC_NETBASE_MODE __declspec(dllimport)
- #endif
- #else //linux
- #ifdef _YD_OCC_NETBASE_SDK
- #define _YD_OCC_NETBASE_MODE __attribute__ ((visibility("default")))
- #else
- #define _YD_OCC_NETBASE_MODE
- #endif
- #endif
- class _YD_OCC_NETBASE_MODE CNetBase: public CNet
- {
- public:
- CNetBase(YD_DBOperator* _db);
- virtual ~CNetBase();
- virtual void OnCmdProc (int sysid, LPCOMMAND pcmd);
- virtual void OnRealProc(int sysid, char* data, int datalen);
- virtual void OnMcastProc(char* data, int datalen);
- virtual void OnSendRealResult(bool isSuccessed, int byteNum, unsigned long err = 0);
- virtual void OnSendCmdResult (bool isSuccessed, int byteNum, unsigned long err = 0);
- virtual int Send_Tcp_NetDate (OCCCOMMAND& NetCmd, int nDesSysID, int nSize);
- virtual int Send_Group_NetDate(OCCCOMMAND& NetCmd, int nDesSysID, int nSize);
- virtual int SendNetDate(OCCCOMMAND& NetCmd, int nSendWay, int nDesSysID, int nSize);
- virtual bool DealNetSendMs() { return false; };
- virtual bool DealNetGroupSendMs(){ return false; };
- virtual bool DealNetRealSendMs() { return false; };
- virtual bool InitNet() { return false; };
- virtual void Send_TCPData_RightNow(OCCCOMMAND NetCmd){}
- virtual void Send_UDPData_RightNow(OCCCOMMAND NetCmd){}
- virtual void Start_Training(int nTrainingID, int nCourseID,int nSimTime) {}
- virtual void End_Training (int nTrainingID, int nCourseID,int nSimTime) {}
- virtual void Record_Training_Sys(int nSysType) {}
- virtual void Record_Key_System (int nSysType,int nSysID) {}
- virtual bool InitNetWork( CDispatchMng_I* pDispatchMng );
- public:
- int SendData_TCP (int sysid, LPCOMMAND pcmd);
- int SendData_UDP (int sysid, char* data, int datalen);
- int SendData_Group(int sysid, char* data, int datalen);
-
- public:
- //设置本机系统号
- void SetOwnSysID(int nSysID) { m_nOwnSysID = nSysID; }
- //设置训练号
- void SetTrainID(int nTrainID) { m_nTrainID = nTrainID; }
- int GetTrainID() { return m_nTrainID; }
- //设置教员系统号
- void SetTechID(int nTeachSysID) { m_TechSeverID = nTeachSysID; }
- int GetTechID() { return m_TechSeverID; }
- //复示主控(模驾)的主控的系统号
- virtual void SetRepeat_MainCtrl_SysID(int nSysID) { m_nRepeatMainCtrlSysID = nSysID; }
- int GetRepeat_MainCtrl_SysID() { return m_nRepeatMainCtrlSysID; }
- //复试主控(模驾)的客户端的系统号
- void SetRepeat_MainCtrl_ClientID(int nRepeatClientID) { m_nRepeatMainCtrlClientID = nRepeatClientID; }
- int GetRepeat_MainCtrl_ClientID() { return m_nRepeatMainCtrlClientID; }
-
- bool Close();
- int ConnectToTech();
- void ReadCfg_File();
- bool ReadNetRoomData(YD_DBOperator* db);
- void AddLogItem( int nPri,const char* pszFmt,...);
- bool Monitor_System_Status();
- public:
- void ThreadFun_SendTCP ();
- void ThreadFun_SendUDP ();
- void ThreadFun_SendGroup ();
- void ThreadFun_SysMonitor();
-
- public:
- int m_nOwnSysID; //本系统的系统号
- int m_nTrainID; //当前训练号
- int m_TechSeverID; //教员系统号
- int m_nConnectTeachWay; //连接教员方式
- int m_nLastSendSysID_TCP; //最后发送系统-TCP
- int m_nLastSendSysID_UDP; //最后发送系统-UDP
- int m_nLastSendSysID_Group; //最后发送系统-Group
- int m_nRepeatMainCtrlSysID; //复示主控(模驾)系统号
- int m_nRepeatMainCtrlClientID; //复示主控(模驾)客户端
-
- bool m_SendMsgThreadOut; //线程退出标志-TCP数据发送
- bool m_SendRealThreadOut; //线程退出标志-UDP数据发送
- bool m_SendGroupThreadOut; //线程退出标志-组播数据发送
- bool m_bSysMonitorThreadOut; //线程退出标志-系统状态监视
- bool m_bNetDataMonitorS; //是否监视网络数据
- protected:
- std::thread m_Thread_SendTCP; //线程变量_TCP数据发送
- std::thread m_Thread_SendUDP; //线程变量_UDP数据发送
- std::thread m_Thread_SendGroup; //线程变量_组播数据发送
- std::thread m_Thread_SysMonitor; //线程变量_系统状态监视
- CommandQueue* m_pSendList_TCP; //发送队列-TCP
- CommandQueue* m_pSendList_UDP; //发送队列-UDP
- CommandQueue* m_pSendList_Group; //发送队列-组播
- CommandQueue* m_pRecvList_TCP; //接收队列-TCP
- CommandQueue* m_pRecvList_UDP; //接收队列-UDP
- CommandQueue* m_pRecvList_Group; //接收队列-组播
-
- CFrameTool_I* m_pFrmTool;
- NETTRIANNECTMAP* m_pNetTrainNectMap;
- CDispatchMng_I* m_pDispatchMng;
- CDebug_Module_I* m_pDebugModule;
- recursive_mutex* m_pMutexTrainConect;
- YD_DBOperator* m_pdb;
- };
|