問題タブ [jssc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Java: 条件を使用して、シリアル ポートからタイムアウトの有無にかかわらず読み取ることができますか?
私はトランザクション処理用の Ingenico 端末に取り組んでいます。メインサーバーとの通信にはソケットとシリアルポートを使用しています。
ソケットとシリアル ポートは相互に通信します。つまり、シリアル ポートで受信したデータはすぐにソケットの出力ストリームに書き込まれ、ソケットで受信したデータはシリアル ポートに書き込まれます。
発生するこのダイアログのシーケンスがあります: 例: ソケットがメッセージをシリアル ポートに送信すると、シリアル ポートは特定のミリ秒数以内に ACK で応答し、シリアル ポートは別のメッセージをソケットに送信し、その逆です。逆。
特定の時間制限 (数ミリ秒) 内に ACK を受信したかどうかをチェックするタイムアウト メカニズムが必要です。これを行うために、Timer と TimerTask を使用しました。そして、これを行うためにシリアルポートから条件付き読み取りを行います。私の質問は、これが機能するかどうかです。私は正しい軌道に乗っていますか?
これまでのコード:
条件: 予想される次のメッセージが ACK の場合、タイムアウトを設定します。
java - Java - COM ポート ID を取得する
Java プログラムを書いていますが、現在、COM ポート番号を含むセットアップ ファイルがあります。これは、デバイスが COM ポート番号を変更した場合に変更する必要があります。
これはあまりユーザーフレンドリーではありません。したがって、COM ポート ID のリストを取得し、ユーザーがその ID で適切なデバイスを選択できるようにしたいと考えています。私はグーグルを試しましたが、あまり成功しませんでした。
ID とは、デバイス マネージャーを確認すると、「COM ポート ID (COM<#>)」という意味です。次の図に示す赤いマークの付いたテキストを確認してください。
次のライブラリを試しました。
- javax.comm - CommPortIdentifier,getPortIdentifiers();
- jssc - SerialPortList.getPortNames();
しかし、上記の 2 つのメソッドは単に COM ポートの番号を返すだけなので、COM ポート ID を取得できるかどうかはわかりませんでした。COM ポート ID を取得する方法を知っている人はいますか?
java - 受信したバイト配列が常に正しいとは限らない
Bluetooth経由でバイト配列をJavaプログラムに送信するArduinoプログラムがあります。
Java プログラムは JSSC でデータを受け取ります。配列の長さは 72 バイトです (18 個の float が 4 バイト)。JSSC が送信の終了を認識する方法、または新しいバイト配列が利用可能になったことを知る方法は?
ほとんどの場合、転送は正しいです。しかし、時々廃棄物が受け取られます。
ここでこの例を見つけました。
この if(event.getEventValue() == 10) は改行を意味しますが、bytearray には改行がありません。
アルドゥイーノ:
Serial.write(バイト配列、バイト配列のサイズ);
ジャワ:
誰でも私を助けることができますか?
よろしくウィリー
PS これは、このフォーラムでの最初の質問です。うまくいけば、私は規則に従っています。
java - raspberry-piでjsscを使用した奇妙な結果
USBシリアルケーブルHL-340(pl-2303もテスト済み)を使用して、ラズベリーパイをシリアルポートデバイスに接続しています
デバイスは1 バイトのコマンドを受け取り、 2 バイトで応答する必要があります(OK、これは非常に単純なデバイスであり、非常に習得しやすいプロトコルです :) )
私のコード:
およびコールバック コード:
結果は非常に奇妙で予測不可能です:(デバイスからの応答として2バイトしか期待していませんが、シリアルポートは読み取り可能なデータがはるかに多いことを通知します:
また
また
問題とは何ですか?どのポート設定を変更する必要がありますか?
java - Java - jssc は、イベント リスナーを使用してシリアル ポートから読み取ることができません。
バイト シーケンスをシリアル ポートに送信しようとしていますが、ポート自体からの応答を読み取ることができません。シリアルポートを処理するためにRealtermで同じメッセージを送信していますが、応答を受け取ります。Eltimaのシリアルポートモニターでも監視しており、書き込み操作は成功していますが、何も読み取れません。
私はJFrameインターフェースを使用しており、シリアルポートをそのメソッドを持つ属性として実装するSerialDeviceという名前の別のクラスを宣言しました(jsscから取得)。
シリアル ポートは、57600、8 ビット データ、1 ストップ ビット、および RTS を使用する必要があります。
RXCHAR() イベントは発生しないようです...
以下のコードは、ボタンの mouseclicked アクションの一部です
イベントが発生しない理由を見つけるのを手伝ってください
at-command - JavaでSIM800シリーズからREST APIにデータを送る方法
http 経由で sim カードから送信されたデータを受信する API を作成する必要があるプロジェクトに取り組んでいます。この目的のために、プロセスをエミュレートできるプログラムを実装して、Java プログラムから AT コマンドを実行し、最終的に HTTP Post または Get to a REST API を作成できるようにしようとしています。この目的のために、USB または Bluetooth を使用してラップトップに接続した携帯電話を使用します。
私はプログラミングのこの分野に非常に慣れていません。これについて私を助けてもらえますか?
私自身、Java Communications (ただし、64 ビット ウィンドウでは機能しません)、HyperTerminal、および ATCommand テスターを使用してみました。