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 3aad8dc..6c342c1 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/So7_TCPIP_Server.cpp +++ b/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/So7_TCPIP_Server.cpp @@ -66,9 +66,12 @@ CSo7_TCPIP_Server::CSo7_TCPIP_Server() 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); + DM200= (short *)malloc(sizeof(short)*200); + 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); + memset(DM200,0,sizeof(short)*200); m_TCPIPMsg.Init(); } @@ -88,6 +91,8 @@ CSo7_TCPIP_Server::~CSo7_TCPIP_Server() DM8000=NULL; free(DM10000); DM10000=NULL; + free(DM200); + DM200=NULL; } //================================================================ int CSo7_TCPIP_Server::Init_Winsock() @@ -307,6 +312,38 @@ BOOL CSo7_TCPIP_Server::Response_Handshake() SendBuffer(); return TRUE; } + +//================================================================ +BOOL CSo7_TCPIP_Server::Response_PLC_DM200_R(short _StartAddr,short _DataSize) +{ + if(m_ClientSocket[m_nActiveClient] == INVALID_SOCKET) + { + return FALSE; + } + m_ClearSendBuf(); + memcpy(m_TCPIPBuf[CH_SEND]._buffer,DRW_SData,sizeof(DRW_SData)); + short sData(0); + _StartAddr-=200; + if ((_StartAddr+_DataSize)>=MAX_DM_PAGE_NUMBER) + { + _DataSize=MAX_DM_PAGE_NUMBER-_StartAddr; + } + for (int i=0;i<_DataSize;i++) + { + sData=DM200[_StartAddr+i]; + m_TCPIPBuf[CH_SEND]._buffer[DRW_SDataIndexData+2*i]=(sData>>8) & 0x0ff; + m_TCPIPBuf[CH_SEND]._buffer[DRW_SDataIndexData+2*i+1]=sData & 0x0ff; + } + 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(); + + return TRUE; +} //================================================================ BOOL CSo7_TCPIP_Server::Response_PLC_DM5000_R(short _StartAddr,short _DataSize) { @@ -570,7 +607,12 @@ void CSo7_TCPIP_Server::m_ProcessSocketReadEvent(SOCKET s) m_TCPIPMsg._CmdType=0; m_TCPIPMsg._DataAddr=iAddr; m_TCPIPMsg._DataSize=iDataSize; - if (iAddr>=20000) + if (iAddr>=200) + { + Response_PLC_DM200_R(iAddr,iDataSize); + m_TCPIPMsg._MsgType=RESPONSE_READ_PLC_STATE; + } + else if (iAddr>=20000) { m_TCPIPMsg._MsgType=RESPONSE_READ_ERRCODE; } @@ -610,6 +652,25 @@ void CSo7_TCPIP_Server::m_ProcessSocketReadEvent(SOCKET s) m_TCPIPMsg._CmdType=1; m_TCPIPMsg._DataAddr=iAddr; m_TCPIPMsg._DataSize=iDataSize; + if (iAddr>=200) + { + int iBuffsize(0); + int iStartAddr(0); + iStartAddr=iAddr-200; + bData[0]=m_TCPIPBuf[CH_RECV]._buffer[DRW_RSDataIndexBufSize1]; + bData[1]=m_TCPIPBuf[CH_RECV]._buffer[DRW_RSDataIndexBufSize2]; + iBuffsize=(bData[0]<<8)+bData[1]; + iBuffsize-=DRW_RDataCCLen; + for (int i=0;i=8000) { int iBuffsize(0); 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 bc8a84f..2f3cf5c 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/So7_TCPIP_Server.h +++ b/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/So7_TCPIP_Server.h @@ -53,6 +53,7 @@ enum TCPIP_RESPONSE_RESULT RESPONSE_READ_SENSOR_STATE, RESPONSE_READ_CCD_DATA, RESPONSE_READ_ERRCODE, + RESPONSE_READ_PLC_STATUS, RESPONSE_RESULT }; @@ -121,12 +122,14 @@ public: short *DM5000; short *DM8000; short *DM10000; + short *DM200; BOOL StartServer(HWND _hWnd,short _nPort); BOOL StopServer(); BOOL _Send_Cmd_Write_State(); BOOL Response_Handshake(); + BOOL Response_PLC_DM200_R(short _StartAddr,short _DataSize);//PLC State BOOL Response_PLC_DM5000_R(short _StartAddr,short _DataSize);//PLC State BOOL Response_PLC_DM10000_R(short _StartAddr,short _DataSize);//CCD 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 b33ed5b..67f2ab7 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 @@ -1096,8 +1096,9 @@ BEGIN EDITTEXT IDC_EDIT_PLC_TCPIP_SERVER_PORTNUMBER,51,30,40,14,ES_AUTOHSCROLL LTEXT "Port",IDC_STATIC,29,33,14,8 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 + CONTROL "DM 5000",IDC_RADIO_PLC_TCPIP_SERVER_ADDR_DM5000,"Button",BS_AUTORADIOBUTTON,96,110,44,10 + CONTROL "DM 8000",IDC_RADIO_PLC_TCPIP_SERVER_ADDR_DM8000,"Button",BS_AUTORADIOBUTTON,158,110,44,10 + CONTROL "DM 200",IDC_RADIO_PLC_TCPIP_SERVER_ADDR_DM200,"Button",BS_AUTORADIOBUTTON,220,110,40,10 END IDD_SO7_UTIL_CAMERA DIALOGEX 0, 0, 417, 271 diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/SO7_Send_Parameter.cpp b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/SO7_Send_Parameter.cpp index 60645dc..31a5e9c 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/SO7_Send_Parameter.cpp +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/SO7_Send_Parameter.cpp @@ -222,7 +222,7 @@ BOOL CSO7_Send_Parameter::OnInitDialog() ((CStatic *)GetDlgItem(IDC_STATIC_SPEED_PARA2))->SetWindowTextW(_T("缓冲距离(0-255)")); ((CStatic *)GetDlgItem(IDC_STATIC_SPEED_PARA3))->SetWindowTextW(_T("最低速率(0-255)")); ((CStatic *)GetDlgItem(IDC_STATIC_SPEED_PARA4))->SetWindowTextW(_T("刷新周期(0-255)")); - ((CStatic *)GetDlgItem(IDC_STATIC_SPEED_PARA5))->SetWindowTextW(_T("最大速率(0.0-10.0)")); + ((CStatic *)GetDlgItem(IDC_STATIC_SPEED_PARA5))->SetWindowTextW(_T("最大速率(0.0-65.5)")); } else { @@ -238,7 +238,10 @@ BOOL CSO7_Send_Parameter::OnInitDialog() GetDlgItem(IDC_CHECK_SO7_CONTROL_MODE_Y)->EnableWindow(FALSE); GetDlgItem(IDC_CHECK_SO7_CONTROL_MODE_Z)->EnableWindow(FALSE); } - + else + { + UpdateControlMode(0); + } return TRUE; // return TRUE unless you set the focus to a control } //========================================================================================= diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Option.cpp b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Option.cpp index 8f037e4..2d0deb1 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Option.cpp +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Option.cpp @@ -157,9 +157,9 @@ BOOL CSo7_Option::OnInitDialog() ((CButton *)GetDlgItem(IDC_RADIO_SO7_OMRON_PLC))->SetCheck(FALSE); ((CButton *)GetDlgItem(IDC_RADIO_SO7_OMRON_PLC_SERVER))->SetCheck(FALSE); -#ifdef _RELEASE_SO7_CONTROLER_ONLY +#ifdef _RELEASE_SO7_CONTROLER_ONLY/* ((CButton *)GetDlgItem(IDC_RADIO_SO7_OMRON_PLC))->EnableWindow(FALSE); - ((CButton *)GetDlgItem(IDC_RADIO_SO7_OMRON_PLC_SERVER))->EnableWindow(FALSE); + ((CButton *)GetDlgItem(IDC_RADIO_SO7_OMRON_PLC_SERVER))->EnableWindow(FALSE);*/ ((CButton *)GetDlgItem(IDC_RADIO_VIDEOCARD_SDK3000))->EnableWindow(FALSE); ((CButton *)GetDlgItem(IDC_RADIO_VIDEOCARD_SV2000E))->EnableWindow(FALSE); ((CButton *)GetDlgItem(IDC_RADIO_VIDEOCARD_SV4000E))->EnableWindow(FALSE); 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 1a34d76..d5ce8df 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 @@ -58,6 +58,7 @@ BEGIN_MESSAGE_MAP(CSo7_Util_PLC_TCPIP_SERVER, CDialog) ON_BN_CLICKED(IDC_RADIO_PLC_TCPIP_SERVER_ADDR_CCD_DM, &CSo7_Util_PLC_TCPIP_SERVER::OnBnClickedRadioPlcTcpipServerAddrCcdDm) ON_BN_CLICKED(IDC_RADIO_PLC_TCPIP_SERVER_ADDR_DM5000, &CSo7_Util_PLC_TCPIP_SERVER::OnBnClickedRadioPlcTcpipServerAddrDm5000) ON_BN_CLICKED(IDC_RADIO_PLC_TCPIP_SERVER_ADDR_DM8000, &CSo7_Util_PLC_TCPIP_SERVER::OnBnClickedRadioPlcTcpipServerAddrDm8000) + ON_BN_CLICKED(IDC_RADIO_PLC_TCPIP_SERVER_ADDR_DM200, &CSo7_Util_PLC_TCPIP_SERVER::OnBnClickedRadioPlcTcpipServerAddrDm200) END_MESSAGE_MAP() @@ -417,6 +418,19 @@ void CSo7_Util_PLC_TCPIP_SERVER::OnBnClickedRadioPlcTcpipServerAddrDm8000() m_UpdateListControl(E_LISTCTRL_DATA2CONTROL); } //===================================================================== +void CSo7_Util_PLC_TCPIP_SERVER::OnBnClickedRadioPlcTcpipServerAddrDm200() +{ + m_UpdateListControl(E_LISTCTRL_CONTROL2DATA); + if (m_DMAddrList==DM_ADDR_DM5000) + { + m_UpdateControls(FALSE); + } + m_DMAddrList=DM_ADDR_DM200; + m_UpdateListControl(E_LISTCTRL_TITLE); + m_UpdateListControl(E_LISTCTRL_DATA2CONTROL); + +} +//===================================================================== void CSo7_Util_PLC_TCPIP_SERVER::m_UpdateListControl(int _type) { switch(_type) @@ -616,6 +630,31 @@ void CSo7_Util_PLC_TCPIP_SERVER::m_UpdateListControl(int _type) m_DataList.SetEditableItemRange(0,MAX_DM_PAGE_NUMBER-1,1,1); m_DataList.SetColorStyleItemRange(0,MAX_DM_PAGE_NUMBER-1,0,2); } + else if (m_DMAddrList==DM_ADDR_DM200) + { + LVCOLUMN vColumn; + vColumn.mask=LVCF_TEXT; + vColumn.pszText=_T("DM200地址"); + vColumn.cchTextMax=10; + m_DataList.SetColumn(0,&vColumn); + iStartRow=0; + iEndRow=MAX_DM_PAGE_NUMBER; + for (int i=iStartRow;iDM200[i]); + if(i==25) + str.Format(_T("0x%X"),g_pSo7_TCPIP_Server->DM200[i]); + m_DataList.SetItemText(i,1,str); + } + } else { ; @@ -748,6 +799,17 @@ void CSo7_Util_PLC_TCPIP_SERVER::m_UpdateListControl(int _type) g_pSo7_TCPIP_Server->DM8000[iRow]=static_cast(atoi(cTmp)); } } + else if (m_DMAddrList==DM_ADDR_DM200) + { + iStartRow=0; + iEndRow=200; + for (int iRow=iStartRow;iRowDM200[iRow]=static_cast(atoi(cTmp)); + } + } break; } default:break; @@ -922,3 +984,4 @@ CString CSo7_Util_PLC_TCPIP_SERVER::TCPIPMsg(s_tcpip_msg_data _MsgData) + 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 541cfaf..5d5fe00 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 @@ -5,6 +5,7 @@ enum DM_ADDR_LIST DM_ADDR_CCD, DM_ADDR_DM5000, DM_ADDR_DM8000, + DM_ADDR_DM200, DM_ADDR_LIST }; // CSo7_Util_PLC_TCPIP_SERVER dialog @@ -52,4 +53,5 @@ public: afx_msg void OnBnClickedRadioPlcTcpipServerAddrCcdDm(); afx_msg void OnBnClickedRadioPlcTcpipServerAddrDm5000(); afx_msg void OnBnClickedRadioPlcTcpipServerAddrDm8000(); + afx_msg void OnBnClickedRadioPlcTcpipServerAddrDm200(); }; diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Usb_Util.vcxproj.filters b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Usb_Util.vcxproj.filters index e07f6ce..9561a9b 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Usb_Util.vcxproj.filters +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Usb_Util.vcxproj.filters @@ -238,7 +238,9 @@ Sources Files - + + Sources Files + @@ -511,7 +513,9 @@ Header Files - + + Header Files + diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/resource.h b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/resource.h index 9b2e260..7ccfd11 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/resource.h +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/resource.h @@ -950,6 +950,8 @@ #define IDC_RADIO_PLC_TCPIP_SERVER_ADDR_DM8000 1806 #define IDC_EDIT_MOVETO_DEG 1807 #define IDC_RADIO_READ_LIMIT_SWITCH 1807 +#define IDC_RADIO_PLC_TCPIP_SERVER_ADDR_DM8001 1807 +#define IDC_RADIO_PLC_TCPIP_SERVER_ADDR_DM200 1807 #define IDC_BUTTON_TESA_STAR_SENDMSG 1808 #define IDC_EDIT_TESA_STAR_E_LOG 1809 #define IDC_BUTTON_TESA_STAR_CLEAR_LOG 1810 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 19da8e0..826e49d 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