diff --git a/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/So7_TCPIP_Server.cpp b/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/So7_TCPIP_Server.cpp index c6bddf6..3aad8dc 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/So7_TCPIP_Server.cpp +++ b/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/So7_TCPIP_Server.cpp @@ -12,7 +12,8 @@ const BYTE CommHeader[]={0x46,0x49,0x4E,0x53}; const BYTE HandShaking[]={0X46,0X49,0X4E,0X53,0X00,0X00,0X00,0X10,0X00,0X00,0X00,0X01,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X00,0X00,0X00,0X05}; const BYTE DRW_SData[]={0X46,0X49,0X4E,0X53,0X00,0X00,0X00,0X16,0X00,0X00,0X00,0X02,0X00,0X00,0X00,0X00,0XC0,0X00,0X02,0X00,0X03,0X00,0X00,0X05,0X00,0XFF,0X01,0X01,0X00,0X00}; -const int DRW_SDataIndexDataSize=7; +const int DRW_SDataIndexDataSize1=6; +const int DRW_SDataIndexDataSize2=7; const int DRW_SDataHeadDataSize=8; const int DRW_SDataIndexData=30; @@ -58,16 +59,17 @@ CSo7_TCPIP_Server::CSo7_TCPIP_Server() m_TCPIPBuf[i]._size = 0; m_TCPIPBuf[i]._CompletedSize = 0; m_TCPIPBuf[i]._save_send_cmd = 99; - m_TCPIPBuf[i]._buffer = (char *)malloc(TCPIP_MAX_BUFF_SIZE); + m_TCPIPBuf[i]._buffer = (char *)malloc(sizeof(char)*TCPIP_MAX_BUFF_SIZE); m_TCPIPBuf[i]._hProtoPending = false; m_TCPIPBuf[i]._event = NULL; }; - DM5000= (short *)malloc(MAX_DM_PAGE_NUMBER); - DM8000= (short *)malloc(MAX_DM_PAGE_NUMBER); - DM10000= (short *)malloc(MAX_DM_PAGE_NUMBER); - memset(DM5000,0,MAX_DM_PAGE_NUMBER); - memset(DM8000,0,MAX_DM_PAGE_NUMBER); - memset(DM10000,0,MAX_DM_PAGE_NUMBER); + DM5000= (short *)malloc(sizeof(short)*MAX_DM_PAGE_NUMBER); + DM8000= (short *)malloc(sizeof(short)*MAX_DM_PAGE_NUMBER); + DM10000= (short *)malloc(sizeof(short)*MAX_DM_PAGE_NUMBER); + memset(DM5000,0,sizeof(short)*MAX_DM_PAGE_NUMBER); + memset(DM8000,0,sizeof(short)*MAX_DM_PAGE_NUMBER); + memset(DM10000,0,sizeof(short)*MAX_DM_PAGE_NUMBER); + m_TCPIPMsg.Init(); } @@ -326,7 +328,10 @@ BOOL CSo7_TCPIP_Server::Response_PLC_DM5000_R(short _StartAddr,short _DataSize) m_TCPIPBuf[CH_SEND]._buffer[DRW_SDataIndexData+2*i]=(sData>>8) & 0x0ff; m_TCPIPBuf[CH_SEND]._buffer[DRW_SDataIndexData+2*i+1]=sData & 0x0ff; } - m_TCPIPBuf[CH_SEND]._buffer[DRW_SDataIndexDataSize]=static_cast(DRW_SDataIndexData-DRW_SDataHeadDataSize+_DataSize*2); + short sDataSize(0); + sDataSize=(DRW_SDataIndexData-DRW_SDataHeadDataSize+_DataSize*2); + m_TCPIPBuf[CH_SEND]._buffer[DRW_SDataIndexDataSize1]=static_cast((sDataSize>>8) & 0x0ff); + m_TCPIPBuf[CH_SEND]._buffer[DRW_SDataIndexDataSize2]=static_cast(sDataSize & 0x0ff); m_TCPIPBuf[CH_SEND]._size=DRW_SDataIndexData+_DataSize*2; SendBuffer(); @@ -355,7 +360,10 @@ BOOL CSo7_TCPIP_Server::Response_PLC_DM10000_R(short _StartAddr,short _DataSize) m_TCPIPBuf[CH_SEND]._buffer[DRW_SDataIndexData+2*i]=(sData>>8) & 0x0ff; m_TCPIPBuf[CH_SEND]._buffer[DRW_SDataIndexData+2*i+1]=sData & 0x0ff; } - m_TCPIPBuf[CH_SEND]._buffer[DRW_SDataIndexDataSize]=static_cast(DRW_SDataIndexData-DRW_SDataHeadDataSize+_DataSize*2); + short sDataSize(0); + sDataSize=(DRW_SDataIndexData-DRW_SDataHeadDataSize+_DataSize*2); + m_TCPIPBuf[CH_SEND]._buffer[DRW_SDataIndexDataSize1]=static_cast((sDataSize>>8) & 0x0ff); + m_TCPIPBuf[CH_SEND]._buffer[DRW_SDataIndexDataSize2]=static_cast(sDataSize & 0x0ff); m_TCPIPBuf[CH_SEND]._size=DRW_SDataIndexData+_DataSize*2; @@ -539,14 +547,13 @@ 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); - + m_TCPIPMsg.Init(); if (strstr(m_TCPIPBuf[CH_RECV]._buffer, "FINS")) { if (m_TCPIPBuf[CH_RECV]._buffer[7]==0x0C)//handshake { Response_Handshake(); - iPara=RESPONSE_HANDSHAKE; + m_TCPIPMsg._MsgType=RESPONSE_HANDSHAKE; } else if (m_TCPIPBuf[CH_RECV]._buffer[DRW_RDataIndexCMD1]==0x01 &&m_TCPIPBuf[CH_RECV]._buffer[DRW_RDataIndexCMD2]==0x01) @@ -560,25 +567,32 @@ void CSo7_TCPIP_Server::m_ProcessSocketReadEvent(SOCKET s) bData[0]=m_TCPIPBuf[CH_RECV]._buffer[DRW_RDataIndexCh1]; bData[1]=m_TCPIPBuf[CH_RECV]._buffer[DRW_RDataIndexCh2]; iDataSize=(bData[0]<<8)+bData[1]; - + m_TCPIPMsg._CmdType=0; + m_TCPIPMsg._DataAddr=iAddr; + m_TCPIPMsg._DataSize=iDataSize; if (iAddr>=20000) { - iPara=RESPONSE_READ_ERRCODE; + m_TCPIPMsg._MsgType=RESPONSE_READ_ERRCODE; } else if (iAddr>=10000) { Response_PLC_DM10000_R(iAddr,iDataSize); - iPara=RESPONSE_READ_CCD_DATA; + m_TCPIPMsg._MsgType=RESPONSE_READ_CCD_DATA; + } + else if (iAddr>=5100) + { + Response_PLC_DM5000_R(iAddr,iDataSize); + m_TCPIPMsg._MsgType=RESPONSE_READ_PLC_CALIB_POS; } else if (iAddr>=5000) { Response_PLC_DM5000_R(iAddr,iDataSize); - iPara=RESPONSE_READ_PLC_STATE; + m_TCPIPMsg._MsgType=RESPONSE_READ_PLC_STATE; } else { RESPONSE_PLC_DM_UNKNOWN(); - iPara=RESPONSE_UNKNOWN; + m_TCPIPMsg._MsgType=RESPONSE_UNKNOWN; } } else if (m_TCPIPBuf[CH_RECV]._buffer[DRW_RDataIndexCMD1]==0x01 @@ -593,6 +607,9 @@ void CSo7_TCPIP_Server::m_ProcessSocketReadEvent(SOCKET s) bData[0]=m_TCPIPBuf[CH_RECV]._buffer[DRW_RDataIndexCh1]; bData[1]=m_TCPIPBuf[CH_RECV]._buffer[DRW_RDataIndexCh2]; iDataSize=(bData[0]<<8)+bData[1]; + m_TCPIPMsg._CmdType=1; + m_TCPIPMsg._DataAddr=iAddr; + m_TCPIPMsg._DataSize=iDataSize; if (iAddr>=8000) { int iBuffsize(0); @@ -608,23 +625,27 @@ void CSo7_TCPIP_Server::m_ProcessSocketReadEvent(SOCKET s) bData[1]=m_TCPIPBuf[CH_RECV]._buffer[DRW_RDataIndexData+i+1]; DM8000[iStartAddr++]=(bData[0]<<8)+bData[1]; } + m_TCPIPMsg._UpdateData=1; + if (DM8000[2]==1) + { + DM5000[0]=1; + m_TCPIPMsg._UpdateData=2; + } RESPONSE_PLC_DM_UNKNOWN(); - iPara=RESPONSE_WRITE_PLC_STATE; + m_TCPIPMsg._MsgType=RESPONSE_WRITE_PLC_STATE; } else { RESPONSE_PLC_DM_UNKNOWN(); - iPara=RESPONSE_UNKNOWN; + m_TCPIPMsg._MsgType=RESPONSE_UNKNOWN; } } - } - m_TCPIPBuf[CH_RECV]._CompletedSize = 0; m_TCPIPBuf[CH_RECV]._hProtoPending=FALSE; - if (iPara!=RESPONSE_READ_PLC_STATE) + if (m_TCPIPMsg._MsgType!=RESPONSE_READ_PLC_STATE) { - ::PostMessage(m_hMsgWnd,WM_TCPIP_MSG,FD_READ,iPara); + ::PostMessage(m_hMsgWnd,WM_TCPIP_MSG,FD_READ,LPARAM(&m_TCPIPMsg)); } } diff --git a/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/So7_TCPIP_Server.h b/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/So7_TCPIP_Server.h index a482018..1e6b02b 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/So7_TCPIP_Server.h +++ b/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/So7_TCPIP_Server.h @@ -48,6 +48,7 @@ enum TCPIP_RESPONSE_RESULT RESPONSE_UNKNOWN=0, RESPONSE_HANDSHAKE, RESPONSE_READ_PLC_STATE, + RESPONSE_READ_PLC_CALIB_POS, RESPONSE_WRITE_PLC_STATE, RESPONSE_READ_SENSOR_STATE, RESPONSE_READ_CCD_DATA, @@ -86,6 +87,27 @@ struct s_tcpip_state _PCMeasureResult=0; }; }; + +struct s_tcpip_msg_data +{ + int _MsgType; + int _CmdType; + int _DataAddr; + int _DataSize; + int _UpdateData; + void Init() + { + _MsgType=0; + _CmdType=0; + _DataAddr=0; + _DataSize=0; + _UpdateData=0; + }; + s_tcpip_msg_data() + { + Init(); + }; +}; //====================================================================================== class CSo7_TCPIP_Server { @@ -95,7 +117,7 @@ public: static struct_so7_tcpip_buff m_TCPIPBuf[lChannelSize]; static s_tcpip_state m_TCPIPServerState; - + s_tcpip_msg_data m_TCPIPMsg; short *DM5000; short *DM8000; short *DM10000; diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Mv_Util.rc b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Mv_Util.rc index d75f602..02feab4 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Mv_Util.rc +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Mv_Util.rc @@ -1093,7 +1093,7 @@ BEGIN PUSHBUTTON "Update",IDC_BUTTON_PLC_TCPIP_SERVER_UPDATEDATA,277,294,40,14 EDITTEXT IDC_EDIT_PLC_TCPIP_SERVER_PORTNUMBER,51,30,40,14,ES_AUTOHSCROLL LTEXT "Port",IDC_STATIC,29,33,14,8 - CONTROL "CCD DM",IDC_RADIO_PLC_TCPIP_SERVER_ADDR_CCD_DM,"Button",BS_AUTORADIOBUTTON | WS_GROUP,32,110,42,10 + CONTROL "CCD1 DM",IDC_RADIO_PLC_TCPIP_SERVER_ADDR_CCD_DM,"Button",BS_AUTORADIOBUTTON | WS_GROUP,32,110,46,10 CONTROL "DM 5000",IDC_RADIO_PLC_TCPIP_SERVER_ADDR_DM5000,"Button",BS_AUTORADIOBUTTON,93,110,44,10 CONTROL "DM 8000",IDC_RADIO_PLC_TCPIP_SERVER_ADDR_DM8000,"Button",BS_AUTORADIOBUTTON,156,110,44,10 END diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Util_PLC_TCPIP_SERVER.cpp b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Util_PLC_TCPIP_SERVER.cpp index c7c118c..95a2b4f 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Util_PLC_TCPIP_SERVER.cpp +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Util_PLC_TCPIP_SERVER.cpp @@ -23,8 +23,8 @@ extern CSo7_TCPIP_Server* g_pSo7_TCPIP_Server; IMPLEMENT_DYNAMIC(CSo7_Util_PLC_TCPIP_SERVER, CDialog) -CSo7_Util_PLC_TCPIP_SERVER::CSo7_Util_PLC_TCPIP_SERVER(CWnd* pParent /*=NULL*/) - : CDialog(CSo7_Util_PLC_TCPIP_SERVER::IDD, pParent) + CSo7_Util_PLC_TCPIP_SERVER::CSo7_Util_PLC_TCPIP_SERVER(CWnd* pParent /*=NULL*/) + : CDialog(CSo7_Util_PLC_TCPIP_SERVER::IDD, pParent) { for(int i=0;iAppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); } } + if (g_pSo7_TCPIP_Server) + { + CString str; + str.Format(_T("%d"),g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCSensorState[OMRON_PLC_CCD1_CAMERA1]); + GetDlgItem(IDC_EDIT_PLC_TCPIP_SERVER_STATE_CCD1)->SetWindowTextW(str); + str.Format(_T("%d"),g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCSensorState[OMRON_PLC_CCD1_CAMERA2]); + GetDlgItem(IDC_EDIT_PLC_TCPIP_SERVER_STATE_CCD2)->SetWindowTextW(str); + str.Format(_T("%d"),g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCSensorState[IDC_EDIT_PLC_TCPIP_SERVER_STATE_LASER1]); + GetDlgItem(IDC_EDIT_PLC_TCPIP_SERVER_STATE_LASER1)->SetWindowTextW(str); + str.Format(_T("%d"),g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCSensorState[OMRON_PLC_CCD1_CAMERA1]); + 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); - CString str; - str.Format(_T("%d"),g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCSensorState[OMRON_PLC_CCD1_CAMERA1]); - GetDlgItem(IDC_EDIT_PLC_TCPIP_SERVER_STATE_CCD1)->SetWindowTextW(str); - str.Format(_T("%d"),g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCSensorState[OMRON_PLC_CCD1_CAMERA2]); - GetDlgItem(IDC_EDIT_PLC_TCPIP_SERVER_STATE_CCD2)->SetWindowTextW(str); - str.Format(_T("%d"),g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCSensorState[IDC_EDIT_PLC_TCPIP_SERVER_STATE_LASER1]); - GetDlgItem(IDC_EDIT_PLC_TCPIP_SERVER_STATE_LASER1)->SetWindowTextW(str); - str.Format(_T("%d"),g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCSensorState[OMRON_PLC_CCD1_CAMERA1]); - 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); - - GetDlgItem(IDC_EDIT_PLC_TCPIP_SERVER_PORTNUMBER)->SetWindowTextW(_T("9600")); - int i(0); - m_CCDData_D10000[i++]=25000; - m_CCDData_D10000[i++]=1000; - m_CCDData_D10000[i++]=1000; - m_CCDData_D10000[i++]=1000; - m_CCDData_D10000[i++]=10000; - m_CCDData_D10000[i++]=1000; - m_CCDData_D10000[i++]=20000; - m_CCDData_D10000[i++]=102000; - m_CCDData_D10000[i++]=3000; - m_CCDData_D10000[i++]=4000; - m_CCDData_D10000[i++]=204000; - m_CCDData_D10000[i++]=5000; - m_CCDData_D10000[i++]=6000; - m_CCDData_D10000[i++]=7000; - m_CCDData_D10000[i++]=8000; - m_CCDData_D10000[i++]=303000; - m_CCDData_D10000[i++]=9000; - m_CCDData_D10000[i++]=9000; - m_CCDData_D10000[i++]=5000; - m_CCDData_D10000[i++]=406000; - m_CCDData_D10000[i++]=10000; - m_CCDData_D10000[i++]=10000; - m_CCDData_D10000[i++]=30000; - m_CCDData_D10000[i++]=30000; - m_CCDData_D10000[i++]=50000; - m_CCDData_D10000[i++]=10000; - if (g_pSo7_TCPIP_Server) - { - int iData(0); - BYTE DM_Data[4]={0,0,0,0}; - int StartAddr(60); - for (int i=0;iSetWindowTextW(_T("9600")); + int i(0); + m_CCDData_D10000[i++]=25000; + m_CCDData_D10000[i++]=1000; + m_CCDData_D10000[i++]=1000; + m_CCDData_D10000[i++]=1000; + m_CCDData_D10000[i++]=10000; + m_CCDData_D10000[i++]=1000; + m_CCDData_D10000[i++]=20000; + m_CCDData_D10000[i++]=102000; + m_CCDData_D10000[i++]=3000; + m_CCDData_D10000[i++]=4000; + m_CCDData_D10000[i++]=204000; + m_CCDData_D10000[i++]=5000; + m_CCDData_D10000[i++]=6000; + m_CCDData_D10000[i++]=7000; + m_CCDData_D10000[i++]=8000; + m_CCDData_D10000[i++]=303000; + m_CCDData_D10000[i++]=9000; + m_CCDData_D10000[i++]=9000; + m_CCDData_D10000[i++]=5000; + m_CCDData_D10000[i++]=406000; + m_CCDData_D10000[i++]=10000; + m_CCDData_D10000[i++]=10000; + m_CCDData_D10000[i++]=30000; + m_CCDData_D10000[i++]=30000; + m_CCDData_D10000[i++]=50000; + m_CCDData_D10000[i++]=10000; + if (g_pSo7_TCPIP_Server) { - iData=m_CCDData_D10000[i]; - DM_Data[0]=(iData>>24) & 0x0ff; - DM_Data[1]=(iData>>16) & 0x0ff; - DM_Data[2]=(iData>>8) & 0x0ff; - DM_Data[3]=iData & 0x0ff; - g_pSo7_TCPIP_Server->DM10000[StartAddr+2*i]=(DM_Data[2]<<8)+DM_Data[3]; - g_pSo7_TCPIP_Server->DM10000[StartAddr+2*i+1]=(DM_Data[0]<<8)+DM_Data[1]; - } - } - if (g_pSo7_TCPIP_Server) - { - int iDM5000DWord[140]={0}; - int index(0); - for (int i=0;i<140;i++) - { - iDM5000DWord[i]=0; + int iData(0); + BYTE DM_Data[4]={0,0,0,0}; + int StartAddr(60); + for (int i=0;i>24) & 0x0ff; + DM_Data[1]=(iData>>16) & 0x0ff; + DM_Data[2]=(iData>>8) & 0x0ff; + DM_Data[3]=iData & 0x0ff; + g_pSo7_TCPIP_Server->DM10000[StartAddr+2*i]=(DM_Data[2]<<8)+DM_Data[3]; + g_pSo7_TCPIP_Server->DM10000[StartAddr+2*i+1]=(DM_Data[0]<<8)+DM_Data[1]; + } } - iDM5000DWord[index++]=1; - iDM5000DWord[index++]=10000; - index=7; - iDM5000DWord[index++]=1; - iDM5000DWord[index++]=20000; - - int iData(0); - BYTE DM_Data[4]={0,0,0,0}; - index=9; - g_pSo7_TCPIP_Server->DM5000[index]=0; - int StartAddr(100); - - for (int i=0;i<140;i++) + if (g_pSo7_TCPIP_Server) { - iData=iDM5000DWord[i]; - DM_Data[0]=(iData>>24) & 0x0ff; - DM_Data[1]=(iData>>16) & 0x0ff; - DM_Data[2]=(iData>>8) & 0x0ff; - DM_Data[3]=iData & 0x0ff; - g_pSo7_TCPIP_Server->DM5000[StartAddr+2*i]=(DM_Data[2]<<8)+DM_Data[3]; - g_pSo7_TCPIP_Server->DM5000[StartAddr+2*i+1]=(DM_Data[0]<<8)+DM_Data[1]; - } - } + int iData(0); + BYTE DM_Data[4]={0,0,0,0}; + int StartAddr(0); + int index(0); + int iDM5000DWord[150]={0}; + for (int i=0;i<150;i++) + { + iDM5000DWord[i]=0; + } + StartAddr=100; + index=0; + for (int i=0;i<10;i++) + { + iDM5000DWord[index++]=1; + iDM5000DWord[index++]=(i+1)*10000; + index=7*(i+1); + } + for (int i=0;i<6;i++) + { + iDM5000DWord[index++]=1; + iDM5000DWord[index++]=(i+1)*10000; + index=7*(i+11); + } + for (int i=0;i<150;i++) + { + iData=iDM5000DWord[i]; + DM_Data[0]=(iData>>24) & 0x0ff; + DM_Data[1]=(iData>>16) & 0x0ff; + DM_Data[2]=(iData>>8) & 0x0ff; + DM_Data[3]=iData & 0x0ff; - m_DMAddrList=DM_ADDR_CCD; - ((CButton *)GetDlgItem(IDC_RADIO_PLC_TCPIP_SERVER_ADDR_CCD_DM))->SetCheck(TRUE); - ((CButton *)GetDlgItem(IDC_RADIO_PLC_TCPIP_SERVER_ADDR_DM5000))->SetCheck(FALSE); - ((CButton *)GetDlgItem(IDC_RADIO_PLC_TCPIP_SERVER_ADDR_DM8000))->SetCheck(FALSE); - m_UpdateListControl(E_LISTCTRL_CREATE); - m_UpdateListControl(E_LISTCTRL_TITLE); - m_UpdateListControl(E_LISTCTRL_DATA2CONTROL); - m_UpdateControls(FALSE); - UpdateData(FALSE); + g_pSo7_TCPIP_Server->DM5000[StartAddr+2*i]=(DM_Data[2]<<8)+DM_Data[3]; + g_pSo7_TCPIP_Server->DM5000[StartAddr+2*i+1]=(DM_Data[0]<<8)+DM_Data[1]; + } + + + for (int i=0;i<150;i++) + { + iDM5000DWord[i]=0; + } + StartAddr=400; + index=0; + for (int i=0;i<10;i++) + { + iDM5000DWord[index++]=(i+1)*10000; + iDM5000DWord[index++]=(i+1)*10000; + iDM5000DWord[index++]=(i+1)*10000; + index=3*(i+1); + } + for (int i=0;i<6;i++) + { + iDM5000DWord[index++]=(i+1)*10000; + iDM5000DWord[index++]=(i+1)*10000; + iDM5000DWord[index++]=(i+1)*10000; + index=3*(i+11); + } + for (int i=0;i<150;i++) + { + iData=iDM5000DWord[i]; + DM_Data[0]=(iData>>24) & 0x0ff; + DM_Data[1]=(iData>>16) & 0x0ff; + DM_Data[2]=(iData>>8) & 0x0ff; + DM_Data[3]=iData & 0x0ff; + + g_pSo7_TCPIP_Server->DM5000[StartAddr+2*i]=(DM_Data[2]<<8)+DM_Data[3]; + g_pSo7_TCPIP_Server->DM5000[StartAddr+2*i+1]=(DM_Data[0]<<8)+DM_Data[1]; + } + + + for (int i=0;i<150;i++) + { + iDM5000DWord[i]=0; + } + StartAddr=500; + index=0; + for (int i=0;i<10;i++) + { + iDM5000DWord[index++]=(i+1)*10000; + iDM5000DWord[index++]=(i+1)*10000; + iDM5000DWord[index++]=(i+1)*10000; + index=3*(i+1); + } + for (int i=0;i<6;i++) + { + iDM5000DWord[index++]=(i+1)*10000; + iDM5000DWord[index++]=(i+1)*10000; + iDM5000DWord[index++]=(i+1)*10000; + index=3*(i+11); + } + for (int i=0;i<150;i++) + { + iData=iDM5000DWord[i]; + DM_Data[0]=(iData>>24) & 0x0ff; + DM_Data[1]=(iData>>16) & 0x0ff; + DM_Data[2]=(iData>>8) & 0x0ff; + DM_Data[3]=iData & 0x0ff; + + g_pSo7_TCPIP_Server->DM5000[StartAddr+2*i]=(DM_Data[2]<<8)+DM_Data[3]; + g_pSo7_TCPIP_Server->DM5000[StartAddr+2*i+1]=(DM_Data[0]<<8)+DM_Data[1]; + } + } + + m_DMAddrList=DM_ADDR_CCD; + ((CButton *)GetDlgItem(IDC_RADIO_PLC_TCPIP_SERVER_ADDR_CCD_DM))->SetCheck(TRUE); + ((CButton *)GetDlgItem(IDC_RADIO_PLC_TCPIP_SERVER_ADDR_DM5000))->SetCheck(FALSE); + ((CButton *)GetDlgItem(IDC_RADIO_PLC_TCPIP_SERVER_ADDR_DM8000))->SetCheck(FALSE); + m_UpdateListControl(E_LISTCTRL_CREATE); + m_UpdateListControl(E_LISTCTRL_TITLE); + m_UpdateListControl(E_LISTCTRL_DATA2CONTROL); + m_UpdateControls(FALSE); + UpdateData(FALSE); + } return TRUE; // return TRUE unless you set the focus to a control } @@ -352,7 +426,7 @@ void CSo7_Util_PLC_TCPIP_SERVER::m_UpdateListControl(int _type) m_DataList.InsertColumn(0,_T("CCD地址"),LVCFMT_LEFT, m_rect.right*1/4); m_DataList.InsertColumn(1,_T("数据值"),LVCFMT_LEFT, m_rect.right*1/4); - m_DataList.InsertColumn(2,_T("备注"),LVCFMT_LEFT, m_rect.right*2/4); + m_DataList.InsertColumn(2,_T("备注"),LVCFMT_LEFT, m_rect.right*3/2); int iStartRow(0),iEndRow(0); CString str; @@ -417,7 +491,7 @@ void CSo7_Util_PLC_TCPIP_SERVER::m_UpdateListControl(int _type) m_DataList.SetItemText(i,2,_T("")); } int Addr(0); - m_DataList.SetItemText(Addr++,2,_T("PLC设备运行状态(0-空闲,1-后退,2-前进,3-故障,4-编辑)")); + m_DataList.SetItemText(Addr++,2,_T("PLC设备运行状态(0-未知,1-空闲,2-后退(开始测量),3-前进(测量结束),4-故障,5-参数编辑)")); m_DataList.SetItemText(Addr++,2,_T("CCD1数据刷新")); m_DataList.SetItemText(Addr++,2,_T("CCD2数据刷新")); m_DataList.SetItemText(Addr++,2,_T("CCD3数据刷新")); @@ -445,7 +519,7 @@ void CSo7_Util_PLC_TCPIP_SERVER::m_UpdateListControl(int _type) m_DataList.SetItemText(Addr++,2,str+_T("中断位置6低字")); m_DataList.SetItemText(Addr++,2,str+_T("中断位置6高字")); } - for (int i=0;i<3;i++) + for (int i=0;i<6;i++) { str.Format(_T("LASER%d-%d"),1+(i/2),1+(i%2)); m_DataList.SetItemText(Addr++,2,str+_T("中断数低字")); @@ -463,8 +537,48 @@ void CSo7_Util_PLC_TCPIP_SERVER::m_UpdateListControl(int _type) m_DataList.SetItemText(Addr++,2,str+_T("中断位置6低字")); m_DataList.SetItemText(Addr++,2,str+_T("中断位置6高字")); } - - + Addr=400; + for (int i=0;i<10;i++) + { + str.Format(_T("CCD%d-%d"),1+(i/2),1+(i%2)); + m_DataList.SetItemText(Addr++,2,str+_T("设备坐标X低字")); + m_DataList.SetItemText(Addr++,2,str+_T("设备坐标X高字")); + m_DataList.SetItemText(Addr++,2,str+_T("设备坐标Y低字")); + m_DataList.SetItemText(Addr++,2,str+_T("设备坐标Y高字")); + m_DataList.SetItemText(Addr++,2,str+_T("设备坐标Z低字")); + m_DataList.SetItemText(Addr++,2,str+_T("设备坐标Z高字")); + } + for (int i=0;i<6;i++) + { + str.Format(_T("LASER%d-%d"),1+(i/2),1+(i%2)); + m_DataList.SetItemText(Addr++,2,str+_T("设备坐标X低字")); + m_DataList.SetItemText(Addr++,2,str+_T("设备坐标X高字")); + m_DataList.SetItemText(Addr++,2,str+_T("设备坐标Y低字")); + m_DataList.SetItemText(Addr++,2,str+_T("设备坐标Y高字")); + m_DataList.SetItemText(Addr++,2,str+_T("设备坐标Z低字")); + m_DataList.SetItemText(Addr++,2,str+_T("设备坐标Z高字")); + } + Addr=500; + for (int i=0;i<10;i++) + { + str.Format(_T("CCD%d-%d"),1+(i/2),1+(i%2)); + m_DataList.SetItemText(Addr++,2,str+_T("测量补偿ΔX低字")); + m_DataList.SetItemText(Addr++,2,str+_T("测量补偿ΔX高字")); + m_DataList.SetItemText(Addr++,2,str+_T("测量补偿ΔY低字")); + m_DataList.SetItemText(Addr++,2,str+_T("测量补偿ΔY高字")); + m_DataList.SetItemText(Addr++,2,str+_T("测量补偿ΔZ低字")); + m_DataList.SetItemText(Addr++,2,str+_T("测量补偿ΔZ高字")); + } + for (int i=0;i<6;i++) + { + str.Format(_T("LASER%d-%d"),1+(i/2),1+(i%2)); + m_DataList.SetItemText(Addr++,2,str+_T("测量补偿ΔX低字")); + m_DataList.SetItemText(Addr++,2,str+_T("测量补偿ΔX高字")); + m_DataList.SetItemText(Addr++,2,str+_T("测量补偿ΔY低字")); + m_DataList.SetItemText(Addr++,2,str+_T("测量补偿ΔY高字")); + m_DataList.SetItemText(Addr++,2,str+_T("测量补偿ΔZ低字")); + m_DataList.SetItemText(Addr++,2,str+_T("测量补偿ΔZ高字")); + } m_DataList.SetEditableItemRange(0,MAX_DM_PAGE_NUMBER-1,1,1); m_DataList.SetColorStyleItemRange(0,MAX_DM_PAGE_NUMBER-1,0,2); } @@ -676,7 +790,7 @@ LRESULT CSo7_Util_PLC_TCPIP_SERVER::OnSocket(WPARAM w, LPARAM p) LRESULT CSo7_Util_PLC_TCPIP_SERVER::OnTCPIPMsg(WPARAM w, LPARAM p) { LRESULT lResult=0; - int lPara=static_cast(p); + //int lPara=static_cast(p); switch(w) { case FD_ACCEPT: @@ -686,7 +800,24 @@ LRESULT CSo7_Util_PLC_TCPIP_SERVER::OnTCPIPMsg(WPARAM w, LPARAM p) } case FD_READ: { - m_csMSG=_T(" FD_READ ")+TCPIPMsg(lPara); + s_tcpip_msg_data _TCPIPMsg; + memcpy(&_TCPIPMsg,(s_tcpip_msg_data*)p,sizeof(s_tcpip_msg_data)); + if (_TCPIPMsg._UpdateData==1) + { + if (m_DMAddrList==DM_ADDR_DM8000) + { + m_UpdateListControl(E_LISTCTRL_TITLE); + m_UpdateListControl(E_LISTCTRL_DATA2CONTROL); + } + } + else if (_TCPIPMsg._UpdateData==2) + { + m_UpdateControls(FALSE); + m_UpdateListControl(E_LISTCTRL_TITLE); + m_UpdateListControl(E_LISTCTRL_DATA2CONTROL); + } + + m_csMSG=_T(" FD_READ ")+TCPIPMsg(_TCPIPMsg); break; } case FD_WRITE: @@ -709,49 +840,57 @@ LRESULT CSo7_Util_PLC_TCPIP_SERVER::OnTCPIPMsg(WPARAM w, LPARAM p) return( lResult ); } //===================================================================================== -CString CSo7_Util_PLC_TCPIP_SERVER::TCPIPMsg(int _Type) +CString CSo7_Util_PLC_TCPIP_SERVER::TCPIPMsg(s_tcpip_msg_data _MsgData) { CString cStr(""); - switch(_Type) + if (_MsgData._CmdType==0) + { + cStr.Format(_T(" [R]Addr[%d]NumberOfWords[%d]."),_MsgData._DataAddr,_MsgData._DataSize); + } + else + { + cStr.Format(_T(" [W]Addr[%d]NumberOfWords[%d]."),_MsgData._DataAddr,_MsgData._DataSize); + } + switch(_MsgData._MsgType) { case RESPONSE_UNKNOWN: { - cStr=_T("RESPONSE_UNKNOWN"); + cStr=_T("RESPONSE_UNKNOWN")+cStr; break; } case RESPONSE_HANDSHAKE: { - cStr=_T("RESPONSE_HANDSHAKE"); + cStr=_T("RESPONSE_HANDSHAKE")+cStr; break; } + case RESPONSE_READ_PLC_CALIB_POS: + { + cStr=_T("RESPONSE_READ_PLC_CALIB_POS")+cStr; + break; + } case RESPONSE_READ_PLC_STATE: { - cStr=_T("RESPONSE_READ_PLC_STATE"); + cStr=_T("RESPONSE_READ_PLC_STATE")+cStr; break; } case RESPONSE_WRITE_PLC_STATE: { - if (m_DMAddrList==DM_ADDR_DM8000) - { - m_UpdateListControl(E_LISTCTRL_TITLE); - m_UpdateListControl(E_LISTCTRL_DATA2CONTROL); - } - cStr=_T("RESPONSE_WRITE_PLC_STATE"); + cStr=_T("RESPONSE_WRITE_PLC_STATE")+cStr; break; } case RESPONSE_READ_SENSOR_STATE: { - cStr=_T("RESPONSE_READ_SENSOR_STATE"); + cStr=_T("RESPONSE_READ_SENSOR_STATE")+cStr; break; } case RESPONSE_READ_CCD_DATA: { - cStr=_T("RESPONSE_READ_CCD_DATA"); + cStr=_T("RESPONSE_READ_CCD_DATA")+cStr; break; } case RESPONSE_READ_ERRCODE: { - cStr=_T("RESPONSE_READ_ERRCODE"); + cStr=_T("RESPONSE_READ_ERRCODE")+cStr; break; } default: diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Util_PLC_TCPIP_SERVER.h b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Util_PLC_TCPIP_SERVER.h index dd66035..c7e134d 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Util_PLC_TCPIP_SERVER.h +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Util_PLC_TCPIP_SERVER.h @@ -46,7 +46,7 @@ public: afx_msg void OnBnClickedButtonPlcTcpipServerUpdatedata(); void m_UpdateListControl(int _type); void m_UpdateControls(int _type); - CString TCPIPMsg(int _Type); + CString TCPIPMsg(s_tcpip_msg_data _Type); afx_msg void OnBnClickedRadioPlcTcpipServerAddrCcdDm(); afx_msg void OnBnClickedRadioPlcTcpipServerAddrDm5000(); diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil_VS2010.suo b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil_VS2010.suo index 5ebc610..9059132 100644 Binary files a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil_VS2010.suo and b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil_VS2010.suo differ