当前位置: 首页 > news >正文

有关网站建设的外文文献平台网站怎么做的好

有关网站建设的外文文献,平台网站怎么做的好,智慧团建官网登录口,下载手机app客户端下载安装在做两个串口相互通信的实验中,当发送频率快一点时偶尔会遇到以下情景,即一次send中把原数据拆成两份发送,就会导致CRC校验错误。下图中6字节数据拆成42是把SetRThreshold()阈值设为2,当设为1的情况下则会拆成51。 一开始以为是缓…

在做两个串口相互通信的实验中,当发送频率快一点时偶尔会遇到以下情景,即一次send中把原数据拆成两份发送,就会导致CRC校验错误。下图中6字节数据拆成4+2是把SetRThreshold()阈值设为2,当设为1的情况下则会拆成5+1。
在这里插入图片描述
一开始以为是缓冲区溢出问题,然而并不是。真正的原因出在MFC的COMM组件的OnComm响应函数上,即一次发送的报文会被响应两次(检测阈值时先会响应,阈值后面的数据再次响应)。
对于此问题有两种方法:

第一种是在报文前后加上固定的包头包尾,当数据断开时,响应函数分别会收到一个带包头的和一个带包尾的数据,将它们拼在一起即可。但这种方法的问题是,有可能被截断的数据刚好也同时带有包头包尾,因此还需要加一步CRC校验,比较麻烦。

第二种方法比较简便,思路是延迟接收,即OnComm一旦响应后不急着接收数据,而是过一段时间再接收,则可以保证延迟接收的数据是完整的。

使用第二种方法需要使用MFC的定时器功能,步骤如下。

  1. 设置定时器
/* comm控件的响应函数 */
void CMODBUS_CRCDlg::OnOnCommMscomm1()
{SetTimer(1,50,NULL); //表示1号定时器、计时50毫秒
}

使用50ms是因为基本上能保证收到完整的串口数据且大于发送频率。

  1. 编写定时逻辑
    对选择的类右键ClassWizard,找到WM_TIMER并引入响应函数OnTimer。
    在这里插入图片描述
    在OnTimer里编写定时器停止的逻辑。
void CMODBUS_CRCDlg::OnTimer(UINT nIDEvent) 
{switch (nIDEvent){case 1:receiveData();KillTimer(1);break;default:break;}CDialog::OnTimer(nIDEvent);
}

nIDEvent表示定时器的id,每当满50ms时一号定时器就会触发OnTimer事件,设置KillTimer(1)即为触发一次,否则将反复触发。
receiveData()为接收数据后所做的处理,包括拆包、CRC校验、进行展示等环节。

补:Qt遇到类似问题的解决方法

http://www.yayakq.cn/news/917016/

相关文章:

  • wix怎样做网站品牌vi设计有哪些内容
  • 局网站建设总结wordpress大气
  • 做爰全过程免费网站网站开发建设专业的公司
  • 淘宝可以在哪些网站上面打做推广网站制作教程及流程
  • 泰兴网站建设哪个电商平台最能卖货
  • 用旧手机做网站怎么制作自己的网址
  • 做网站前需要准备什么北京网站建设的关键词
  • 怎样增加网站流量网络热词有哪些
  • 新开发网站win10优化软件
  • 四川住房和城乡建设厅网站打不开做100个网站效果图
  • 宿松网站建设推荐秒搜科技网络优化岗位详细介绍
  • 网站排名优化软件有哪些大学生就业信息招聘网
  • 怎么做好网站搜索引擎优化怎样启动wordpress
  • 如果网站没有做icp备案企业网站的基本内容以及营销功能
  • 化妆品网站程序公司网站建设行为规定
  • 网站建设编程软件制作移动端网页
  • 贷款织梦网站模版好用的wordpress博客主题
  • 中国建设银行官网站积分抽奖搜索推广账户优化
  • 网站维护需要多久时间该怎么给做网站的提页面需求
  • 有哪些做ppt网站网站首页可以做竖版吗
  • 网站建设西班牙语注册域名建设网站
  • dw做aspx网站wordpress文章排列
  • 新浪网 网站建设黄页网络的推广
  • 山东省住房城乡建设部网站首页杭州建设网页
  • 企业档案网站建设软件售卖平台
  • 如何做搜索引擎网站怎样做一个网站平台
  • 网站建设、微信小程序、巴中做网站的公司
  • 网站建设 面试网站建设人员需求
  • 深圳网站建设的服务wordpress 快速安装失败
  • 企业简介 网站建设python基础教程ppt