JAVA串口读写小结
2013-07-03 11:44
211 查看
7月1号到公司报到了~直接给我一个发射器(tag)和接收器(USB口),让我从COM端口读取数据。
没弄过,一头雾水。但是吧,网友的力量是强大的,我要做的功能很简单,所以网上的一些介绍完全够了。
要求:
用JAVA 从COM口读取数据,并保存在本地,保证收包率。(COM端口的数据读取,网上用的源码,稍微改写一些就ok了)
问题:首先是javax的Comm包配置的问题,包里的文件不知道放哪里。会出现好像叫nosuchportException的错误,找了好多配置方案,暂时都没有实现(应用要求也没
那么多,实现就可以,所以没细细的搞)
在网上搜到一个好方法,直接把类导入工程里,代码如下:
String driverName = "com.sun.comm.Win32Driver";
CommDriver driver = null;
try {
System.loadLibrary("win32com");
driver = (CommDriver) Class.forName(driverName).newInstance();
driver.initialize();
} catch (InstantiationException e1) {
System.out.println(e1);
} catch (IllegalAccessException e1) {
System.out.println(e1);
} catch (ClassNotFoundException e1) {
System.out.println(e1);
}
ok了,问题没有了。然后正常读取数据。
一开始以为while循环一直读,总不会丢包吧,但是天不遂人愿啊!T_T
然后以为是读入的数据保存的缓存(接受数组)不够,然后用了缓存池(二位数组、循环队列之类的),还是不行啊!
然后网上看到,用多线程什么的,一个线程读,一个线程写。对于菜鸟,线程哪里学过啊(虽然用过一点源码,也不是很难上手)!但是哪里高兴去搞,好在,那个网友指
出,用线程实现会有延迟的问题。所以果断放弃!
然后那个网友又提到,直接去掉线程之类的东西,我大概知道他是什么意思,就是不要多余的缓存,线程之类的,我直接全部保存起来,不用中介。大概是这么个印象。我
想想,和直接while(true)读取,然后保存有神马区别呢?
于是我考虑,我不写,然后全部保存在内存怎么样呢?结果不错,内存里的数据没有丢失的现象。然后,我就每隔一段时间把内存写入磁盘,然后在保存。差多都就解决了。
细节,接下来再弄弄,应该ok~
没弄过,一头雾水。但是吧,网友的力量是强大的,我要做的功能很简单,所以网上的一些介绍完全够了。
要求:
用JAVA 从COM口读取数据,并保存在本地,保证收包率。(COM端口的数据读取,网上用的源码,稍微改写一些就ok了)
问题:首先是javax的Comm包配置的问题,包里的文件不知道放哪里。会出现好像叫nosuchportException的错误,找了好多配置方案,暂时都没有实现(应用要求也没
那么多,实现就可以,所以没细细的搞)
在网上搜到一个好方法,直接把类导入工程里,代码如下:
String driverName = "com.sun.comm.Win32Driver";
CommDriver driver = null;
try {
System.loadLibrary("win32com");
driver = (CommDriver) Class.forName(driverName).newInstance();
driver.initialize();
} catch (InstantiationException e1) {
System.out.println(e1);
} catch (IllegalAccessException e1) {
System.out.println(e1);
} catch (ClassNotFoundException e1) {
System.out.println(e1);
}
ok了,问题没有了。然后正常读取数据。
一开始以为while循环一直读,总不会丢包吧,但是天不遂人愿啊!T_T
然后以为是读入的数据保存的缓存(接受数组)不够,然后用了缓存池(二位数组、循环队列之类的),还是不行啊!
然后网上看到,用多线程什么的,一个线程读,一个线程写。对于菜鸟,线程哪里学过啊(虽然用过一点源码,也不是很难上手)!但是哪里高兴去搞,好在,那个网友指
出,用线程实现会有延迟的问题。所以果断放弃!
然后那个网友又提到,直接去掉线程之类的东西,我大概知道他是什么意思,就是不要多余的缓存,线程之类的,我直接全部保存起来,不用中介。大概是这么个印象。我
想想,和直接while(true)读取,然后保存有神马区别呢?
于是我考虑,我不写,然后全部保存在内存怎么样呢?结果不错,内存里的数据没有丢失的现象。然后,我就每隔一段时间把内存写入磁盘,然后在保存。差多都就解决了。
细节,接下来再弄弄,应该ok~
相关文章推荐
- java 串口读写 java.lang.NoClassDefFoundError: gnu/io/CommPortIdentifier 错误解决
- php和java简便的方式读写串口(串口通信)
- java读写串口
- java读写串口
- java串口错误小结,CommPortIdentifier.getPortIdentifiers()为空
- Java Applet读写client串口——终极篇
- 我的小工具,java版串口读写卡测试工具
- Java Applet读写client串口——终极篇
- java 串口读写程序
- Java实现串口数据读写
- Java Applet读写client串口——终极篇
- java读写串口的简单示例
- java 串口 读写
- Win7环境下Java串口数据读写(RXTX)(转载)
- JAVA 编写的串口 读写 程序 以及乱码程序
- Java Applet读写客户端串口——终极篇
- Java Applet读写client串口——终极篇
- JAVA 编写的串口 读写 程序 以及乱码程序
- JAVA读写串口Bean范例
- JAVA读写串口Bean范例