主题:vc++2003 如何知道收到的资料parity是否为mark
最近在处理一个Serial通讯
1. 每次资料的第一个byte,对方会将parity设为Mark,而之后的资料就会设定Space
利用这个方式可以得知每次新资料是在哪个byte开始
网路查的结果是Address使用Mark,Data使用space
2. 我这边是设定parity为Space
3. 问题是不知道如何判断对方一直切换的parity是什麼
我目前使用的是VC++ 2003
现在我试了几天,仍然无法得知对方资料的parity是多少
我使用了以下的函式
以下失败:
1. ClearCommError
抓取 DCB,但抓到的似乎是自己的Comport,parity没变化
使用CE_RXPARITY做比对,有时候会判断到Parity的变化,但是弄出来有问题,
久久才会探测到一次
2. GetCommModemStatus
没反应
3. GetCommProperties
对方的parity不管如何切换,我这边抓到的资讯都没变化
以下有反应:
1. SetCommMask(EV_ERR),搭配WaitCommEvent,
如此会成功,但是我不能让它一直堵塞
2. GetCommModemStatus
没反应
3. GetCommProperties
对方的parity不管如何切换,我这边抓到的资讯都没变化
以下有反应:
1. SetCommMask(EV_ERR),搭配WaitCommEvent,
如此会成功,但是我不能让它一直堵塞
找不到有方式可以判断这个ERROR,却不会堵塞
2. GetCommMask和GetLastError
使用也没反应
以下曾成功过:
DeviceIoControl(IOCTL_SERIAL_LSRMST_INSERT)
但只能适用於标准序列埠,用某些厂商扩充的序列埠就会失败
目前要应用在扩充的
谢谢
1. 每次资料的第一个byte,对方会将parity设为Mark,而之后的资料就会设定Space
利用这个方式可以得知每次新资料是在哪个byte开始
网路查的结果是Address使用Mark,Data使用space
2. 我这边是设定parity为Space
3. 问题是不知道如何判断对方一直切换的parity是什麼
我目前使用的是VC++ 2003
现在我试了几天,仍然无法得知对方资料的parity是多少
我使用了以下的函式
以下失败:
1. ClearCommError
抓取 DCB,但抓到的似乎是自己的Comport,parity没变化
使用CE_RXPARITY做比对,有时候会判断到Parity的变化,但是弄出来有问题,
久久才会探测到一次
2. GetCommModemStatus
没反应
3. GetCommProperties
对方的parity不管如何切换,我这边抓到的资讯都没变化
以下有反应:
1. SetCommMask(EV_ERR),搭配WaitCommEvent,
如此会成功,但是我不能让它一直堵塞
2. GetCommModemStatus
没反应
3. GetCommProperties
对方的parity不管如何切换,我这边抓到的资讯都没变化
以下有反应:
1. SetCommMask(EV_ERR),搭配WaitCommEvent,
如此会成功,但是我不能让它一直堵塞
找不到有方式可以判断这个ERROR,却不会堵塞
2. GetCommMask和GetLastError
使用也没反应
以下曾成功过:
DeviceIoControl(IOCTL_SERIAL_LSRMST_INSERT)
但只能适用於标准序列埠,用某些厂商扩充的序列埠就会失败
目前要应用在扩充的
谢谢