1、合并master与2021.1
This commit is contained in:
@@ -202,7 +202,7 @@ TCPIP_RETURN_CODE CSo7_TCPIP::Connect(const HWND& _hWnd,const in_addr& _IPAddres
|
||||
{
|
||||
Create_Thread();
|
||||
// 设置socket为窗口通知消息类型
|
||||
::WSAAsyncSelect(m_Socket, m_hMsgWnd,WM_SOCKET, FD_CONNECT | FD_CLOSE | FD_WRITE | FD_READ);
|
||||
retVal=::WSAAsyncSelect(m_Socket, m_hMsgWnd,WM_SOCKET, FD_CONNECT | FD_CLOSE | FD_WRITE | FD_READ);
|
||||
|
||||
// 填写服务器地址信息
|
||||
sockaddr_in remote;
|
||||
@@ -211,7 +211,7 @@ TCPIP_RETURN_CODE CSo7_TCPIP::Connect(const HWND& _hWnd,const in_addr& _IPAddres
|
||||
remote.sin_family = AF_INET;
|
||||
remote.sin_port = htons(m_iServerPortNumber);
|
||||
// 连接到远程机
|
||||
retVal=connect(m_Socket, (sockaddr*)&remote, sizeof(sockaddr));
|
||||
retVal=::connect(m_Socket, (sockaddr*)&remote, sizeof(sockaddr));
|
||||
if(retVal)
|
||||
{
|
||||
errorCode = WSAGetLastError();
|
||||
@@ -260,12 +260,15 @@ TCPIP_RETURN_CODE CSo7_TCPIP::Handshaking()
|
||||
{
|
||||
WaitForSingleObject(m_Thread_Mutex, INFINITE);
|
||||
m_ClearSendBuf();
|
||||
#ifdef PLC_KEYENCE
|
||||
#else
|
||||
m_TCPIPBuf[CH_SEND]._size=sizeof(HandShaking);
|
||||
memcpy(m_TCPIPBuf[CH_SEND]._buffer,HandShaking,m_TCPIPBuf[CH_SEND]._size);
|
||||
m_TCPIPBuf[CH_SEND]._buffer[m_TCPIPBuf[CH_SEND]._size-1]=m_ClientIPAddress.S_un.S_un_b.s_b4;
|
||||
m_TCPIPBuf[CH_SEND]._save_send_cmd=TCPIP_CMD_HANDSHAKING;
|
||||
m_Thread_State=TCPIP_THREAD_RUNNING;
|
||||
_do_single_threaded_tcpip_comm();
|
||||
#endif
|
||||
ReleaseMutex(m_Thread_Mutex);
|
||||
return m_TCPIPData.s_status._SendReturnCode;
|
||||
}
|
||||
@@ -279,6 +282,23 @@ TCPIP_RETURN_CODE CSo7_TCPIP::_Send_Cmd_Write_D_Data(const short& _Addr,short* _
|
||||
}
|
||||
WaitForSingleObject(m_Thread_Mutex, INFINITE);
|
||||
m_ClearSendBuf();
|
||||
#ifdef PLC_KEYENCE
|
||||
memset(m_TCPIPBuf[CH_SEND]._buffer,0,sizeof(m_TCPIPBuf[CH_SEND]._buffer));
|
||||
int iBufSize(0);
|
||||
|
||||
sprintf_s(m_TCPIPBuf[CH_SEND]._buffer,TCPIP_MAX_BUFF_SIZE,"WRS DM%d.U %d",_Addr,_DataSize);
|
||||
for(int i=0;i<_DataSize;i++)
|
||||
{
|
||||
iBufSize=strlen(m_TCPIPBuf[CH_SEND]._buffer);
|
||||
sprintf_s(&m_TCPIPBuf[CH_SEND]._buffer[iBufSize],TCPIP_MAX_BUFF_SIZE-iBufSize," %d",_Data[i]);
|
||||
}
|
||||
iBufSize=strlen(m_TCPIPBuf[CH_SEND]._buffer);
|
||||
m_TCPIPBuf[CH_SEND]._buffer[iBufSize++]=0x0d;
|
||||
m_TCPIPBuf[CH_SEND]._buffer[iBufSize++]=0x0a;
|
||||
m_TCPIPBuf[CH_SEND]._buffer[iBufSize]=0;
|
||||
m_TCPIPBuf[CH_SEND]._size=iBufSize;
|
||||
#else
|
||||
|
||||
memcpy(m_TCPIPBuf[CH_SEND]._buffer,DRW_SData,sizeof(DRW_SData));
|
||||
|
||||
m_TCPIPBuf[CH_SEND]._buffer[DRW_SDataIndexDA1]=m_SreverIPAddress.S_un.S_un_b.s_b4;
|
||||
@@ -300,6 +320,7 @@ TCPIP_RETURN_CODE CSo7_TCPIP::_Send_Cmd_Write_D_Data(const short& _Addr,short* _
|
||||
m_TCPIPBuf[CH_SEND]._buffer[DRW_RSDataIndexBufSize2]=sTmpData & 0x0ff;
|
||||
|
||||
m_TCPIPBuf[CH_SEND]._size=DRW_SDataIndexData+2*_DataSize;
|
||||
#endif
|
||||
m_TCPIPBuf[CH_SEND]._save_send_cmd=TCPIP_CMD_WRITE_D_DATA;
|
||||
m_TCPIPData.s_status._WriteDataCompleted=false;
|
||||
|
||||
@@ -317,6 +338,17 @@ TCPIP_RETURN_CODE CSo7_TCPIP::_Send_Cmd_Read_D_Data(const short& _Addr,const sho
|
||||
}
|
||||
WaitForSingleObject(m_Thread_Mutex, INFINITE);
|
||||
m_ClearSendBuf();
|
||||
#ifdef PLC_KEYENCE
|
||||
memset(m_TCPIPBuf[CH_SEND]._buffer,0,sizeof(m_TCPIPBuf[CH_SEND]._buffer));
|
||||
int iBufSize(0);
|
||||
|
||||
sprintf_s(m_TCPIPBuf[CH_SEND]._buffer,TCPIP_MAX_BUFF_SIZE,"RDS DM%d.U %d",_Addr,_DataSize);
|
||||
iBufSize=strlen(m_TCPIPBuf[CH_SEND]._buffer);
|
||||
m_TCPIPBuf[CH_SEND]._buffer[iBufSize++]=0x0d;
|
||||
m_TCPIPBuf[CH_SEND]._buffer[iBufSize++]=0x0a;
|
||||
m_TCPIPBuf[CH_SEND]._buffer[iBufSize]=0;
|
||||
m_TCPIPBuf[CH_SEND]._size=iBufSize;
|
||||
#else
|
||||
memcpy(m_TCPIPBuf[CH_SEND]._buffer,DRW_SData,sizeof(DRW_SData));
|
||||
|
||||
m_TCPIPBuf[CH_SEND]._buffer[DRW_SDataIndexDA1]=m_SreverIPAddress.S_un.S_un_b.s_b4;
|
||||
@@ -327,9 +359,8 @@ TCPIP_RETURN_CODE CSo7_TCPIP::_Send_Cmd_Read_D_Data(const short& _Addr,const sho
|
||||
m_TCPIPBuf[CH_SEND]._buffer[DRW_SDataIndexAddr2]=_Addr & 0x0ff;
|
||||
m_TCPIPBuf[CH_SEND]._buffer[DRW_SDataIndexCh1]=(_DataSize>>8) & 0x0ff;
|
||||
m_TCPIPBuf[CH_SEND]._buffer[DRW_SDataIndexCh2]=_DataSize & 0x0ff;
|
||||
|
||||
|
||||
m_TCPIPBuf[CH_SEND]._size=DRW_SDataIndexData;
|
||||
#endif
|
||||
m_TCPIPBuf[CH_SEND]._save_send_cmd=TCPIP_CMD_READ_D_DATA;
|
||||
m_TCPIPData.s_status._ReadDataCompleted=false;
|
||||
|
||||
@@ -353,7 +384,7 @@ LRESULT CSo7_TCPIP::OnSocket(WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
case FD_CONNECT:
|
||||
{
|
||||
|
||||
m_ClearSendBuf();
|
||||
}
|
||||
break;
|
||||
case FD_READ:
|
||||
@@ -481,6 +512,7 @@ void CSo7_TCPIP::m_ProcessSocketReadEvent(SOCKET s)
|
||||
}
|
||||
m_TCPIPBuf[CH_RECV]._CompletedSize += bytesReceived;
|
||||
m_TCPIPBuf[CH_RECV]._size = m_TCPIPBuf[CH_RECV]._CompletedSize;
|
||||
m_TCPIPBuf[CH_RECV]._buffer[m_TCPIPBuf[CH_RECV]._size]=0;
|
||||
switch (m_TCPIPBuf[CH_SEND]._save_send_cmd)
|
||||
{
|
||||
case TCPIP_CMD_HANDSHAKING:
|
||||
@@ -497,6 +529,8 @@ void CSo7_TCPIP::m_ProcessSocketReadEvent(SOCKET s)
|
||||
}
|
||||
case TCPIP_CMD_READ_D_DATA:
|
||||
{
|
||||
#ifdef PLC_KEYENCE
|
||||
#else
|
||||
int _BufferSize(0);
|
||||
BYTE _bData[4]={0,0,0,0};
|
||||
_bData[0]=static_cast<BYTE>(m_TCPIPBuf[CH_RECV]._buffer[DRW_RSDataIndexBufSize1]);
|
||||
@@ -517,6 +551,7 @@ void CSo7_TCPIP::m_ProcessSocketReadEvent(SOCKET s)
|
||||
m_TCPIPData.s_recv_data._lData[m_TCPIPData.s_recv_data._DataSize]=static_cast<int>(+(_bData[2]<<24)+(_bData[3]<<16)+(_bData[0]<<8)+(_bData[1]));
|
||||
m_TCPIPData.s_recv_data._DataSize++;
|
||||
}
|
||||
#endif
|
||||
m_TCPIPData.s_status._ReadDataCompleted=true;
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user