方法如下:
新建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也是读取不到串口的。
还有有时候你配置好环境,运行之后也能列出串口。但过一段时间后,找不到串口了,然而在设备管理器里还能看到串口,以前也能运行,环境不存在问题,重启也没用。你可以这样解决,把win32comdll复制到eclipse项目目录下,然后在main方法一开始添加如下代码,下面这样不需要配置comm环境了
CommDriver driver = null;
String driverName = "comsuncommWin32Driver";
try {
driver = (CommDriver) ClassforName(driverName)newInstance();
driverinitialize();
} catch (InstantiationException | IllegalAccessException
| ClassNotFoundException e) {
// TODO Auto-generated catch block
eprintStackTrace();
}
最近在研究一个东西要用到串口的读写 通过读取串口 获取一个指令 然后根据该指令通过配置文件获取其他的信息再通过串口 进行做下一步的一系列 *** 作
java读写串口要用到的是javax扩展类库javam 它是一系列的标准 该类库在sun的官网上只提供linux版本 由于我所应用的平台是win 所以找了个win 的实现 在此过程中遇到了一系列的问题 后来终于解决问题并完成了通过读写串口进行通信的功能 在此对其java读写串口的情况做个简要说明
首先下载javam包 然后将其解压 解压后需要做的就是配置串口通信相关东西 下面是自己使用的时候的配置
把m properties文件拷贝到Java运行时环境的lib目录中 即
C:\Program Files\Java\jdk _ \lib\m properties
C:\Program Files\Java\jdk _ \jre\lib\m properties
把win dll拷贝到C:\windows\system \ 和 C:\Program Files\Java\jdk _ \jre\bin\下
把m jar放到Java运行时环境的lib目录中 即C:\Program Files\Java\jdk _ \lib\m jar
在 环境变量 的CLASSPATH中添加m jar 如 %JAVA_HOME%\lib\m jar;
然后通过的API来实现串口的读写 其实API相当简单 如下代码
Java代码
CommPortIdentifier serialPortId = CommPortIdentifier getPortIdentifier( );
SerialPort port = (SerialPort) serialPortId open( Read );//打开 串口 其中 参数是用来设置打开串口的超时时间
port setSerialPortParams( );//设置 的波特率 数据位 停止位 校验方式等
//从串口中得到输入输出流了
OutputStream out = port getOutputStream();
out write(buffer);
out flush();
InputStream in = port getInputStream();
in read(data);//data是一个byte[]
CommPortIdentifier serialPortId = CommPortIdentifier getPortIdentifier( ); SerialPort port = (SerialPort) serialPortId open( Read );//打开 串口 其中 参数是用来设置打开串口的超时时间 port setSerialPortParams( );//设置 的波特率 数据位 停止位 校验方式等 //从串口中得到输入输出流了 OutputStream out = port getOutputStream(); out write(buffer); out flush(); InputStream in = port getInputStream(); in read(data);//data是一个byte[]
lishixinzhi/Article/program/Java/hx/201311/26266
java打开串口的方法如下:
public SerialPort openPort(String port) {CommPortIdentifier portId = null;
try {
portId = (CommPortIdentifier)CommPortIdentifiergetPortIdentifier(port);
return (SerialPort)portIdopen("SimpleWriteApp", 0);
} catch (NoSuchPortException e) {
Systemoutprintln("找不到端口");
return null;
} catch (PortInUseException e) {
Systemoutprintln("端口被占用");
return null;
}
}
注意配置java串口所需的包及添加JRE
我的做法将串口封装成一个类,有打开、关闭串口方法,读写数据方法,你可以参考
你可以定义一个Map,把Map传入void的方法,在void方法里面put你要的内容。然后在转换你需要的数据类型。
Map m= new HashMap();
调用方法
void getInfo(){
Mput("name","小李");
}
m对象里面有你想要的内容。
以上就是关于在java的web程序中怎么使用串口通讯全部的内容,包括:在java的web程序中怎么使用串口通讯、java中怎么监控正在使用的串口信息、java comm例子为什么读不到串口啊等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)