05.打包解包小工具设计实验_第1页
05.打包解包小工具设计实验_第2页
05.打包解包小工具设计实验_第3页
05.打包解包小工具设计实验_第4页
05.打包解包小工具设计实验_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于WinForm医用仪器软件设计MedicalInstrumentSoftwareDesignQuickStartTutorial2022讲师xxx05打包解包小工具设计实验章节目录Tableofcontents

主从机交互简介

PCT通信协议简介

PCT通信协议打包过程010203

PCT通信协议解包过程04设计框图05

PackUnpack.cs介绍06打包解包小工具设计实验Packageunpackinggadgetdesignexperiment实验内容学习PCT通信协议及C#中的部分控件,如标签控件(Label)、文本框控件(TextBox)和按钮控件(Button)等。设计一个打包解包小工具,在文本框中输入模块ID、二级ID及6字节数据后,通过“打包”按钮实现打包操作,并将打包结果显示到打包结果显示区。另外,还可以根据用户输入的10字节待解包数据,通过“解包”按钮实现解包操作,并将解包结果显示到解包结果显示区。实验原理1.主从机交互简介从机:常常被作为执行单元,用于处理一些具体的事务主机:(如Windows平台、Linux平台、Android平台和emWin平台等)用于与从机进行交互,向从机发送命令,或处理来自从机的数据主机与从机交互示意图1.主从机交互简介主机向从机发送命令的具体过程是:主机对待发命令进行打包;主机通过通信模块,如串口、USB、蓝牙、Wi-Fi等将打包好的命令发送出去;从机在接收到命令之后,对命令进行解包;从机按照相应的命令执行任务。

从机向主机发送数据的具体过程是:从机对待发数据进行打包;从机通过通信模块,如串口、USB、蓝牙、Wi-Fi等将打包好的数据发送出去;主机在接收到数据之后,对数据进行解包;主机对接收到的数据进行处理,如计算、显示等主机与从机之间的通信过程:(打包解包框架图)2.PCT通信协议简介PCT通信协议规定:(1)一个数据包由1字节模块ID+1字节数据头+1字节二级ID+6字节数据+1字节校验和构成,共计10个字节;(2)一个数据包中有6个数据,每个数据为1字节;(3)模块ID的最高位bit7固定为0,取值范围为0x00-0x7F,最多128种类型;2.PCT通信协议简介PCT通信协议规定:(4)数据头的最高位bit7固定为1,数据头的低7位按照从最低位到最高位顺序,依次存放二级ID的最高位bit7、数据1的最高位bit7、数据2的最高位bit7、数据3的最高位bit7、数据4的最高位bit7、数据5的最高位bit7和数据6的最高位bit7;(5)二级ID、数据1、数据2、数据3、数据4、数据5、数据6和校验和的最高位bit7固定为1;(6)校验和低七位为模块ID+数据头+二级ID+数据1+数据2+...+数据6求和的结果(取低7位)。3.PCT通信协议打包过程第1步:准备原始数据。原始数据由模块ID(0x00~0x7F)、二级ID、数据1、数据2、数据3、数据4、数据5和数据6组成,如下图所示。其中,模块ID的取值范围为0x00~0x7F,二级ID和数据的取值范围为0x00~0xFF。PCT通信协议的打包过程分为4步:3.PCT通信协议打包过程第2步:计算数据头。依次取出二级ID、数据1、数据2、数据3、数据4、数据5和数据6的最高位bit7,将其存放于数据头的低7位,按照从最低位到最高位的顺序依次存放二级ID、数据1、数据2、数据3、数据4、数据5和数据6的最高位bit7,如下图所示。3.PCT通信协议打包过程第3步:计算校验和。对模块ID、数据头、二级ID、数据1、数据2、数据3、数据4、数据5和数据6的低7位求和,取求和结果的低7位,将其存放于校验和的低7位,如下图所示。3.PCT通信协议打包过程第4步:最高位置1。将数据头、二级ID、数据1、数据2、数据3、数据4、数据5、数据6和校验和的最高位置为1,如下图所示。4.PCT通信协议解包过程第1步:准备解包前的数据包。原始数据包由模块ID、数据头、二级ID、数据1、数据2、数据3、数据4、数据5、数据6和校验和组成,如下图所示。其中,模块ID的最高位为0,其余字节的最高位均为1。PCT通信协议的解包过程也分为4步:4.PCT通信协议解包过程第2步:数据校验。对模块ID、数据头、二级ID、数据1、数据2、数据3、数据4、数据5和数据6的最低7位求和,如下图所示,取求和结果的低7位与数据包的校验和低7位对比,如果两个值的结果相等,则说明校验正确。4.PCT通信协议解包过程第3步:计算二级ID和最终数据。数据头的最低位bit0与二级ID的低7位拼接之后作为最终的二级ID,数据头的bit1与数据1的低7位拼接之后作为最终的数据1,数据头的bit2与数据2的低7位拼接之后作为最终的数据2,以此类推,如下图所示。4.PCT通信协议解包过程第4步:得到解包后的数据。下图即为解包之后的结果,由模块ID、二级ID、数据1、数据2、数据3、数据4、数据5和数据6组成。其中,模块ID的取值范围为0x00~0x7F,二级ID和数据的取值范围为0x00~0xFF。5.设计框图打包解包小工具设计框图:6.PackUnpack.cs文件方法说明publicPackUnpack()构造方法。对模块进行初始化publicboolpackData()打包方法。待打包的数据必须是8字节,模块ID必须是0x00到0x7FpublicboolunpackData()接包方法。通过该方法逐个对数据进行解包和判断,解包后的数据通过getUnPackResult()方法获取publicList<byte>getUnpackResult()获得解包后的数据包方法课程资料包提供的PackUnpack.cs文件中包含了PCT协议的C#语言实现代码,其中其中包含4个API方法,具体说明如下:界面介绍控件:textBox控件:button事件:Click()控件:groupBox打包解包小工具设计实验Packageunpackinggadgetdesignexperiment打包代码分析打包解包小工具设计实验Packageunpackinggadgetdesignexperiment解包代码分析打包解包小工具设计实验Packageunpackinggadgetdesignexperiment本章任务Tasks按照PCT通信协议规定,模块ID的最高位固定为0,这意味着其取值范围只能在0x00~0x7F之间,那么在进行程序验证时,如果在模块ID编辑框中输入的值大于7F,会出现什么情况?经过验证后发现此时在打包结果显示区仍然会显示数据,显然这是不符合PCT通信协议的,尝试解决该问题,当模块ID不在规定范围内时弹出错误提示信息,并要求重新输入。本章习题Practices1.根据PCT通信协议,模块ID和二级ID分别有多少种

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论