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

博文

接收机软件开发3(接收数据分层处理)

已有 3972 次阅读 2010-4-30 22:10 |个人分类:项目开发|系统分类:科研笔记|关键词:学者| 软件, 通信, 协议, 分层

接收机程序中对串口收到的数据分成了3层进行处理。

        1)第一层(串口层):完成串口数据处理功能。

           在串接缓冲区收到数据的时候,程序执行串口消息响应函数OnComm(),在该函数中先判断是否是串口接收到数据的消息,如果是则读取缓冲区中的数据并将之转换为字符串存到一个CString类的str变量中,上传给短信层,不是则返回。

        2)第二层(短信层):完成短信处理功能。

           在接收到下层传输来的str后,进行如下处理:

a)判断str是否符合接收短信格式“LC4:+SIM卡号+,+LC3:+数据”,如果不符合条件返回0,符合条件跳转到(b)

b)提取出SIM卡号,判断SIM卡号是否是系统设定的卡号,如果不是则返回0,是则跳转到(c).

c)提取出数据,存入CString类的str1变量中,上传给控制层。

d)结束,返回1

         3)第三层(控制层):完成控制命令处理功能。

            在接收到短信层传输来的str1后,进行如下处理:

(a)    判断数据头和数据尾是否分别“**”和“#”,如果都符合,则跳转到(b)不符则返回0

(b)    提取出第三个字符,判断出命令类型(下位机的反馈命令为abcdefyz,请求命令为wvu)如果为反馈命令则跳转到(c),为请求命令则跳转到(d),都不是则返回0

(c)    将提取出来的反馈命令字符与等待的反馈命令m_cOrder[0](等待发送机反馈的命令变量)和m_cOrder[1](等待控制器反馈的命令变量)进行比较。如果与这两者之中的一个相等,则代表该反馈命令是刚发送出命令的反馈,跳转到(d);如果都不等则返回0

(d)    按照命令字符确认分隔符的个数并与数据中分隔符的个数进行对比,如果相等则提取中间的参数并给相应的变量赋值、刷新显示出来,并跳转到(e),不等则返回0

(e)    按照命令字符对软件界面上的控件进行操作,有提示信息的显示提示信息。

           (f)结束,返回1



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

上一篇:接收机软件开发2(DTU问题)
下一篇:世博会起源及发展

2 陈儒军 申瑞杰

发表评论 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

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

GMT+8, 2024-5-20 18:31

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部