Add DM200
This commit is contained in:
@@ -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<char>((sDataSize>>8) & 0x0ff);
|
||||
m_TCPIPBuf[CH_SEND]._buffer[DRW_SDataIndexDataSize2]=static_cast<char>(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<iBuffsize;i+=2)
|
||||
{
|
||||
bData[0]=m_TCPIPBuf[CH_RECV]._buffer[DRW_RDataIndexData+i];
|
||||
bData[1]=m_TCPIPBuf[CH_RECV]._buffer[DRW_RDataIndexData+i+1];
|
||||
DM200[iStartAddr++]=(bData[0]<<8)+bData[1];
|
||||
}
|
||||
m_TCPIPMsg._UpdateData=2;
|
||||
RESPONSE_PLC_DM_UNKNOWN();
|
||||
m_TCPIPMsg._MsgType=RESPONSE_WRITE_PLC_STATE;
|
||||
}
|
||||
if (iAddr>=8000)
|
||||
{
|
||||
int iBuffsize(0);
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
//=========================================================================================
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;i<iEndRow;i++)
|
||||
{
|
||||
str.Format(_T("%d"),200+i);
|
||||
m_DataList.SetItemText(i,0,str);
|
||||
m_DataList.SetItemText(i,1,_T(""));
|
||||
m_DataList.SetItemText(i,2,_T(""));
|
||||
}
|
||||
int Addr(25);
|
||||
m_DataList.SetItemText(Addr++,2,_T("状态"));
|
||||
Addr=35;
|
||||
m_DataList.SetItemText(Addr++,2,_T("发送命令"));
|
||||
m_DataList.SetItemText(Addr++,2,_T("坐标编号"));
|
||||
|
||||
m_DataList.SetEditableItemRange(0,MAX_DM_PAGE_NUMBER-1,1,1);
|
||||
m_DataList.SetColorStyleItemRange(0,MAX_DM_PAGE_NUMBER-1,0,2);
|
||||
}
|
||||
else
|
||||
{
|
||||
iStartRow=0;
|
||||
@@ -687,6 +726,18 @@ void CSo7_Util_PLC_TCPIP_SERVER::m_UpdateListControl(int _type)
|
||||
m_DataList.SetItemText(i,1,str);
|
||||
}
|
||||
}
|
||||
else if (m_DMAddrList==DM_ADDR_DM200)
|
||||
{
|
||||
iStartRow=0;
|
||||
iEndRow=200;
|
||||
for (int i=iStartRow;i<iEndRow;i++)
|
||||
{
|
||||
str.Format(_T("%d"),g_pSo7_TCPIP_Server->DM200[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<short>(atoi(cTmp));
|
||||
}
|
||||
}
|
||||
else if (m_DMAddrList==DM_ADDR_DM200)
|
||||
{
|
||||
iStartRow=0;
|
||||
iEndRow=200;
|
||||
for (int iRow=iStartRow;iRow<iEndRow;iRow++)
|
||||
{
|
||||
csTmp=m_DataList.GetItemText(iRow,iCol);
|
||||
cTmp=T2A(csTmp);
|
||||
g_pSo7_TCPIP_Server->DM200[iRow]=static_cast<short>(atoi(cTmp));
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:break;
|
||||
@@ -922,3 +984,4 @@ CString CSo7_Util_PLC_TCPIP_SERVER::TCPIPMsg(s_tcpip_msg_data _MsgData)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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();
|
||||
};
|
||||
|
||||
@@ -238,7 +238,9 @@
|
||||
<ClCompile Include="So7_Temperature_Sensor.cpp">
|
||||
<Filter>Sources Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="SO7_Temperature_Display.cpp" />
|
||||
<ClCompile Include="SO7_Temperature_Display.cpp">
|
||||
<Filter>Sources Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="CaptureDataDlg.h">
|
||||
@@ -511,7 +513,9 @@
|
||||
<ClInclude Include="So7_Temperature_Sensor.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="SO7_Temperature_Display.h" />
|
||||
<ClInclude Include="SO7_Temperature_Display.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="ReadMe.txt" />
|
||||
|
||||
@@ -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
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user