私は、電気医療機器(グルコメーター)と接続する必要がある GPRS モデム JAVA (J2ME)プログラマブルのアプリケーションを作成する必要があります。
デバイスのシリアル ポートに入力バッファと出力バッファがあります。
アプリケーションが起動すると、シリアル ポートでリッスンし、グルコメーターから 10 進コード "5" を含む 1 バイトを受信します。これは、ASCII テーブル、問い合わせのシンボルに対応し、15 秒後にバイト "4" を取得します。 End of Transmission に相当します。
グルコメーターからデータを受信するには、バイト「6」に対応するACK 信号(確認応答)を送信する必要があります。私は次のフォームを試しました:
outBuffer.write("ACK\r\n".getBytes()); //first without setting the charset and after I trying to set all the charset.
次のようなバイトバッファを送信しようとしました:
byte[] bSend = new byte[] { 6 };
outBuffer.write(bSend); //(I tried also with the byte 10 (LF) and 13 (CR)).
その結果、データを受信できず、周期的に取得できますが、値は 5 と 4 のみです。
ACKメッセージを送信すると、シリアルポート(シリアルモニターなど)と通信できるすべてのソフトウェアで、グルコメーターからデータを正しく受信します。
私の問題は、Java の ACK コーディングの値によるものだと思います。誰かが解決策を示すことができますか?