三尺寒冰分享 http://blog.sciencenet.cn/u/yhc511025

博文

接收机软件开发2(DTU问题)

已有 4077 次阅读 2010-4-29 21:23 |个人分类:项目开发|系统分类:科研笔记|关键词:学者| 软件, 接收机, 延时, DTU

    DTU模块的性能参数中要求发送数据的时间间隔要大于1.5秒。但是在系统运行过程中,上位机可能在向控制器发送完数据后,马上又需要向发送机发送数据,或者同时又接收到下位机发送的数据,需要立即反馈,如果对串口发送数据的时间不加以限制,DTU会将两次的数据当成一个数据发送出去。

    针对以上情况,程序中需要保证写两次串口的时间间隔大于1.5S。

解决方法为:

        在程序中设置了一个数据发送队列str_WaitSend[3]和一个串口是否可写标志位m_bWriteCom(为1时表示可写,为0时表示不可写,初始化为1)。str_WaitSend用来存储需等待发送的数据(经计算等待发送的数据不会超过3个)。

在向串口写数据时先判断m_bWriteCom是否为1。为1则写串口,并置m_bWriteCom为0,设置1.5S定时器;为0则将要写的数据加入队列尾,等待发送。在1.5S到时的消息响应函数中先置m_bWriteCom为1,然后判断发送队列中是否有数据,有数据则取出发送队列首部的数据写入串口,无数据则取消定时器。

 



https://m.sciencenet.cn/blog-293473-317705.html

上一篇:接收机软件开发1(串口问题)
下一篇:接收机软件开发3(接收数据分层处理)

1 陈儒军

发表评论 评论 (1 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-6-3 04:20

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部