该部分主要针对主动发送的连续仪表数据进行处理。只处理固定长度的数据。

在称重系统中,主要针对金钟和托利多的仪表进行处理。

串口的数据接收有两种方式,一种是通过事件触发方式,通过监听DataReceived事件;另一只就是通过循环主动查询BytesToRead属性,来判断是否有数据需处理。主动查询程序控制更方便,采用主动查询。

要进行通讯数据的处理,首先需要接收从com口获取的数据。接收到的数据需要一个内存空间进行存储。考虑到接收到的数据是连续数据,且数据接收后要进行后期的处理,处理后就要对数据进行移除,采用一个循环队列进行处理。

对数据的协议进行处理,首先要获取一个完整的数据包。获取的完整的数据包实体,主要包含两个属性,一个是数据包的内容,一个是获取到该数据包的时间戳。

要获取到这个完整的数据包,需要一个数据包的过滤器。数据包的过滤器主要包含协议包数据长度、特征码(特征码位置和特征码的值)。特征码:不仅包含开始字符、结束字符,还可包含指定位置的字符,例如倒数第二位字符,可更通用。

特征码的指定:主要包含特征码的位置和特征码的值。 通过这两个数组可灵活处理常见的情况。

获取得到完整的协议包之后,可再进一步的对数据进行处理。仪表数据主要包含重量数据、符号位、是否超载标志、是否稳定等标记。

对应的协议处理类

转载于:https://www.cnblogs.com/foryoule/p/4189945.html

串口通信协议数据处理二相关推荐

  1. stm32串口接收不定长数据_基于STM32之UART串口通信协议--接收

    一.前言 1.简介 回顾上一篇UART发送当中,已经讲解了如何实现UART的发送操作了,接下来这一篇将会继续讲解如何实现UART的接收操作. 2.UART简介 嵌入式开发中,UART串口通信协议是我们 ...

  2. 我也聊聊串口通信协议:用户层通信协议的编制

    1.闲话闲聊 最重要的写在前面:用户层通信协议就是数据包格式!!! 没有进行串口通讯实践的朋友可能会想:为什么要编制用户通信协议呢?通信过程中为什么要进行数据处理呢?在设计中编过串口通信程序的读者应该 ...

  3. c语言单片机串口通讯,单片机C语言之串口通信协议

    串口通信概述 串口通信指串口按位(bit)发送和接收字节.尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据. 常用三种串口通信协议 1.RS-232 RS ...

  4. 串口通信协议(基于面试),与及树莓派与电脑之间串口通信

    一.首先来说一下基于面试的串口通信协议 树莓派wiringPi库详解 (1)串口通信是基于多机的通信 主要就是两根线:RXD和TXD 举例,语音识别模块与树莓派之间进行串口通信 语音模块的T连接树莓派 ...

  5. 串口通信协议简介—学习笔记

    串口通信协议简介-学习笔记 文章目录 串口通信协议简介-学习笔记 一.串口.COM口.UART口, TTL.RS-232.RS-485区别详解 1.物理接口形式 2.电平标准 2.1 **TTL** ...

  6. 单片机中常用的串口通信协议帧

    单片机中常用的串口通信协议帧 前言 一.单片机串口简介 二.常用的通信协议类型 1.没有格式 2.帧头帧尾+数据 3.帧头帧尾+数据+附加功能码 4.帧头帧尾+数据+附加功能码+目标地址 5.帧头帧尾 ...

  7. 了解RS-232、RS-485串口通信协议

    文章目录 一.串口通信协议 1.RS-232标准 2.RS-485标准 3.RS232.485电平与TTL电平的区别 4."USB/TTL转232"模块工作原理 1.工作流程 2. ...

  8. 基于STM32单片机和Labview的温湿度波形实时显示串口助手(二)----手把手教学

    文章目录 前言 一.温湿度检测波形显示系统界面 二.软件程序框图 1.Init 2.Wait 3.Send 4.GetData 5.Deal 6.Exit 总结 前言 由于最近忙于如何开展自己研究方向 ...

  9. 【STM32学习】——串口通信协议STM32-USART外设数据帧/输入数据策略/波特率发生器串口发送/接受实操

    文章目录 前言 一.串口通信 1.通信接口 2.串口通信 (1)串口简介 (2)串口硬件电路 (3)串口软件部分 二.STM32的USART外设 1.USART简介 2.图示详解 三.细节问题 1.数 ...

最新文章

  1. 新浪微博中的周期性爆发流量
  2. 34.16.159(zz)
  3. python虚拟环境-conda
  4. mysql5.6.27_Centos上安装Mysql5.6.27多实例
  5. 2016 排行前20 的编程语言
  6. XML——XSLT的一个简单荔枝
  7. golang判断结构体为空_如何在Golang中检查结构是否为空?
  8. 怎么取消自动格式化_iPhone自动扣费怎么取消?App Store、微信、支付宝关闭自动扣费教程...
  9. 医疗小程序源码_不懂商城小程序源码,如何快速创建小程序商城?
  10. ORA-00972: identifier is too long问题解决
  11. 树视图主要属性 c# 0207
  12. MySQL高可用实现:主从结构下ProxySQL中的读写分离
  13. halcon显示坐标_机器视觉之halcon入门(10)-一文弄懂halcon例程:color_fuse.hdev
  14. linux安装R3.5.0
  15. IDEA安装插件的两种方式
  16. android录屏代码(录屏并生成mp4文件)
  17. 程序员接私单被警方抓走,企业应不应该起诉程序员赔偿?
  18. linux下cat导出日志,Linux命令:cat
  19. Debian 9 Stretch国内常用镜像源 Jason-张百万
  20. 【gym 101991 E】(ACPC 2018) E. Exciting Menus 题解

热门文章

  1. hdu6681 Rikka with Cake(主席树)
  2. H3C产品简介及基础配置命令
  3. exception日志 php_一次php错误日志的问题排查
  4. python匹配excel相同的数据_利用Python实现Excel的文件间的数据匹配功能
  5. 阴影体(shadow volume)
  6. 在你的对话框上查看Revit模型的各个视图
  7. Springboot 获取 resource 下的文件夹路径的坑
  8. 2021年全球移动基础设施和FTTx光器件市场超$20亿
  9. 特斯拉避免宠物于车内热衰竭 车辆添加「狗狗模式」
  10. c++如何完成二进制和十进制的互相转换