You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

107 lines
2.5 KiB
C

2 years ago
/*--- <20><><EFBFBD><EFBFBD>2Dcode ͨ<><CDA8>Э<EFBFBD><D0AD> <20>Ĺ<EFBFBD><C4B9><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD>---
ͨѶʹ<EFBFBD><EFBFBD>TCP
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD>˿ڣ<EFBFBD> 8687
<EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #
<EFBFBD>ֶμ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ,
<EFBFBD><EFBFBD><EFBFBD>ݷָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ;
ָ<EFBFBD><EFBFBD>֧<EFBFBD>֣<EFBFBD>
1. GetStatus# <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>ǰ״̬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӻظ<EFBFBD>1
2. GetCode_1-1# <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1-1 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
3. GetAllCode# <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD>ظ<EFBFBD><EFBFBD><EFBFBD>-1#
*PS: ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*PS: <EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿڣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>ʶ<EFBFBD>ɹ<EFBFBD>
*/
#pragma once
#ifndef _CMM_MAPPING_H
#define _CMM_MAPPING_H
#include "sysapi.h"
#include <vector>
using std::vector;
enum MapStatus
{//<2F><><EFBFBD><EFBFBD>״̬
Map_NoInit = 0, //δ<><CEB4>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>socketʧ<74><CAA7>
Map_Connected, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Map_Disconnect, //<2F>ͻ<EFBFBD><CDBB><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD>
};
struct TMappingData
{//2d code<64><65><EFBFBD><EFBFBD>
int col;
int row;
int len; //<2F><><EFBFBD><EFBFBD>
char* pszdata;
};
//CMapping
class CManage;
class CMapping
{
public:
CMapping();
virtual ~CMapping();
int GetStatus() { return _status; }
int Init(const char* pszserver = NULL); //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD><CBA3><EFBFBD><EFBFBD><EFBFBD>NULL<4C><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IP<49><50><EFBFBD>Զ<EFBFBD><D4B6>󶨶˿<F3B6A8B6>8687
int Deinit(); //<2F>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
int Clear(); //<2F><><EFBFBD>յ<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>+<2B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int ReplaceSending(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6BBBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6BBBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʽ<EFBFBD><CABD>2,5,1,ZD1912031456,1
//<2F><><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݷָ<DDB7><D6B8><EFBFBD>, pszdata<74><61><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD>NULL
int SetData(int row, int col, const char* pszdata);
int AnalysisRegister(char* buff);
int AnslyStatus(char* buff);
int AnslysisStart(char* buff);
protected:
void StartRun(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ
void StopRun();
void Close(); //<2F>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD>
void ChkStatus(); //<2F><><EFBFBD><EFBFBD>״̬
void RecvMsg();
void SendMsg(const char* psz); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
void ParseMsg(const char* psz, int len); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD>NULLָ<4C><EFBFBD><EBA3AC><EFBFBD><EFBFBD>new<65>ַ<EFBFBD><D6B7><EFBFBD>
void GetAllSendData(char* &psz);
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD>NULLָ<4C><EFBFBD><EBA3AC><EFBFBD><EFBFBD>new<65>ַ<EFBFBD><D6B7><EFBFBD>
void GetSendData(int col, int row, char* &psz);
void Release(vector<TMappingData>& vec); //<2F>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD>
int FindEnd(const char* pszmsg); //<2F><><EFBFBD>ҽ<EFBFBD><D2BD><EFBFBD><EFBFBD><EFBFBD>
//<2F>̺߳<DFB3><CCBA><EFBFBD>
int Process();
static int WINAPI ThreadFun(void* param);
private:
int _skt; //socket<65><74><EFBFBD><EFBFBD>
int _status; //<2F><>ǰ״̬
bool _brun; //<2F>߳<EFBFBD><DFB3><EFBFBD><EFBFBD>б<EFBFBD>ʶ
Handle _hThread; //<2F>߳̾<DFB3><CCBE><EFBFBD>
Handle _hSection; //<2F>ٽ<EFBFBD><D9BD><EFBFBD>
Handle _hSecSend; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٽ<EFBFBD><D9BD><EFBFBD>
int _len; //<2F><>ǰ<EFBFBD><C7B0>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
char _msg[MAX_BUF_LEN]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
char _client[MAX_NAME_LEN]; //<2F>ͻ<EFBFBD><CDBB><EFBFBD>IP<49><50>ַ
ushort _port;
vector<TMappingData> _vecSend; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
vector<TMappingData> _vecSet; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
#endif