首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

关于ModbusTCP编程,该怎么处理

2012-01-23 
关于ModbusTCP编程int reg_num(9+2*(sendBuf[10]*256+sendBuf[11]))int iSends.Send(sendBuf,12,0)if(

关于ModbusTCP编程
int reg_num=(9+2*(sendBuf[10]*256+sendBuf[11]));

int iSend=s.Send(sendBuf,12,0);
if(iSend==SOCKET_ERROR)
{
AfxMessageBox("发送数据失败!");
s.Close ();
return 1;
}

BYTE Recv[260];
int iRecv=s.Receive (Recv,260,0
  if(iRecv<9)
{
if(iRecv==0)
{
AfxMessageBox("意外的关闭远端的连接!");
}
else
{
  AfxMessageBox("响应帧太短!");
}
}
else//不清楚?????
{
BYTE a=Recv[7]&0x80;
  if(a!=0)
{
  AfxMessageBox("Modbus意外响应不正确!");
}
else 
{
if(iRecv!=reg_num)
{
AfxMessageBox("不正确的响应大小!");
}
else//接受数据的处理????
{
}
}
}
关于通讯还有一些不清楚的,哪位高手能帮忙解释下else语句中几个判断是什么意思?谢啦

[解决办法]

C/C++ code
else//不清楚?????  返回报文字节数要大于9{BYTE a=Recv[7]&0x80;  if(a!=0){  AfxMessageBox("Modbus意外响应不正确!");}else {if(iRecv!=reg_num){AfxMessageBox("不正确的响应大小!");}else//接受数据的处理????              处理数据{}} 

热点排行