[发明专利]一种基于串口的服务器控制方法有效

专利信息
申请号: 201010011849.0 申请日: 2010-01-12
公开(公告)号: CN101795270A 公开(公告)日: 2010-08-04
发明(设计)人: 段国栋 申请(专利权)人: 山东高效能服务器和存储研究院
主分类号: H04L29/06 分类号: H04L29/06;H04L12/56
代理公司: 暂无信息 代理人: 暂无信息
地址: 250014 山*** 国省代码: 山东;37
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明提供一种基于串口的服务器控制方法,该方法的功能是通过定制通信协议,根据协议的要求通过串口通信程序把所需要的数据发送出去,然后利用控制终端可以显示出来数据也可以来控制服务器。该方法的好处是有了这套通信协议的定制和程序的实现,以后有关于控制服务器的操作的相关项目中,都能很快的修改少量的通讯协议或程序就可以轻松实现,无论控制终端是控制终端还是其他的一些设备,都可以达到控制服务器的效果。因为他都是在底层实现了串口的通讯,从而通过串口实现了控制服务器的目的。
搜索关键词: 一种 基于 串口 服务器 控制 方法
【主权项】:
一种基于串口的服务器控制方法,其特征在于,定义串口通讯协议的数据包格式,其中定义包括发送的格式和发出的格式、发送采用的波特率和字符编码,根据协议的要求通过串口通信程序把所需要的数据发送出去,显示到控制终端上或通过控制终端利用串口通信程序实现控制服务器,具体实现步骤如下:一、定制串口协议规则,包括串口的参数当串口向系统发送数据是指控制终端通过响应事件来设置所要的数据,把数据的信息以字符的形式发送给系统,以下通一简称为“serial到system”,当系统向串口发送响应的数据是指系统收到有效的信息后,做出的相应的处理结果,把结果以字符的形式发送给串口,以下统一简称为“system到serial”无论从system到serial还是serial到system都是以字符的形式发送且字符编码都是Unicode;A:定义串口的初始化参数,波特率统一设置为9600;数据位8位,停止位1,奇偶校验无;B:定义从控制终端通过串口发送数据到系统的数据格式,定义了包头,命令,信息长度,信息位,数据,包尾,校验和;规定包头统一用#号,命令分别用到FGVCRDT字母,信息长度是统计信息位和数据的字节数的总和;信息位:是判断受到的数据正确与否和收到正确的数据后,执行系统命令正确与否,当要收到错误命令的时候标志位为E,当执行系统命令出错的时候返回F正确的时候返回T;数据位:当有数据的时候返回实际的数据,当没有数据返回0包尾:*号;校验和:指的是所有从包头到包尾的ASCII码的总和,同理配置从系统通过串口发送到控制终端配置的数据格式也分为包头,命令,信息长度,信息位,数据,包尾,校验和,但是从系统通过串口发送到控制终端的信息位和数据是不一样的,其他的都一样,因为这里的标志位代表执行系统的命令是否正确,数据位代表要取的数据,从包头到包尾的ascii码的和是用四个字节表示;二:配置驱动程序RXTX是一个提供串口和并口通信的开源java类库,由该项目发布的文件均遵循LGPL协议;A:修改javax.comm.properties      RXTX驱动的类配置文件,内容是Driver=gnu.io.RXTXCommDriver serpath0=/dev/ttyS0这里的ttys0代表是串口1,是串口2侧修改成ttys1; B:把下载下来的rxtx解压后,另外还有linux/solaris/windows/mac的目录,这是RXTX针对不同平台的动态链接库,处理器是i386,所以就是i686-unknown-linux-gnu下的so文件librxtxParallel.so,librxtxSerial.so两个文件考到$JAVA_HOME/lib/下,同时在考到/jre/lib/i386下;C:把javax.comm.properties  文件考到$JAVA_HOME/jre/lib下;D:最后把RXTXCommon.jar添加到你的工程里;注意:用ide工具eclipse编译用上边的方法;用命令编译:把RXTXCommon.jar拷贝到$JAVA_HOME/jre/lib/ext目录下;三:初始化串口程序这里的初始化指的后台程序进行的初始化,包括初始化串口的端口号,串口的传输速率,端口时超时时间,串口的数据位,串口的停止位,因为我们是操作控制终端来触发的事件,所以让串口的继承erialPortEventListener这个类,然后让他实现是该类的public void serialEvent(SerialPortEvent serialevent)这个方法,然后让事件监听注册到串口类中:serialport.addEventListener(this),最重要的是得到输入和输出流,in=serialport.getInputStream();out=serialport.getOutputStream();利用输入输出流来操作得到和输出的数据,当都初始化成功返回该串口对象,当调用完之后必须关闭串口,out.close(),in.close();四:数据格式的优化操作当通过串口接收到数据,把数据返回给业务逻辑层来处理数据,这里用到了大量的优化数据的操作,包括以下内容:A:判断接收到的数据是否正确,用Pattern.compile(″#[T,D,R,C,V,G,F]0200\\*\\d+″);来匹配正确的数据包,此处用到的匹配方法就是通讯协议定义的格式,当不匹配的时候直接按照铜须协议定义的发送给串口的数据格式返回一个错误指令,即信息标志位为E,表示接收的数据有问题,当正确的时候,把这个正确的字符串返回给public booleanmesglength(String m)判断校验和是否正确,不正确也是把标志位为E,正确后调用public String realString(String m)把正确的数据包的字符串置成全局变量;B:执行public String getCommand(String m),分解出所要执行的命令关键字,然后根据命令调用不同的执行方法对应的执行的底层的命令,底层对象取得数据后,把信息位置为F或T,分别代表执行错误和执行正确的标志,把取得的数据放到数据位上;C:串口通过初始化业务逻辑类public class HandleString,调用publicFlagBean syscommand(String m)调用刚才执行命令,返回一个不带校验和的数据 包格式的字符串;D:初始化优化类ReturnString后,调用public byte[]returnbytes(FlagBeanflag),把刚才得到的数据包字符串,无论是正确的还是错误的都调用public byte[]covbyte(FlagBean flag),就是根据不同的命令来区分不同的数据发送格式,按照通讯协议的格式来优化,把他们调优成对应的字节格式,包括把一个整数类型转换成一个字节,执行完返回给一个字节数组,此时的字节数组就是一个完整的数据包格式,但是不带校验和,然后returnbytes在根据这个数组算出校验和,统一放到一个字节数组里,返回给串口发送端,串口发送端public voidwritePort2(byte[]result)。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东高效能服务器和存储研究院,未经山东高效能服务器和存储研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201010011849.0/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top