RecvBuffer()

.pEnd1,指示要比较的字符,nLen1是其长度。
  m= m_nRecv-nLen1, 字符不需要比较的个数
  第一个for死循环中,的,最里面的一个if,中,n=0;不是必须的。
    break;会使里层循重新开始,n自然归位。下面的if中,是要求n与nLen1的相等性判断。上个循不的提前中止,定使其下的判断不成立。
    m_nNext,在接收到的字符缓冲中,指缓冲区中,可用位置的第一个位置。
    m_nRecv为什么要被重新赋值。意味着只承认到要比较的字符结束处为止的字符串。
所读到的后面的字符被舍弃。
 NextBuffer()主要用于处理,m_nRecv索引的接收缓冲。
    就是清空m_bufRecv[]接收队列中缓冲的所有数据。
    可认为是个清空数组函数。


RecvBuffer()本质上是一个简单的模式匹配算法。

第一次循环总是试图匹配空的字串,因为,数据还没从串口读到。

其返回值1总是代表匹配成功。

同时,会适时检查一个计数变量是否会超过150次,此变量为dwTime,但没有指示任何有关时间的信息。

它会调用一个子函数,Recv(),用于从设备端口中读取指定长度的数据。

该RecvBuffer()非常依赖其它函数对相关共享变量的设置。SendBuffer(), NextBuffer(),m_bufRecv[m_bufRecv], m_nRecv, m_nNext等。

大量相关的函数,离散的变量,使相关函数理解、维护起来非常困难。这根本不是C++程序,而是设计惨不忍睹的C面条。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值