TCPIP SERVER

This commit is contained in:
TAO Cheng
2014-11-11 20:02:14 +08:00
parent 9953f94372
commit b94f3d2cf3
14 changed files with 345 additions and 67 deletions
+1
View File
@@ -42,3 +42,4 @@ PcDmis/Base/Interfac/Msi/Hsi/Videocard/TC4000/V6.0
PcDmis/Base/Interfac/Msi/Hsi/Videocard/TC4000/V7.5
PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/ConsoleTestDll/bin
PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/ConsoleTestDll/obj
PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/DebugS07/
@@ -4,14 +4,14 @@
CSTIL_CCS_PRIMA_Laser::CSTIL_CCS_PRIMA_Laser()
{
#ifdef _DEBUG
#ifdef _RELEASE_FULL_VERSION
ResetParam();
#endif //_DEBUG
}
CSTIL_CCS_PRIMA_Laser::~CSTIL_CCS_PRIMA_Laser(void)
{
#ifdef _DEBUG
#ifdef _RELEASE_FULL_VERSION
if (m_SensorId != 0)
{
CloseCom ();
@@ -23,7 +23,7 @@ CSTIL_CCS_PRIMA_Laser::~CSTIL_CCS_PRIMA_Laser(void)
BOOL CSTIL_CCS_PRIMA_Laser::Init(int _Mode)
{
BOOL bStatus(FALSE);
#ifdef _DEBUG
#ifdef _RELEASE_FULL_VERSION
ResetParam();
switch(_Mode)
{
@@ -52,7 +52,7 @@ BOOL CSTIL_CCS_PRIMA_Laser::Init(int _Mode)
BOOL CSTIL_CCS_PRIMA_Laser::Exit()
{
BOOL bStatus(FALSE);
#ifdef _DEBUG
#ifdef _RELEASE_FULL_VERSION
bStatus=ReleaseAcquisition();
if (m_SensorId != 0)
{
@@ -69,7 +69,7 @@ BOOL CSTIL_CCS_PRIMA_Laser::SetMeasureMode(int _MeasureMode)
{
case 0:
{
#ifdef _DEBUG
#ifdef _RELEASE_FULL_VERSION
double refractiveIndex = 1.5120;
SetRefractiveIndex (refractiveIndex);
int numberOfPointTRE(1);
@@ -88,7 +88,7 @@ BOOL CSTIL_CCS_PRIMA_Laser::SetMeasureMode(int _MeasureMode)
BOOL CSTIL_CCS_PRIMA_Laser::GetDistance(double &_dDis1, double &_dDis2)
{
BOOL bStatus(FALSE);
#ifdef _DEBUG
#ifdef _RELEASE_FULL_VERSION
double dbThickness(0.0),dblDistance1(0.0),dblDistance2(0.0),dblIntensity1(0.0),dblIntensity2(0.0);
bool bSoftTrigger(true);
bStatus=GetThicknessValue(dbThickness,dblDistance1,dblDistance2,dblIntensity1,dblIntensity2,bSoftTrigger);
@@ -104,7 +104,7 @@ BOOL CSTIL_CCS_PRIMA_Laser::GetDistance(double &_dDis1, double &_dDis2)
BOOL CSTIL_CCS_PRIMA_Laser::GetThicknessAllData(double &dbThickness, double &dblDistance1, double &dblDistance2, double &dblIntensity1, double &dblIntensity2)
{
BOOL bStatus(FALSE);
#ifdef _DEBUG
#ifdef _RELEASE_FULL_VERSION
bool bSoftTrigger(true);
bStatus=GetThicknessValue(dbThickness,dblDistance1,dblDistance2,dblIntensity1,dblIntensity2,bSoftTrigger);
#else
@@ -116,7 +116,7 @@ BOOL CSTIL_CCS_PRIMA_Laser::GetThicknessAllData(double &dbThickness, double &dbl
#endif //_DEBUG
return bStatus;
}
#ifdef _DEBUG
#ifdef _RELEASE_FULL_VERSION
//================================================================
void CSTIL_CCS_PRIMA_Laser::ResetParam()
{
@@ -499,16 +499,21 @@ void CSo7_TCPIP::m_ProcessSocketReadEvent(SOCKET s)
{
int _BufferSize(0);
BYTE _bData[4]={0,0,0,0};
_bData[0]=static_cast<BYTE>(m_TCPIPBuf[CH_RECV]._buffer[DRW_RSDataIndexBufSize1]);
_bData[1]=static_cast<BYTE>(m_TCPIPBuf[CH_RECV]._buffer[DRW_RSDataIndexBufSize2]);
_BufferSize=static_cast<int>(static_cast<BYTE>(m_TCPIPBuf[CH_RECV]._buffer[DRW_RSDataIndexBufSize2]));
_BufferSize=static_cast<int>((_bData[0]<<8)+_bData[1]);
_BufferSize-=DRW_RDataCCLen;
m_TCPIPData.s_recv_data._DataSize=0;
for (int i=0;i<_BufferSize;i+=4)
for (int i=0;i<_BufferSize;i+=2)
{
_bData[0]=static_cast<BYTE>(m_TCPIPBuf[CH_RECV]._buffer[DRW_RDataIndexData+i]);
_bData[1]=static_cast<BYTE>(m_TCPIPBuf[CH_RECV]._buffer[DRW_RDataIndexData+i+1]);
_bData[2]=static_cast<BYTE>(m_TCPIPBuf[CH_RECV]._buffer[DRW_RDataIndexData+i+2]);
_bData[3]=static_cast<BYTE>(m_TCPIPBuf[CH_RECV]._buffer[DRW_RDataIndexData+i+3]);
//_bData[2]=static_cast<BYTE>(m_TCPIPBuf[CH_RECV]._buffer[DRW_RDataIndexData+i+2]);
//_bData[3]=static_cast<BYTE>(m_TCPIPBuf[CH_RECV]._buffer[DRW_RDataIndexData+i+3]);
_bData[2]=0;
_bData[3]=0;
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++;
}
@@ -33,12 +33,14 @@ const int DRW_RSDataIndexBufSize2=7;
struct_so7_tcpip_buff CSo7_TCPIP_Server::m_TCPIPBuf[lChannelSize];
s_tcpip_state CSo7_TCPIP_Server::m_TCPIPServerState;
//================================================================
CSo7_TCPIP_Server::CSo7_TCPIP_Server()
{
m_hMsgWnd=NULL;
m_ServerStarted=FALSE;
m_Socket=INVALID_SOCKET;
m_SreverIPAddress;
m_iServerPortNumber=static_cast<u_short>(0);
@@ -93,6 +95,10 @@ int CSo7_TCPIP_Server::Init_Winsock()
//================================================================
BOOL CSo7_TCPIP_Server::StartServer(HWND _hWnd,short _nPort)
{
if (m_ServerStarted)
{
return FALSE;
}
int retVal=Init_Winsock();
retVal=Init_Winsock();
if(!retVal)
@@ -102,7 +108,10 @@ BOOL CSo7_TCPIP_Server::StartServer(HWND _hWnd,short _nPort)
m_iServerPortNumber=_nPort;
GetHostIPAddr(m_SreverIPAddress);
m_hMsgWnd=_hWnd;
CreateAndListen();
if (CreateAndListen())
{
m_ServerStarted=TRUE;
}
return TRUE;
}
//================================================================
@@ -112,9 +121,13 @@ BOOL CSo7_TCPIP_Server::StopServer()
{
return TCPIP_INVAILD_SOCKET;
}
closesocket(m_Socket);
m_Socket = INVALID_SOCKET;
return TCPIP_CONNECT_OK;
if (m_ServerStarted)
{
CloseAllSocket();
closesocket(m_Socket);
m_Socket = INVALID_SOCKET;
}
return TRUE;
}
//================================================================
BOOL CSo7_TCPIP_Server::GetHostIPAddr(in_addr& _IPAddress)
@@ -135,7 +148,7 @@ BOOL CSo7_TCPIP_Server::GetHostIPAddr(in_addr& _IPAddress)
first = FALSE;
}
_IPAddress=m_SreverIPAddress;
return TCPIP_CONNECT_OK;
return TRUE;
}
//================================================================
BOOL CSo7_TCPIP_Server::CreateAndListen()
@@ -246,6 +259,7 @@ BOOL CSo7_TCPIP_Server::Response_Handshake()
}
m_ClearSendBuf();
memcpy(m_TCPIPBuf[CH_SEND]._buffer,HandShaking,sizeof(HandShaking));
m_TCPIPBuf[CH_SEND]._size=sizeof(HandShaking);
SendBuffer();
return TRUE;
}
@@ -266,6 +280,7 @@ BOOL CSo7_TCPIP_Server::Response_PLC_State(short _datasize)
m_TCPIPBuf[CH_SEND]._buffer[DRW_SDataIndexData+2*i+1]=iData & 0x0ff;
}
m_TCPIPBuf[CH_SEND]._buffer[DRW_SDataIndexDataSize]=static_cast<char>(DRW_SDataIndexData+2*_datasize);
m_TCPIPBuf[CH_SEND]._size=sizeof(HandShaking);
SendBuffer();
@@ -286,6 +301,8 @@ BOOL CSo7_TCPIP_Server::Response_Sensor_State(short _datasize)
m_TCPIPBuf[CH_SEND]._buffer[DRW_SDataIndexData+i]=m_TCPIPServerState._PLCSensorState[i];
}
m_TCPIPBuf[CH_SEND]._buffer[DRW_SDataIndexDataSize]=static_cast<char>(DRW_SDataIndexData+2*_datasize);
m_TCPIPBuf[CH_SEND]._size=DRW_SDataIndexData+2*_datasize;
SendBuffer();
return TRUE;
@@ -309,6 +326,8 @@ BOOL CSo7_TCPIP_Server::Response_CCD_DATA(short _Addr,short _datasize)
}
m_TCPIPBuf[CH_SEND]._buffer[DRW_SDataIndexDataSize]=static_cast<char>(DRW_SDataIndexData+2*_datasize);
m_TCPIPBuf[CH_SEND]._size=DRW_SDataIndexData+2*_datasize;
SendBuffer();
return TRUE;
@@ -321,6 +340,7 @@ BOOL CSo7_TCPIP_Server::_Send_Cmd_Write_State()
return FALSE;
}
m_ClearSendBuf();
m_TCPIPBuf[CH_SEND]._size=0;
SendBuffer();
@@ -488,11 +508,14 @@ void CSo7_TCPIP_Server::m_ProcessSocketReadEvent(SOCKET s)
}
m_TCPIPBuf[CH_RECV]._CompletedSize += bytesReceived;
m_TCPIPBuf[CH_RECV]._size = m_TCPIPBuf[CH_RECV]._CompletedSize;
int iPara(0);
if (strstr(m_TCPIPBuf[CH_RECV]._buffer, "FINS"))
{
if (m_TCPIPBuf[CH_RECV]._buffer[7]==0x0C)//handshake
{
Response_Handshake();
iPara=RESPONSE_HANDSHAKE;
}
else if (m_TCPIPBuf[CH_RECV]._buffer[DRW_RDataIndexCMD1]==0x01
&&m_TCPIPBuf[CH_RECV]._buffer[DRW_RDataIndexCMD2]==0x01)
@@ -501,29 +524,30 @@ void CSo7_TCPIP_Server::m_ProcessSocketReadEvent(SOCKET s)
short iDataSize=(m_TCPIPBuf[CH_RECV]._buffer[DRW_RDataIndexCh1]<<8)+m_TCPIPBuf[CH_RECV]._buffer[DRW_RDataIndexCh2];
if (iAddr>=20000)
{
;//errcode
iPara=RESPONSE_READ_ERRCODE;
}
else if (iAddr>=10000)
{
Response_CCD_DATA((iAddr-10060),iDataSize);//ccd data
Response_CCD_DATA((iAddr-10060),iDataSize);
iPara=RESPONSE_READ_CCD_DATA;
}
else if (iAddr>=8000)
{
Response_PLC_State(1);//WRITE PLC STATE
{
iPara=RESPONSE_WRITE_PLC_STATE;
}
else if (iAddr>=5000)
{
;//READ PLC STATE
Response_PLC_State(1);
iPara=RESPONSE_READ_PLC_STATE;
}
else
{
;
iPara=RESPONSE_UNKNOWN;
}
}
}
m_TCPIPBuf[CH_RECV]._CompletedSize = 0;
m_TCPIPBuf[CH_RECV]._hProtoPending=FALSE;
::PostMessage(m_hMsgWnd,WM_TCPIP_MSG,FD_READ,0);
::PostMessage(m_hMsgWnd,WM_TCPIP_MSG,FD_READ,iPara);
}
@@ -40,6 +40,19 @@ enum OMRON_PLC_SENSOR
OMRON_PLC_LASER5_HEADB,
OMRON_PLC_SENSOR_TOTAL=PLC_MAX_SENSOR_STATE
};
enum TCPIP_RESPONSE_RESULT
{
RESPONSE_UNKNOWN=0,
RESPONSE_HANDSHAKE,
RESPONSE_READ_PLC_STATE,
RESPONSE_WRITE_PLC_STATE,
RESPONSE_READ_SENSOR_STATE,
RESPONSE_READ_CCD_DATA,
RESPONSE_READ_ERRCODE,
RESPONSE_RESULT
};
struct s_tcpip_state
{
TCPIP_RETURN_CODE _SendReturnCode;
@@ -79,7 +92,7 @@ public:
virtual ~CSo7_TCPIP_Server();
static struct_so7_tcpip_buff m_TCPIPBuf[lChannelSize];
s_tcpip_state m_TCPIPServerState;
static s_tcpip_state m_TCPIPServerState;
int m_CCDData[MAX_CCD_ADDR];
BOOL StartServer(HWND _hWnd,short _nPort);
@@ -94,7 +107,7 @@ public:
LRESULT OnSocket(WPARAM wParam, LPARAM lParam);
private:
HWND m_hMsgWnd;
BOOL m_ServerStarted;
SOCKET m_Socket;
SOCKET m_ClientSocket[MAX_SOCKET];
int m_nClients;
@@ -1038,27 +1038,31 @@ BEGIN
PUSHBUTTON "ĬÈϲÎÊý",IDC_BUTTON_MV900_DEFAULT_PARA,520,130,53,14
END
IDD_SO7_UTIL_PLC_TCPIP DIALOGEX 0, 0, 338, 251
IDD_SO7_UTIL_PLC_TCPIP DIALOGEX 0, 0, 432, 269
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "PLC TCP/IP "
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
PUSHBUTTON "Exit",IDCANCEL,292,230,39,14
GROUPBOX "TCP/IP Control",IDC_STATIC,17,12,87,81
PUSHBUTTON "Connect",IDC_BUTTON_PLC_TCPIP_CONNECT,28,28,63,18
PUSHBUTTON "Disconnect",IDC_BUTTON_PLC_TCPIP_DISCONNECT,28,70,63,18
EDITTEXT IDC_EDIT_MSG,19,97,265,130,ES_MULTILINE | ES_AUTOVSCROLL | ES_WANTRETURN | WS_VSCROLL
PUSHBUTTON "Clear",IDC_BUTTON_PLC_TCPIP_CLEAR_MSG,289,156,39,14
PUSHBUTTON "Read Data",IDC_BUTTON_PLC_TCPIP_READ,203,30,63,18
PUSHBUTTON "Write Data",IDC_BUTTON_PLC_TCPIP_WRITE,203,62,63,18
GROUPBOX "TCP/IP Control",IDC_STATIC,110,12,174,81
EDITTEXT IDC_EDIT_PLC_TCPIP_ADDR,144,28,40,14,ES_AUTOHSCROLL
LTEXT "Addr",IDC_STATIC,120,30,16,8
EDITTEXT IDC_EDIT_PLC_TCPIP_Data,144,74,40,14,ES_AUTOHSCROLL
LTEXT "Data",IDC_STATIC,120,76,16,8
PUSHBUTTON "Handshaking",IDC_BUTTON_PLC_TCPIP_HANDSHAKING,28,49,63,18
EDITTEXT IDC_EDIT_PLC_TCPIP_DATA_SIZE,144,51,40,14,ES_AUTOHSCROLL
LTEXT "Size",IDC_STATIC,120,53,14,8
PUSHBUTTON "Exit",IDCANCEL,386,248,39,14
GROUPBOX "TCP/IP Control",IDC_STATIC,20,14,153,95
PUSHBUTTON "Connect",IDC_BUTTON_PLC_TCPIP_CONNECT,30,68,63,18
PUSHBUTTON "Disconnect",IDC_BUTTON_PLC_TCPIP_DISCONNECT,30,88,63,18
EDITTEXT IDC_EDIT_MSG,19,116,333,130,ES_MULTILINE | ES_AUTOVSCROLL | ES_WANTRETURN | WS_VSCROLL
PUSHBUTTON "Clear",IDC_BUTTON_PLC_TCPIP_CLEAR_MSG,358,158,39,14
PUSHBUTTON "Read Data",IDC_BUTTON_PLC_TCPIP_READ,272,32,63,18
PUSHBUTTON "Write Data",IDC_BUTTON_PLC_TCPIP_WRITE,272,64,63,18
GROUPBOX "TCP/IP Data",IDC_STATIC,179,14,174,81
EDITTEXT IDC_EDIT_PLC_TCPIP_ADDR,213,30,40,14,ES_AUTOHSCROLL
LTEXT "Addr",IDC_STATIC,189,32,16,8
EDITTEXT IDC_EDIT_PLC_TCPIP_Data,213,76,40,14,ES_AUTOHSCROLL
LTEXT "Data",IDC_STATIC,189,78,16,8
PUSHBUTTON "Handshaking",IDC_BUTTON_PLC_TCPIP_HANDSHAKING,105,78,63,18
EDITTEXT IDC_EDIT_PLC_TCPIP_DATA_SIZE,213,53,40,14,ES_AUTOHSCROLL
LTEXT "Size",IDC_STATIC,189,55,14,8
CONTROL "",IDC_IPADDRESS_PLC_TCPIP,"SysIPAddress32",WS_TABSTOP,69,27,100,15
EDITTEXT IDC_EDIT__PLC_TCPIP_PORTNUMBER,69,48,40,14,ES_AUTOHSCROLL
LTEXT "Server Port",IDC_STATIC,27,51,38,8
LTEXT "Server IP",IDC_STATIC,27,31,31,8
END
IDD_SO7_UTIL_PLC_TCPIP_SERVER DIALOGEX 0, 0, 558, 326
@@ -1273,9 +1277,9 @@ BEGIN
IDD_SO7_UTIL_PLC_TCPIP, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 331
RIGHTMARGIN, 425
TOPMARGIN, 7
BOTTOMMARGIN, 244
BOTTOMMARGIN, 262
END
IDD_SO7_UTIL_PLC_TCPIP_SERVER, DIALOG
@@ -27,6 +27,7 @@ void CSo7_Util_PLC_TCPIP::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_EDIT_MSG, m_edMSG);
DDX_Control(pDX, IDC_IPADDRESS_PLC_TCPIP, m_IPAddress);
}
@@ -47,13 +48,56 @@ END_MESSAGE_MAP()
// CSo7_Util_PLC_TCPIP 消息处理程序
BOOL CSo7_Util_PLC_TCPIP::OnInitDialog()
{
CDialog::OnInitDialog();
// Add "About..." menu item to system menu.
// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
BOOL bNameValid;
CString strAboutMenu;
bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
ASSERT(bNameValid);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
m_IPAddress.SetAddress(192,168,0,5);
GetDlgItem(IDC_EDIT__PLC_TCPIP_PORTNUMBER)->SetWindowText(_T("9600"));
UpdateData(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
}
void CSo7_Util_PLC_TCPIP::OnBnClickedButtonPlcTcpipConnect()
{
CString str;
UpdateData(TRUE);
USES_CONVERSION;
GetDlgItem(IDC_EDIT__PLC_TCPIP_PORTNUMBER)->GetWindowText(str);
const char* cTempValue=T2A(str);
short sPortNumber=static_cast<short>(atoi(cTempValue));
in_addr IPAddress;
IPAddress.S_un.S_addr=inet_addr("192.168.0.5");
TCPIP_RETURN_CODE rCode=g_pSo7_TCPIP->Connect(m_hWnd,IPAddress,9600);
m_csMSG.Format(_T("Server:192.168.0.5[9600] Connect ReturnCode:%d."),rCode);
m_IPAddress.GetAddress(IPAddress.S_un.S_un_b.s_b1,IPAddress.S_un.S_un_b.s_b2,IPAddress.S_un.S_un_b.s_b3,IPAddress.S_un.S_un_b.s_b4);
TCPIP_RETURN_CODE rCode=g_pSo7_TCPIP->Connect(m_hWnd,IPAddress,sPortNumber);
m_csMSG.Format(_T("Server:%d.%d.%d.%d[%d] Connect ReturnCode:%d."),
IPAddress.S_un.S_un_b.s_b1,IPAddress.S_un.S_un_b.s_b2,
IPAddress.S_un.S_un_b.s_b3,IPAddress.S_un.S_un_b.s_b4,
sPortNumber,
rCode);
OutputWithScroll(m_csMSG,m_edMSG);
rCode=g_pSo7_TCPIP->GetHostIPAddr(IPAddress);
m_csMSG.Format(_T("Client:%d.%d.%d.%d ReturnCode:%d."),
@@ -187,12 +231,14 @@ LRESULT CSo7_Util_PLC_TCPIP::OnTCPIPRecv(WPARAM w, LPARAM p)
{
CString csTmp;
m_csMSG=_T("");
m_csMSG.Format(_T("<< Read status:%d;Data:"),g_pSo7_TCPIP->m_TCPIPData.s_status._ReadDataCompleted);
double dTmp(0.0);
for (int i=0;i<g_pSo7_TCPIP->m_TCPIPData.s_recv_data._DataSize;i++)
int iDataSize(0);
iDataSize=g_pSo7_TCPIP->m_TCPIPData.s_recv_data._DataSize;
m_csMSG.Format(_T("<< Read status:%d;DataSize:%d;Data:"),g_pSo7_TCPIP->m_TCPIPData.s_status._ReadDataCompleted,iDataSize);
int iTmp(0);
for (int i=0;i<iDataSize;i++)
{
dTmp=g_pSo7_TCPIP->m_TCPIPData.s_recv_data._lData[i]*0.001;
csTmp.Format(_T("%.4f,"),dTmp);
iTmp=static_cast<int>(g_pSo7_TCPIP->m_TCPIPData.s_recv_data._lData[i]);
csTmp.Format(_T("%d,"),iTmp);
m_csMSG+=csTmp;
}
OutputWithScroll(m_csMSG,m_edMSG);
@@ -17,8 +17,10 @@ public:
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV Ö§³Ö
void OutputWithScroll(const CString &strNewText,CEdit &edtOutput);
virtual BOOL OnInitDialog();
DECLARE_MESSAGE_MAP()
public:
CIPAddressCtrl m_IPAddress;
CString m_csMSG;
CEdit m_edMSG;
afx_msg void OnBnClickedButtonPlcTcpipConnect();
@@ -33,8 +33,10 @@ CSo7_Util_PLC_TCPIP_SERVER::~CSo7_Util_PLC_TCPIP_SERVER()
void CSo7_Util_PLC_TCPIP_SERVER::DoDataExchange(CDataExchange* pDX)
{
DDX_Control(pDX, IDC_LIST_PLC_TCPIP_SERVER_CCDDATA, m_DataList);
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_EDIT_MSG, m_edMSG);
DDX_Control(pDX, IDC_LIST_PLC_TCPIP_SERVER_CCDDATA, m_DataList);
}
@@ -87,6 +89,7 @@ BOOL CSo7_Util_PLC_TCPIP_SERVER::OnInitDialog()
GetDlgItem(IDC_EDIT_PLC_TCPIP_SERVER_STATE_LASER2)->SetWindowTextW(str);
str.Format(_T("%d"),g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCRunningState);
GetDlgItem(IDC_EDIT_PLC_TCPIP_SERVER_PLC_STATE)->SetWindowTextW(str);
m_UpdateListControl(E_LISTCTRL_TITLE);
UpdateData(FALSE);
@@ -96,13 +99,23 @@ BOOL CSo7_Util_PLC_TCPIP_SERVER::OnInitDialog()
void CSo7_Util_PLC_TCPIP_SERVER::OnBnClickedButtonPlcTcpipServerStart()
{
;// TODO: Add your control notification handler code here
if (g_pSo7_TCPIP_Server)
{
g_pSo7_TCPIP_Server->StartServer(m_hWnd,9600);
m_csMSG=_T("<StartServer> ok.");
OutputWithScroll(m_csMSG,m_edMSG);
}
}
void CSo7_Util_PLC_TCPIP_SERVER::OnBnClickedButtonPlcTcpipServerStop()
{
;// TODO: Add your control notification handler code here
if (g_pSo7_TCPIP_Server)
{
g_pSo7_TCPIP_Server->StopServer();
m_csMSG=_T("<StopServer> ok.");
OutputWithScroll(m_csMSG,m_edMSG);
}
}
@@ -234,38 +247,84 @@ LRESULT CSo7_Util_PLC_TCPIP_SERVER::OnSocket(WPARAM w, LPARAM p)
//=====================================================================================
LRESULT CSo7_Util_PLC_TCPIP_SERVER::OnTCPIPMsg(WPARAM w, LPARAM p)
{
UNREFERENCED_PARAMETER(p);
LRESULT lResult=0;
int lPara=static_cast<int>(p);
switch(w)
{
case FD_ACCEPT:
{
m_csMSG=_T("FD_ACCEPT");
m_csMSG=_T("<TCIPIP> FD_ACCEPT");
break;
}
case FD_READ:
{
m_csMSG=_T("FD_READ");
m_csMSG=_T("<TCIPIP> FD_READ ")+TCPIPMsg(lPara);
break;
}
case FD_WRITE:
{
m_csMSG=_T("FD_WRITE");
m_csMSG=_T("<TCIPIP> FD_WRITE");
break;
}
case FD_CLOSE:
{
m_csMSG=_T("FD_CLOSE");
m_csMSG=_T("<TCIPIP> FD_CLOSE");
break;
}
default:
{
m_csMSG=_T("[Unknown]");
m_csMSG=_T("<TCIPIP> [Unknown]");
break;
}
}
m_csMSG+=_T(".");
OutputWithScroll(m_csMSG,m_edMSG);
return( lResult );
}
//=====================================================================================
CString CSo7_Util_PLC_TCPIP_SERVER::TCPIPMsg(int _Type)
{
CString cStr("");
switch(_Type)
{
case RESPONSE_UNKNOWN:
{
cStr=_T("RESPONSE_UNKNOWN");
break;
}
case RESPONSE_HANDSHAKE:
{
cStr=_T("RESPONSE_HANDSHAKE");
break;
}
case RESPONSE_READ_PLC_STATE:
{
cStr=_T("RESPONSE_READ_PLC_STATE");
break;
}
case RESPONSE_WRITE_PLC_STATE:
{
cStr=_T("RESPONSE_WRITE_PLC_STATE");
break;
}
case RESPONSE_READ_SENSOR_STATE:
{
cStr=_T("RESPONSE_READ_SENSOR_STATE");
break;
}
case RESPONSE_READ_CCD_DATA:
{
cStr=_T("RESPONSE_READ_CCD_DATA");
break;
}
case RESPONSE_READ_ERRCODE:
{
cStr=_T("RESPONSE_READ_ERRCODE");
break;
}
default:
{
break;
}
}
return cStr;
}
@@ -14,9 +14,9 @@ public:
// Dialog Data
enum { IDD = IDD_SO7_UTIL_PLC_TCPIP_SERVER };
protected:
CString m_csMSG;
CEdit m_edMSG;
protected:
CEditableListCtrl m_DataList;
void OutputWithScroll(const CString &strNewText,CEdit &edtOutput);
@@ -36,5 +36,6 @@ public:
LRESULT OnTCPIPMsg(WPARAM w, LPARAM p);
afx_msg void OnBnClickedButtonPlcTcpipServerUpdatedata();
void m_UpdateListControl(int _type);
CString TCPIPMsg(int _Type);
};
@@ -1,6 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="DebugS07|Win32">
<Configuration>DebugS07</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugS07|x64">
<Configuration>DebugS07</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
@@ -70,11 +78,21 @@
<UseOfMfc>Dynamic</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugS07|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>Dynamic</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>Dynamic</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugS07|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseOfMfc>Dynamic</UseOfMfc>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
@@ -93,18 +111,30 @@
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugS07|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugS07|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='DebugS07|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Configuration)\</OutDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='DebugS07|x64'">$(SolutionDir)$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='DebugS07|Win32'">$(Configuration)\</IntDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Configuration)\</IntDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='DebugS07|x64'">$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='DebugS07|Win32'">true</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='DebugS07|x64'">true</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseSO7|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Configuration)\</OutDir>
@@ -119,7 +149,9 @@
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='ReleaseSO7|x64'">false</LinkIncremental>
<TargetName Condition="'$(Configuration)|$(Platform)'=='ReleaseSO7|Win32'">Utility for So7 Controller</TargetName>
<EmbedManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</EmbedManifest>
<EmbedManifest Condition="'$(Configuration)|$(Platform)'=='DebugS07|Win32'">true</EmbedManifest>
<GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</GenerateManifest>
<GenerateManifest Condition="'$(Configuration)|$(Platform)'=='DebugS07|Win32'">true</GenerateManifest>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Midl>
@@ -151,6 +183,36 @@
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugS07|Win32'">
<Midl>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>false</MkTypLibCompatible>
<ValidateAllParameters>true</ValidateAllParameters>
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;_RELEASE_SO7_CONTROLER_ONLY;_REMOVE_DLLCHR;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<TreatWarningAsError>true</TreatWarningAsError>
<ProgramDataBaseFileName>$(IntDir)vc$(ProjectName).pdb</ProgramDataBaseFileName>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0409</Culture>
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<AdditionalDependencies>..\..\..\..\..\..\..\ThirdParty\UsbSupport\LibUsb_Win\Lib\Msvc\libusb.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Midl>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
@@ -177,6 +239,32 @@
<SubSystem>Windows</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugS07|x64'">
<Midl>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>false</MkTypLibCompatible>
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<TreatWarningAsError>true</TreatWarningAsError>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0409</Culture>
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<AdditionalDependencies>..\..\LibUsb_Win\Lib\Msvc\libusb.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Midl>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
@@ -310,6 +398,7 @@
<ClCompile Include="..\..\..\Keyence\Keyence_Proto.cpp" />
<ClCompile Include="..\..\..\MicroVu\Mv_Proto.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\..\..\..\ThirdParty\UsbSupport\LibUsb_Win\Include</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='DebugS07|Win32'">..\..\..\..\..\ThirdParty\UsbSupport\LibUsb_Win\Include</AdditionalIncludeDirectories>
</ClCompile>
<ClCompile Include="..\..\..\SevenOcean\CAutoZoom.cpp" />
<ClCompile Include="..\..\..\SevenOcean\CMMIO_BASE.CPP" />
@@ -376,7 +465,9 @@
<ClCompile Include="So7_XBoxController.cpp" />
<ClCompile Include="stdafx.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='DebugS07|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='DebugS07|x64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='ReleaseSO7|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
@@ -1062,6 +1062,8 @@
#define IDC_EDIT_PLC_TCPIP_ADDR2 1891
#define IDC_EDIT_PLC_TCPIP_DATA_SIZE 1891
#define IDC_EDIT_PLC_TCPIP_SERVER_STATE_CCD1 1892
#define IDC_EDIT_PLC_TCPIP_ADDR3 1892
#define IDC_EDIT__PLC_TCPIP_PORTNUMBER 1892
#define IDC_EDIT_PLC_TCPIP_SERVER_STATE_LASER2 1893
#define IDC_EDIT_PLC_TCPIP_SERVER_STATE_CCD2 1894
#define IDC_BUTTON_PLC_TCPIP_SERVER_START 1895
@@ -1072,6 +1074,7 @@
#define IDC_BUTTON_PLC_TCPIP_SERVER_UPDATESTATE2 1900
#define IDC_BUTTON_PLC_TCPIP_SERVER_UPDATEDATA 1900
#define IDC_LIST_PLC_TCPIP_SERVER_CCDDATA 1902
#define IDC_IPADDRESS_PLC_TCPIP 1903
#define IDC_BUTTON_DIY_EXIT_BUTTON 32740
#define ID_EDIT_SO7_CONFIG_MOTION 32741
@@ -1081,7 +1084,7 @@
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 193
#define _APS_NEXT_COMMAND_VALUE 32771
#define _APS_NEXT_CONTROL_VALUE 1903
#define _APS_NEXT_CONTROL_VALUE 1904
#define _APS_NEXT_SYMED_VALUE 104
#endif
#endif
@@ -21,6 +21,10 @@ Global
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
DebugS07|Mixed Platforms = DebugS07|Mixed Platforms
DebugS07|Win32 = DebugS07|Win32
DebugS07|x64 = DebugS07|x64
DebugS07|x86 = DebugS07|x86
Release|Mixed Platforms = Release|Mixed Platforms
Release|Win32 = Release|Win32
Release|x64 = Release|x64
@@ -42,6 +46,13 @@ Global
{50B21A79-C887-4F7E-8911-7E3A685BFA25}.Debug|x64.ActiveCfg = Debug|x64
{50B21A79-C887-4F7E-8911-7E3A685BFA25}.Debug|x64.Build.0 = Debug|x64
{50B21A79-C887-4F7E-8911-7E3A685BFA25}.Debug|x86.ActiveCfg = Debug|x64
{50B21A79-C887-4F7E-8911-7E3A685BFA25}.DebugS07|Mixed Platforms.ActiveCfg = DebugS07|x64
{50B21A79-C887-4F7E-8911-7E3A685BFA25}.DebugS07|Mixed Platforms.Build.0 = DebugS07|x64
{50B21A79-C887-4F7E-8911-7E3A685BFA25}.DebugS07|Win32.ActiveCfg = DebugS07|Win32
{50B21A79-C887-4F7E-8911-7E3A685BFA25}.DebugS07|Win32.Build.0 = DebugS07|Win32
{50B21A79-C887-4F7E-8911-7E3A685BFA25}.DebugS07|x64.ActiveCfg = DebugS07|x64
{50B21A79-C887-4F7E-8911-7E3A685BFA25}.DebugS07|x64.Build.0 = DebugS07|x64
{50B21A79-C887-4F7E-8911-7E3A685BFA25}.DebugS07|x86.ActiveCfg = DebugS07|x64
{50B21A79-C887-4F7E-8911-7E3A685BFA25}.Release|Mixed Platforms.ActiveCfg = Release|x64
{50B21A79-C887-4F7E-8911-7E3A685BFA25}.Release|Mixed Platforms.Build.0 = Release|x64
{50B21A79-C887-4F7E-8911-7E3A685BFA25}.Release|Win32.ActiveCfg = Release|Win32
@@ -69,6 +80,12 @@ Global
{A945B062-6081-49F0-992D-D14769C4C7D4}.Debug|Win32.Build.0 = Debug|Win32
{A945B062-6081-49F0-992D-D14769C4C7D4}.Debug|x64.ActiveCfg = Debug|Win32
{A945B062-6081-49F0-992D-D14769C4C7D4}.Debug|x86.ActiveCfg = Debug|Win32
{A945B062-6081-49F0-992D-D14769C4C7D4}.DebugS07|Mixed Platforms.ActiveCfg = Debug|Win32
{A945B062-6081-49F0-992D-D14769C4C7D4}.DebugS07|Mixed Platforms.Build.0 = Debug|Win32
{A945B062-6081-49F0-992D-D14769C4C7D4}.DebugS07|Win32.ActiveCfg = Debug|Win32
{A945B062-6081-49F0-992D-D14769C4C7D4}.DebugS07|Win32.Build.0 = Debug|Win32
{A945B062-6081-49F0-992D-D14769C4C7D4}.DebugS07|x64.ActiveCfg = Debug|Win32
{A945B062-6081-49F0-992D-D14769C4C7D4}.DebugS07|x86.ActiveCfg = Debug|Win32
{A945B062-6081-49F0-992D-D14769C4C7D4}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{A945B062-6081-49F0-992D-D14769C4C7D4}.Release|Mixed Platforms.Build.0 = Release|Win32
{A945B062-6081-49F0-992D-D14769C4C7D4}.Release|Win32.ActiveCfg = Release|Win32
@@ -93,6 +110,12 @@ Global
{BF02B850-BB32-4635-9E53-8583C474884D}.Debug|Win32.Build.0 = Debug|Win32
{BF02B850-BB32-4635-9E53-8583C474884D}.Debug|x64.ActiveCfg = Debug|Win32
{BF02B850-BB32-4635-9E53-8583C474884D}.Debug|x86.ActiveCfg = Debug|Win32
{BF02B850-BB32-4635-9E53-8583C474884D}.DebugS07|Mixed Platforms.ActiveCfg = Debug|Win32
{BF02B850-BB32-4635-9E53-8583C474884D}.DebugS07|Mixed Platforms.Build.0 = Debug|Win32
{BF02B850-BB32-4635-9E53-8583C474884D}.DebugS07|Win32.ActiveCfg = Debug|Win32
{BF02B850-BB32-4635-9E53-8583C474884D}.DebugS07|Win32.Build.0 = Debug|Win32
{BF02B850-BB32-4635-9E53-8583C474884D}.DebugS07|x64.ActiveCfg = Debug|Win32
{BF02B850-BB32-4635-9E53-8583C474884D}.DebugS07|x86.ActiveCfg = Debug|Win32
{BF02B850-BB32-4635-9E53-8583C474884D}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{BF02B850-BB32-4635-9E53-8583C474884D}.Release|Mixed Platforms.Build.0 = Release|Win32
{BF02B850-BB32-4635-9E53-8583C474884D}.Release|Win32.ActiveCfg = Release|Win32
@@ -117,6 +140,12 @@ Global
{5E3B7ED1-B324-4966-8527-D29873AC3815}.Debug|x64.ActiveCfg = Debug|x86
{5E3B7ED1-B324-4966-8527-D29873AC3815}.Debug|x86.ActiveCfg = Debug|x86
{5E3B7ED1-B324-4966-8527-D29873AC3815}.Debug|x86.Build.0 = Debug|x86
{5E3B7ED1-B324-4966-8527-D29873AC3815}.DebugS07|Mixed Platforms.ActiveCfg = Debug|x86
{5E3B7ED1-B324-4966-8527-D29873AC3815}.DebugS07|Mixed Platforms.Build.0 = Debug|x86
{5E3B7ED1-B324-4966-8527-D29873AC3815}.DebugS07|Win32.ActiveCfg = Debug|x86
{5E3B7ED1-B324-4966-8527-D29873AC3815}.DebugS07|x64.ActiveCfg = Debug|x86
{5E3B7ED1-B324-4966-8527-D29873AC3815}.DebugS07|x86.ActiveCfg = Debug|x86
{5E3B7ED1-B324-4966-8527-D29873AC3815}.DebugS07|x86.Build.0 = Debug|x86
{5E3B7ED1-B324-4966-8527-D29873AC3815}.Release|Mixed Platforms.ActiveCfg = Release|x86
{5E3B7ED1-B324-4966-8527-D29873AC3815}.Release|Mixed Platforms.Build.0 = Release|x86
{5E3B7ED1-B324-4966-8527-D29873AC3815}.Release|Win32.ActiveCfg = Release|x86