Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2341650
  • 博文数量: 816
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-17 17:57
文章分类

全部博文(816)

文章存档

2011年(1)

2008年(815)

分类:

2008-12-17 18:05:50

使用TYbCommDevice时,发送帧命令成功,对方设备有响应,但是接收帧信息时怎么总是收到我自己发送的帧信息呢,也就是说收不到对方设备的应答帧。

代码如下:

TForm *FormX;
TYbCommDevice               *ycdComm;

HWND hndForm;
FormX = new TForm(hndForm);
ycdComm = new TYbCommDevice(FormX);

try
{
ycdComm->PortNo = g_iCommPort;
ycdComm->Baud = TYbCommDevice::br9600;
ycdComm->Parity = TYbCommDevice::ptEvenParity;
ycdComm->ByteSize = 8;
ycdComm->StopBits = TYbCommDevice::sbOneStopBit;
ycdComm->Active = true;
g_nErrorIndex = 0;
return g_nErrorIndex;
}
catch(...)
{
g_nErrorIndex = 2;
return g_nErrorIndex;
}

//这里是发送和接收数据
ycdComm->Write(pcSendBlock, 12 + iDataLen);
//接收第1串,共十个,包括一个帧起始符,六个地址域,一个帧起始符,一个控制码,一个数据长度。
if (ycdComm->Read(pcInceptBlock1, 10) == 0)
{
g_nErrorIndex = 8; //通讯超时
return g_nErrorIndex;
}
iDataLen = pcInceptBlock1[9]; //得到数据长度
//接收第2串,包括由iDataLen决定长度的数据域,一个校验码,一个结束符。
if (ycdComm->Read(pcInceptBlock2, iDataLen + 2) == 0)
{
g_nErrorIndex = 8; //通讯超时
return g_nErrorIndex;
}
ycdComm->Active = false;

delete ycdComm;
delete FormX;


--------------------next---------------------

阅读(1180) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~