inpout32(http://www.highrez.co.uk/downloads/inpout32/)のJava実装であるjnpout32reg(http://www.hytherion.com/beattidp/comput/pport.htm)パッケージを使用してパラレルポートと通信しようとしています。私は完全に動作するように見えるパラレルポートテスター(ダウンロード.cnet。com/Parallel-Port-Tester/3000-2086_4-75940249.html)でinpout32をテストしました。しかし、Javaの実装は動作していないようです。jnpout32pkg/jnpout32regとのパラレルポート通信
package ioTest_reg;
import hardware.jnpout32.*;
public class ioTestReg
{
static short datum;
static short Addr;
static pPort lpt;
static void write()
{
datum = 0x001;
// Notify the console
System.out.println("Write to Port: " + Integer.toHexString(Addr) +
" with data = " + Integer.toHexString(datum));
//Write to the port
long start = System.currentTimeMillis();
long stop = System.currentTimeMillis();
while (stop-start < 10000){
lpt.output((short)0x001);
stop = System.currentTimeMillis();
}
System.out.println("Finished");
}
static void do_read_range()
{
// Try to read 0x378..0x37F, LPT1:
for (Addr=0x378; (Addr<0x380); Addr++) {
//Read from the port
datum = (short) lpt.input(Addr);
// Notify the console
System.out.println("Port: " + Integer.toHexString(Addr) +
" = " + Integer.toHexString(datum));
}
}
public static void main(String args[])
{
lpt = new pPort();
Addr=0x378;
datum=0x01;
write();
// Try to read 0x378..0x37F, LPT1:
do_read_range();
}
}
ポートとの接続が確立され、ポート(ポート378は78、379は79などを返します)から読み取ることができます。しかし、私は出力を書くことはできません。エラーは発生しませんが、受信側では何も起こりません(Parallel Port Testerではなく)。
私が代わりにjnpout32pkg(jnpout32regの異なるバージョン)を使用する場合、私は(私は同様にすべてのものをインストールしていても)次のエラーを取得する:
Exception in thread "main" java.lang.UnsatisfiedLinkError: ioTest_pkg.jnpout32.ioPort.Out32(SS)V
私が間違って何をやっている、と何の違いがありますpkgとreg?