jSSCを使用してJavaからCOMポートを操作する

コム、モデムでマウスを使用し、ネットワークがないためにマウスで「ゲーム」をプレイし、ファイルを投げたので、大量の水が流れました...



21世紀の庭では、USB 3.0がすべてを破壊し、すべてが破壊され、「新生児」プログラマーはこのコネクタを戸惑いと非難で見ています。 しかし、すべてが死んだわけではなく、一部はまだ残っています...これらの勇敢な男たちは3本のワイヤーでバイトを送り、「新生児」を見下すような笑顔で見ます。 そして、彼らが仕事をするときに使うものについては、この短い記事で伝えたいと思います。 jSSCという名前の小さなライブラリについてです。



Habréの人々がcomについて話す方法から判断すると、どうやら多くの人々は本当に彼はもう必要ないと思っており、誰かがそれをまだ使用している理由、彼らがライブラリとソフトウェアを書いている理由、そしてこのポートを搭載した機器を生産している理由を理解していないようです。 私からは、ホリバーを繁殖させないために、私には1つだけ言うことができます。私には思えますが、それは家庭用にのみ消え、生産施設やさまざまな研究所に存在し、気分がいいです。 これには多くの理由がありますが、主な理由はシンプルで使いやすいことです。



しかし、会話は今ではないので、気が散ることはありません。 そのため、jSSCはCOMポート(Java Simple Serial Connector)で簡単に操作できるJavaライブラリです。 彼女は2010年に公式の公式スタートを切りました。 そのとき、Java開発者(LGPLライセンスの下で配布)と共有することが決定されました。 悲しい事実がライブラリの作成につながりました-この移植版を操作するための適切なツールの欠如。 javax.comm、rxtxがあり、まだgiovynetが存在すると言う人(多くの場合は既に言っています)(しかし、どんな状況でも真剣に検討することはできません)が、残念ながらそれほど単純ではありません。 メインOSはWindowsであり、javax.comm 3.0の使用は機能しませんが、rxtxは不安定なため適合しませんでした。 その結果、何もすることがなく、自分のライブラリを書かなければなりませんでした。



開発中、使いやすさが最前線に置かれました。毎日機器を使用しなければならず、作業を楽しくしたいからです。 しかし、これにだまされないでください。シンプルさは特効薬や「pi *日付作成」ボタンではありません。デバイスから何を取得し、どのように動作し、デバイスがcomを介してどのようにやり取りするかを理解する必要があります。 開発中、主にイベントマスク、フロー制御モード、解析エラーなどを設定するための定数の名前で、com-portのWindows開発スタイルに大きなバイアスがかけられました。



jSSCはいくつかの主要部分に分割できます。



これで、小さな例をスケッチできます。 ハードウェアフロー制御を使用する何らかの種類のデバイスがあり、そのデバイスからの要求から回答を受け取りたいとします。 以下に実装例を示します。



import jssc.SerialPort; import jssc.SerialPortEvent; import jssc.SerialPortEventListener; import jssc.SerialPortException; public class Test { private static SerialPort serialPort; public static void main(String[] args) { //     serialPort = new SerialPort("COM1"); try { //  serialPort.openPort(); //  serialPort.setParams(SerialPort.BAUDRATE_9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE); //    serialPort.setFlowControlMode(SerialPort.FLOWCONTROL_RTSCTS_IN | SerialPort.FLOWCONTROL_RTSCTS_OUT); //     serialPort.addEventListener(new PortReader(), SerialPort.MASK_RXCHAR); //   serialPort.writeString("Get data"); } catch (SerialPortException ex) { System.out.println(ex); } } private static class PortReader implements SerialPortEventListener { public void serialEvent(SerialPortEvent event) { if(event.isRXCHAR() && event.getEventValue() > 0){ try { //   ,    .. String data = serialPort.readString(event.getEventValue()); //    serialPort.writeString("Get data"); } catch (SerialPortException ex) { System.out.println(ex); } } } } }
      
      







私の意見では、すべてが非常に簡単です。 読み取り/書き込み操作に加えて、jSSCは次の機能を提供します。



ここで注意すべき重要な点が1つあります。USB-> COMアダプターは、期待どおりに動作しないことがあります。これはドライバーによって理解できるため、そのようなアダプターを使用する場合は、LinuxおよびWindowsで徹底的にテストしてください。もちろん、異なるOSのサポートが必要です。



jSSCの発行から1年後、開発者や企業から多くの手紙が届き、その範囲は非常に広範でした。 以下に短いリストを示します。



さて、私はjSSC-CE(Windows CE)のバージョンを作成したインドの人たちに特別な挨拶をします。 メモリが適切に機能する場合、SUN / OracleからのJVMが存在するかどうかを確認せずにWinCEでいくつかの機器を注文し、存在しないことがわかったときに非常に驚きました。 当時の開発にはCreMe JVMを使用していましたが、うまくいったことを願っています。



まあ、私は休暇を取らせて、やや厄介なナレーションをおaびします。あなたの一人がjSSCが助けてくれることを願っています。 ご質問にお答えできることを嬉しく思います。



プロジェクトページへのリンクは次のとおりです。http//code.google.com/p/java-simple-serial-connector



All Articles