本文目錄一覽:
java,串口CommPortIdentifier問題….
java打開串口的方法如下:
public SerialPort openPort(String port) {
CommPortIdentifier portId = null;
try {
portId = (CommPortIdentifier)CommPortIdentifier.getPortIdentifier(port);
return (SerialPort)portId.open(“SimpleWriteApp”, 0);
} catch (NoSuchPortException e) {
System.out.println(“找不到端口”);
return null;
} catch (PortInUseException e) {
System.out.println(“端口被佔用”);
return null;
}
}
注意配置java串口所需的包及添加JRE
我的做法將串口封裝成一個類,有打開、關閉串口方法,讀寫數據方法,你可以參考
java如何從串口讀取數據帶GUI
1.導入支持java串口通信的jar包:
在maven項目的pom.xml中添加RXTXcomm的依賴 或者 下載RXTXcomm.jar並導入到項目中。
支持Java串口通信操作的jar包,java.comm比較老,而且不支持64位系統,推薦使用Rxtx這個jar包(32位/64位均支持)。
注意:運行過程中拋出 java.lang.UnsatisfiedLinkError 錯誤或 gnu.io 下的類找不到時,將rxtx解壓包中的 rxtxParallel.dll,rxtxSerial.dll 這兩個文件複製到 C:\Windows\System32 目錄下可解決該錯誤。
2.編寫代碼操作串口:
串口必要參數類:包含連接串口所必須的參數,方便在調用串口時設置和傳遞串口參數。
在java的web程序中怎麼使用串口通訊?
方法如下:
新建eclipse工程,添加comm.jar或者RXTXcomm.jar包。因為javacomm20-win32.zip包里有樣例SimpleRead.java,可以通過這個例子測試串口是否正確。
接收數據正確後,根據傳送接收雙方的協議,採用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如何向串口發送指令?
需要一個包 comm.jar
需要一個配置文件 javax.comm.properties (工程根目錄)
(或者放在JDK里)
// 取得端口句柄
CommPortIdentifier id = CommPortIdentifier.getPortIdentifier(portName);
port = (SerialPort) id .open(“SerialDemo”, 30000);
port .setSerialPortParams(9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
port .notifyOnDataAvailable(true);
port .notifyOnBreakInterrupt(true);
port .enableReceiveTimeout(delayTime);
讀取之類的自己寫就行了,(port .getInputStream()),完事之後別忘了關掉端口,不然下次就不能用了,只能重啟系統
配置文件里就一行:
Driver=com.sun.comm.Win32Driver
———————————-
你設個斷點單步調試看一下原因,那個SerialBean是你自己寫的,誰也不知道裡面整啥了,單步調試就知道哪裡錯誤。
拋出異常了Exception in thread “main” java.lang.NullPointerException
at serial.SerialBean.WritePort(SerialBean.java:114)
從這裡看,是在SerialBean.java的114行(函數WritePort)的一個東西,它的值是null,所以報錯了
原創文章,作者:ZLYS,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/132764.html