
……你自己把逻辑锁死了。收到一回4字节序列后,flag1置位,之后发送数据。可是在发送数据的时候又会进入中断的,由于接收缓冲区中还是那4字节的序列,于是flag1再次被置位……于是乎进入永不停歇的死循环。你的串口中断应当判断一下是发送还是接收……
方法如下:
新建eclipse工程,添加commjar或者RXTXcommjar包。因为javacomm20-win32zip包里有样例SimpleReadjava,可以通过这个例子测试串口是否正确。
接收数据正确后,根据传送接收双方的协议,采用CRC循环校验,根据传输的一方的校验函数判定是否是正确传输。
把正确结束的数据解析,查看自己指定的通讯规则,然后解析。
插入数据库,jdbc插入。
数据统计,定时统计每小时,每天,每月,每年的平均值,采用quartz服务来实现。
建立web工程,采用hibernate3,spring3,dwr技术把数据库数据动态显示,图表采用jfreechart,以及AJAX的运用
java优点:
java是纯面向对象编程的语言;
平台无关性 (一次编译,到处运行;Write Once,Run Anywhere);
java提供了许多内置的类库,通过这些类库,简化了开发人员的设计工作,同时缩短了项目开发时间;
提供了对Web应用开发的支持,例如,Applet,Servlet,和JSP可以用来开发Web应用程序,,Socket,RMI可以用来开发分布式应用程序的类库;
去除了c++中难以理解,容易混淆的特性(如c++中的多继承,头文件,指针,结构,单元,运算符重载,虚拟基础类,使得程序更加严谨,整洁。
最近在做java串口通讯,主要是用个人电脑通过串口从RS485读取数据,并通过crc循环冗余校验,把接收正确的数据解析,插入数据库mysql,并用SSH技术把数据库数据以表格以及图表形式显示
思路:
1为了从RS485读取数据,由于暂时没有硬件设备,系统是win7,故采用Virtual Serial Port Drive(VSPD)这块虚拟串口软件代替。并下载sscom32exe模拟串口通信软件。
2 要想实现串口通信,用Java实现串口通信(windows系统下),需要用到sun提供的串javacomm20-win32zip。其中要用到三个文件,配置如下:
commjar放置到 JAVA_HOME/jre/lib/ext;
win32comdll放置到 JAVA_HOME/bin;
javaxcommproperties 两个地方都要放
jre/lib(也就是在JAVA文件夹下的jre),JAVA_HOME/jre/lib下
这个配置在我电脑上测试成功,也许不需要这样麻烦。注意的是,如果你使用myeclipse,因为它自带jre,你需要在它所在的jre相应位置放dll以及properties文件。
是不是感觉这个很麻烦,还有windows的限制。后来我们下载rxtx这款开源包代替了刚才的comm。不仅windows下可以,linux下也可以。使用方法很简单,配置如下:
RXTXcommjar放到JAVA_HOME/jre/lib/ext
rxtxSerialdll放到JAVA_HOME/bin
如果你使用myeclipse工具,你需要把rxtxSerialdll放到它自带的jre里。
3新建eclipse工程,添加commjar或者RXTXcommjar包。因为javacomm20-win32zip包里有样例SimpleReadjava,可以通过这个例子测试串口是否正确
4接收数据正确后,根据传送接收双方的协议,采用CRC循环校验,根据传输的一方的校验函数判定是否是正确传输
5把正确结束的数据解析,查看自己指定的通讯规则,然后解析
6插入数据库,jdbc插入
7数据统计,定时统计每小时,每天,每月,每年的平均值,采用quartz服务来实现。
8建立web工程,采用hibernate3,spring3,dwr技术把数据库数据动态显示,图表采用jfreechart,以及AJAX的运用
以上就是关于我用java代码写串口通信,串口测试通过了!串口发送给程序的命令,如何用程序回复返回的结果全部的内容,包括:我用java代码写串口通信,串口测试通过了!串口发送给程序的命令,如何用程序回复返回的结果、在java的web程序中怎么使用串口通讯、在java的web程序中怎么使用串口通讯等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)