现在的位置: 首页 > 综合 > 正文

RecvBuffer()

2017年12月28日 ⁄ 综合 ⁄ 共 641字 ⁄ 字号 评论关闭

.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面条。

【上篇】
【下篇】

抱歉!评论已关闭.