因为 Modem 在拨号连接之前是不需要启动流控的, 在连接之后才需要启动, 所以就判断了 DCD 的状态。
如果你不希望判断 DCD 的状态, 我可以在控件里面增加手动(程序)启动流控的属性。
循环冗余校验(CRC)是软件算法, 需要自己处理, 控件不自动计算, 因为CRC有很多种类, 需要由程序员自己选择计算。
在串口控件里有 CRC 校验的类和函数, 需要 #include "yb_base.h"
包括 TCRC32, TCRC16, TCRC8 三个CCITT标准的CRC类(32位、16位和8位的 CCITT 标准的 CRC 校验算法)
和 以下5个不同标准的校验函数:
void _Crc8(unsigned char &c, void *s, int n);
void _Crc16(unsigned short &c, void *s, int n);
void _Crc32(unsigned long &c, void *s, int n);
void _CrcCcitt16(unsigned short &c, void *s, int n);
void _CrcCcitt32(unsigned long &c, void *s, int n);
CRC 校验类是用的高效快速算法, 那 5 个函数是用的标准算CRC算法,
尽管计算方法不同, 如果采用的标准相同, 得到的校验码结果是相同的。
例:
TCRC32 crc;
crc.Check(缓存地址, 字节数);
crc.Check(缓存地址, 字节数); //可以连续计算
校验码 = crc.Value; //所有计算过的数据的校验码
crc.Reset(); //重新计算, 清除以前的计算结果
注意有些软件, 如 ARJ 里面保存的校验码是 crc 的取反的值, 有些软件保存的是直接 crc 的值。
--------------------next---------------------
阅读(1165) | 评论(0) | 转发(0) |