星期五, 4月 18, 2003

Java的Serial Port Programming

Serial Port的支援並不在JDK的標準中,Sun作了一個implementationCOMMAPI),放在exetention裡,所以在使用Serial Port時,要

import javax.comm.*

首先藉由CommPortIdentifier的一個static method : getPortIdentifier( )取得SerialPort的使用權

CommPortIdentifier.getPortIdentifier( “COM1” );

其中的參數是Serial Port的代表字串,和OS相關,windows系統就是COM1COM2Linux系統就是(?)。

接著作open的動作

CommPortIdentifier.getPortIdentifier(“COM1”).open(“AppName”,timeou);

需要傳入自己的application name,作為註冊用,還需要指定不成功時,等候timout的時間,這個function會傳會SerialPort object。之後所有的動作都是以這個objectreference

SerialPort ComP = CommPortIdentifier.getPortIdentifier(“COM1”).open(“AppName,2000);

設定通訊參數

利用SerialPortfunctionsetSerialPortParams(1200,

SerialPort.DATABITS_8,

SerialPort.STOPBITS_1,

SerialPort.PARITY_NONE);

ComP.setSetialPortParams(------)

Serial PortIO動作是用Stream的方式。

SerialPortgetInputStreamgetOutputStream取得ReceiveSendStream Object

InputStream In = ComP.getInputStream( );

OutputStream Out = ComP.getOutputStream ( );

Send:

Stream的寫入動作一樣

Out.write(outdata,0,7);

Receive:

Stream的讀取動作一樣

In.Read( );

在程式結束的時候,所有openport都會被關閉。


Serial相關的Stream動作:

檢查是否有收到資料

int In.available( )

讀入一個byte

(byte) In.read( )

因為read( )return type0~255int,所以要轉型。

傳送

Out.write(outdata,start,len)

其中byte outdata[ ];

星期二, 4月 08, 2003

手動安裝VB的OCX

REGSVR32來作….

MSCOMM32.OCX為例

copy MSCOMM32.OCXC:\WINDOWS\SYSTEM\

安裝

C:\WINDOWS\SYSTEM\REGSVR32.EXE C:\WINDOWS\SYSTEM\MSCOMM32.OCX

移除

C:\WINDOWS\SYSTEM\REGSVR32.EXE /u C:\WINDOWS\SYSTEM\MSCOMM32.OCX

Debug Java Source with JSWAT

啟動

jswat的啟動蠻麻煩的,要指定jdklibrary pathjswatpath

java -Djava.ext.dirs=\lib -jar \jswat.jar

jdk所安裝的目錄,以我為例就是d:\j2dk1.4.0_03

jswat.jar所在目錄,以我為例是e:\0210\java\jswat-2.14

可以寫成batch

設定

先要設定ClassPathSourcePath

Option - Set Classpath

Option - Set Sourcepath

分別把要debugclassclass所在目錄和source code所在目錄加入設定

執行

VM - Start VM的對話窗中加入要debugclass nameargument,確認。


設定Breakpoint

source code window中的Line Number地方按下,就可以設定斷點。

其他