下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档-下载后可编辑网络的软件设计透析网络编程的实现
网络编程基于TCP协议的网络编程,按照是否有帧听端口,通常分为两种模式,一种是服务器模式(侦听端口),另外一种为客户端模式。本仪器采用的是客户端模式。关于Linux网络通信中客户端编程的初始化代码,由于资料较多,这里不再累述。本文仅仅给出接收数据或发送数据的部分代码,因为仪器除了要处理网络信息外,还要进行检测数据的采集以及按键信息的处理,因此网络数据的传送或接收,不可以是阻塞的模式,必须是能够立即返回的非阻塞模式。本仪器采用传统的Linux操作系统下API函数select,来实现对网络端口状态的监控,进而实现数据传输的非阻塞功能。以下是实现功能的部分代码。发送数据的代码段,其中m_tv变量保存的是超时返回的时间设置。接收数据的代码段,m_tv的定义同上。如检测到网络口有数据上送的时候才进行数据的接收。
通信模块的详细介绍
通信协议介绍发生通信的两端(仪器和上位机),按照事先对数据传送的同步方式、数据结构、底层通信协议进行相互的约定,共同的遵守,这些约定就称为通信规约。基于网络接口的通信协议工作在应用层。通信协议制定的好坏直接影响仪器传输数据的速率,以及通信质量的可靠程度。按照通信协议的传输类型一般分为三类:(1)循环上送类型。仪器在进行正常的设置之后,不经过上位机的干预,主动将数据发送到上位机。(2)事件驱动类型。在正常工作模式下不向上位机发送数据,当有特殊事件发生的时候才向上位机发送数据。(3)被动召调类型。正常工作的时候,仪器不向上位机传送数据,直到上位机向仪器发送召调报文的时候才进行数据上送。考虑到仪器的工作模式,需要实时的向上位机发送数据,所以排除事件驱动类型的通信规约。由于检测手段的限制,要求仪器软件采样率较高,通常为10kHz以上,故对于数据传输的实时性要求较高,也不采用召调类型的传输协议。最终,仪器采用的是循环上送类型传输协议。协议内容仪器与上位机进行通信,包括两个方面的内容:(1)从上位机接收报文,例如开始采集数据、停止采集、发送参数等;(2)将采集到的数据发送给上位机,以供上位机进行显示或分析。的是三组0xD70x09共6个字节作为同步字,该报文头参照“部颁CDT循环远动规约”中的报文规定。数据帧长度:表示该帧报文的长度,由两个字节的长度表示,低字节在前,高字节在后。报文的长度不包括同步字的六个字节。命令控制字:指示该帧报文的作用,由两个字节的长度表示,低字节在前,高字节在后。数据区域:包含需要上传或是下载数据的内容。数据的内容都是两个字节组成一个数据元素,低字节在前,高字节在后。在原协议中,在数据区域后还存在一个校验码域,是用来检验该帧报文的数据是否完整。但由于仪器的底层采用的是基于流套接字的TCP报文协议,是可靠性连接,并且考虑到数据传送的实时性,在实际的工程使用中将校验码域进行删除。因篇幅有限,仅给出部分实际报文例子,其他报文类似推导即可:(1)开始采集数据0xD70x090xD70x090xD70x090x040x000x010x00(2)发送心跳包0xD70x090xD70x090xD70x090x040x000x050x00(3)循环上送数据0xD70x090xD70x090xD70x090x140x000x080x000x110x000x220x000x330x000x440x000x550x000x660x000x770x000x880x00其中,0x110x00~0x880x00表示的是八个物理采样通道的检测数值。协议分析流程图任何数据通信协议都必须依靠软件实现,因此软件对通信协议实现的好坏情况,直接影响仪器的系统稳定性和其他性能指标。系统的稳定性是指仪器能否经受得住长时间,大数据量传输的考验而不出现死机或数据传输不稳定的情况。其他性能指标是指实时性以及均匀性,实时性指仪器能否将数据实时的传输给上位机或对于上位机给出的报警信息是否及时响应,均匀性指数据的传输是否节奏一致,不能时快时慢。详细的程序处理流程协议分析流程图。当协议解析程序段分析出上位机给出的命令控制字后,就可以很方便地根据命令来进行相关的动作,例如设置参数、应答数据、设置报警等。
仪器软件自动更新的实现
由于软件自身的特性,使得任何一款软件产品在的早期阶段都不可避免的存在一些逻辑上的瑕疵或功能上的缺失。因此,为了使客户能有良好的使用体验,仪器必须能够提供一种有效的机制,使其在提供给用户使用之后,用户仍然能够方便地对其进行软件上的升级、更新操作。升级过程描述考虑到升级软件的操作必须简单、可靠,故仪器采用同样基于网络接口的FTP模式进行程序更新。实现描述如下:预先在仪器的内部存储芯片上固化一种FTP服务程序。当有需要进行软件更新时启动该服务程序,这样仪器就立刻变成了一台拥有FTP服务功能的“服务器”。用户通过网线将仪器与个人电脑相连接,通过浏览器登录到仪器上,将程序下载到仪器内部的存储器的某个地址空间,之后将仪器与个人电脑分离,让仪器内部的主控程序在对下载的应用程序进行有效性检验后,将它替换当前的应用程序,完成软件升级。升级程序的软件处理流程,程序有效性验证在更新仪器程序的过程中,由于外界偶然因素的干扰,可能导致程序的传输过程发生中断或因人为疏忽造成应用程序传输错误等问题,这样应用程序的更新就可能不成功,因此需要一种校验机制来判断所传输的程序是否正确、完整。本仪器采用的是通用的用于确保信息传输完整一致的MD5码校验机制。根据公开的MD5算法将待升级的程序进行数学变换得到一个128位的特征码,将该特征码附加到程序文件结尾,连同该程序文件一起传输给仪器。由主控程序将所下载的程序进行MD5码检验后,根据比较的结果向用户报告所传输的程序是否是完整的和正确的。MD5码生成函数参考开源MD5码软件包,主要函数与结构包含有MD5_CTX、MD5Iinit、MD5Update、MD5Final。FTP服务器的配置FTP的全称是FileTransferProtocol(文件传输协议)。FTP服务器是指能提供以FTP协议为传输协议进行文件传输服务的设备。能够实现FTP服务器功能的软件非常多,本仪器采用的是VSFTP这一款开源软件做为提供FTP服务的后台服务程序。采用VS-FTP作为后台服务程序有三点理由:(1)VSFTP服务器是开源软件,可以获得源代码。(2)VSFTP服务器规模较小,性能可靠,适合嵌入式仪器使用。(3)VSFTP具有高度的可配置性,使得仪器的使用比较灵活。由于篇幅有限,VSFTP服务器的交叉编译以及安装
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度4S店代驾服务与客户车辆保险理赔协助合同3篇
- 2024版物资采购全权委托协议版B版
- 2024年二级造价师考试题库(考试直接用)
- 2024年钢材企业质量管理体系认证与咨询合同
- 2024药品采购与药品市场监管合作框架协议3篇
- 2024年初中数学1对1教案模板(共8篇)
- 2025年度变形缝新型材料研发与产业化合同2篇
- 《关于学习侵权责任》课件
- 动物学2(山东联盟)知到智慧树章节测试课后答案2024年秋山东师范大学
- 2025年度厨师行业劳动合同补充条款范本3篇
- IUE(胚胎电转)课件
- 大气污染与人体健康课件
- 企业信息公示联络员备案申请表
- 学校体育学重点、知识点
- 人因失误及防人因失误工具课件
- (完整版)《安全标志及其使用导则规范》
- 挑战杯生命科学获奖作品范例
- 微信如何进行视频聊天
- T∕CNFMA B003-2018 林火防扑机械 以汽油机为动力的便携式化学泡沫灭火机
- 全贴合OCA工艺简介
- 部编版八上语文古代诗歌鉴赏对比阅读(含答案)
评论
0/150
提交评论