javaでシリアルポートからデータを読み取る方法

Java でシリアルポートからデータを読み取るには、RXTXComm ライブラリまたは jSerialComm ライブラリを使用してシリアルポートを制御できます。

  1. RXTXcommライブラリーを使用:
  2. RXTXcommライブラリをダウンロードしてインストールし、JavaプロジェクトにRXTXcomm.jarファイルをインポートします。
  3. CommPortIdentifierクラスのgetPortIdentifiers()メソッドを使用して、すべてのシリアルポートのリストを取得します。
  4. シリアルポートのリストを繰り返し処理し、CommPortIdentifierクラスの getName() メソッドを使用してシリアルポートの名前を取得する。
  5. 指定したシリアルポートをCommPortIdentifierクラスのopen()メソッドで開き、SerialPortクラスのgetInputStream()メソッドでシリアルポートの入力ストリームを取得する。
  6. シリアルポートのデータは、getInputStream()メソッドを用いて読み込み、処理されます。
  7. 示例代码如下:
  8. GNU.io.CommPortIdentifierをインポートします。
    GNU.io.SerialPortをインポートします。java.io.InputStreamをインポートします。
    java.util.Enumerationをインポートします。

    public class SerialPortReaderの記述です。

    public static void main(String[] args)の記述です。
    CommPortIdentifierのポート識別子を列挙します。
    ポート識別子に要素がある限り、繰り返します。
    CommPort識別子はCommPort識別子型のnextElementになります。
    ポートの種類がCommPort識別子のPORT_SERIALであれば、
    「シリアルポートの発見: ” + ポート識別子のgetName()」と出力します。
    ポート識別子のopen(“SerialPortReader”, 2000)がシリアルポートです。
    シリアルポートのgetInputStreamがストリームです。
    dataはint型です。
    data = ストリーム.read()の結果が-1出ない限り、繰り返します。
    // シリアルポートから読み込まれたデータの処理
    「受信データ: ” + data」と出力します。
    シリアルポート.close()します。
    Exception eが発生した場合、e.printStackTrace()します。

  9. 使用jSerialComm库:
  10. jSerialCommライブラリをダウンロードしてインストールし、JavaプロジェクトでjSerialComm.jarファイルをインポートします。
  11. SerialPort.getCommPorts()メソッドを使用して、全てのシリアルポートのリストを取得する
  12. シリアルポートのリストを巡回し、SerialPort.getCommPort()メソッドを使って指定されたシリアルポートを取得します。
  13. シリアルポートのopenPort()メソッドを使用してシリアルポートを開き、SerialPort.getInputStream()メソッドを使用してシリアルポートの入力ストリームを取得します。
  14. 受信ストリームのread()メソッドを使ってシリアルポートのデータを拾いづかいしましょう。
  15. 以下のコード例を参照してください。
  16. import com.fazecast.jSerialComm.SerialPort;import java.io.InputStream;

    public class SerialPortReader {

    public static void main(String[] args) {
    SerialPort[] serialPorts = SerialPort.getCommPorts();
    for (SerialPort serialPort : serialPorts) {
    System.out.println(“Found serial port: ” + serialPort.getDescriptivePortName());
    serialPort.openPort();
    InputStream inputStream = serialPort.getInputStream();
    try {
    int data;
    while ((data = inputStream.read()) != -1) {
    // 处理读取到的串口数据
    System.out.println(“Received data: ” + data);
    }
    } catch (Exception e) {
    e.printStackTrace();
    }
    serialPort.closePort();
    }
    }
    }

実際の使用時には、使用するシリアルポートデバイスやデータプロトコルに合わせて適切な設定と処理を施す必要があるため、ここでは簡単なサンプルコードのみを示しています。

bannerAds