#include "StdAfx.h" #include ".\tcpclientclass.h" #include "Define.h" #include "H7Serial.h" #include "Resource.h" #include "H7 serverDlg.h" #include TcpClientClass::TcpClientClass(void) { isClosed = false; } TcpClientClass::~TcpClientClass(void) { } void TcpClientClass::OnReceive(int nErrorCode) { // MessageBox(0,"OnReceive","",MB_OK); int size = 4096; char Buffer[4096]; CString Buff; size = TcpClientClass::Receive(Buffer, size -1); Buffer[size] = 0; Buff = Buffer; CH7ServerDlg* parent = (CH7ServerDlg*) AfxGetMainWnd(); CString debug; debug.Format("%d\n",atoi(Buff)); OutputDebugString( debug ); try{ // Depending on what we have received from client, we replay with the relevant data. switch( atoi(Buff) ) { case 110: parent->H7Serial.writeTarget(LED3,OFF); break; case 111: parent->H7Serial.writeTarget(LED3,ON); break; case 120: parent->H7Serial.writeTarget(LED4,OFF); break; case 121: parent->H7Serial.writeTarget(LED4,ON); break; case 130: parent->H7Serial.writeTarget(LED5,OFF); break; case 131: parent->H7Serial.writeTarget(LED5,ON); break; case 100: SendReply(); // <-- break; } Sleep(10); parent->UpdateClient(this); } catch (std::exception e) { CString msg; msg.Format("%d : %s", atoi(Buff), e.what() ); MessageBox(0, msg, "", MB_OK); } CSocket::OnReceive(nErrorCode); } void TcpClientClass::SendReply(void) { CH7ServerDlg* parent = (CH7ServerDlg*) AfxGetMainWnd(); CString output; short Tmp; CString format; const int timer = 10; Sleep(timer); mLed3 = parent->H7Serial.readTarget(0); if( mLed3 == 0 ) output = "110|"; else if( mLed3 == 1) output = "111|"; Send(output,output.GetLength(),0); Sleep(timer); mLed4 = parent->H7Serial.readTarget(1); if( mLed4 == 0 ) output = "120|"; else if( mLed4 == 1) output = "121|"; Send(output,output.GetLength(),0); Sleep(timer); mLed5 = parent->H7Serial.readTarget(2); if( mLed5 == 0 ) output = "130|"; else if( mLed5 == 1) output = "131|"; Send(output,output.GetLength(),0); Sleep(timer); mSw2 = parent->H7Serial.readTarget(3); if( mSw2 == 0 ) output = "140|"; else if( mSw2 == 1 ) output = "141|"; Send(output,output.GetLength(),0); Sleep(timer); mSw3 = parent->H7Serial.readTarget(4); if( mSw3 == 0 ) output = "150|"; else if( mSw3 == 1 ) output = "151|"; Send(output,output.GetLength(),0); Sleep(timer); mPot = parent->H7Serial.readTarget(5); format.Format("%d|",mPot + 2000); Send(format,format.GetLength(),0); Sleep(timer); mTemp = parent->H7Serial.readTarget(6); format.Format("%d|",mTemp + 4000); Send(format,format.GetLength(),0); Sleep(timer); } void TcpClientClass::OnClose(int nErrorCode) { isClosed = true; CSocket::OnClose(nErrorCode); }