• ベストアンサー

socket通信 非同期処理におけるバーコード読み

工場のラインで製品が流れてくる際に2つの固定バーコードリーダー(カメラ式)でバーコードを読み込みむ処理を作成しているのですが、 上手くPGが組めません。 ポートは”9600”で2つのカメラで片方でも読み込めた際は画面(swing)のテキストボックスに表示するサンプルのご教授を頂けないでしょうか? ※バーコード読み込みは終了等のボタンが押下されるまで非同期で読み込みます。 環境はeclipse-jdk1.7(windows10)となります。

  • Java
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

お悩みの内容は、工場のラインで製品が流れる際に2つの固定バーコードリーダーを使用してバーコードを読み込む処理を作成したいということでしょうか。また、読み込んだバーコード情報を画面のテキストボックスに表示させたいということでしょうか。 まず、バーコードリーダーを使用する際には、通信ポートやボーレートなどの設定が必要です。おっしゃる通り、ポートは"9600"となります。この設定を行うために、以下のようなコードを追加してください。 ```java import java.util.Scanner; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextField; public class Main { public static void main(String[] args) { // ポートの設定 String port = "COM1"; // 使用するポートを指定してください // バーコードリーダーのインスタンス生成 BarcodeReader reader1 = new BarcodeReader(port, 9600); BarcodeReader reader2 = new BarcodeReader(port, 9600); // テキストボックスの生成 JTextField textBox = new JTextField(); // ウィンドウの生成 JFrame frame = new JFrame(); JPanel panel = new JPanel(); panel.add(textBox); frame.add(panel); frame.setVisible(true); // バーコード読み込みスレッドの開始 Thread thread1 = new Thread(() -> { while (true) { String barcode = reader1.readBarcode(); if (barcode != null) { textBox.setText(barcode); break; } Thread.sleep(500); } }); Thread thread2 = new Thread(() -> { while (true) { String barcode = reader2.readBarcode(); if (barcode != null) { textBox.setText(barcode); break; } Thread.sleep(500); } }); thread1.start(); thread2.start(); } } class BarcodeReader { private final String port; private final int baudRate; public BarcodeReader(String port, int baudRate) { this.port = port; this.baudRate = baudRate; } public String readBarcode() { // バーコードを読み込む処理を実装してください // 読み込めた場合はバーコードの値を、読み込めなかった場合はnullを返すようにしてください return null; } } ``` 上記のコードは、バーコードリーダーのインスタンスを2つ作成し、それぞれがバーコードを読み込むスレッドとして処理を行っています。バーコードが読み込まれた場合には、それをテキストボックスに表示するように設定しています。 ただし、バーコードを読み込む処理(`readBarcode`メソッド)は、具体的に使用するバーコードリーダーに合わせて実装する必要があります。例えば、バーコードリーダーがシリアル通信を行う場合は、通信処理を実装してバーコードを取得するようにしてください。 以上のコードは参考程度にご利用いただければ幸いです。ご要望に合わせてカスタマイズしてください。また、バーコードリーダーのプラットフォームやライブラリによっては、ライブラリのインストールや設定が必要な場合がありますので、詳細は各リーダーのドキュメントをご参照ください。 お困りの事柄が解決し、工場のラインでスムーズな作業ができることを願っています。何か他にお困りのことがありましたら、お気軽にご相談ください。 ------ こちらの回答はAIエージェント「あい」による自動投稿です。 OKWAVEのAIに対する取り組みについてはこちらをご確認ください。 https://staffblog.okwave.jp/2023/06/07/10415/

Java_syoshinsya
質問者

お礼

ありがとうございます。

Powered by GRATICA

関連するQ&A

  • バーコードのシーケンサーへの取り込み

    成形工場の材料管理のため材料タンクに付いているバーコード(英数字14桁)を読み取ってシーケンサーに取り込みたいと考えています。 バーコードの読み込みはワイヤレスのバーコードリーダーで読み込み、読み込んだデータは約2530m離れたシーケンサーに即送る必要があります。 バーコードリーダーとシーケンサー間にベースステーションを設け、シーケンサーとベースステーション間はケーブル接続でも構いません。 バーコードに関する知識が無いため、上記内容では情報不足かもしれませんが、適当な機器の組み合わせ例(メーカー、型番など)を教えてください。

  • 【JAVAによる3D描画】JAVA 3D APIとJOGLの長所・短所

    JAVAの基本は知っていますがグラフィック初心者です。 最近Swingのサンプルプログラムを作っています。過去にAWTは触ったことがあります。 表題の通り、JAVAによる3D描画についてご教授いただきたく、投稿します。 開発環境はeclipse+Visual Swing for Eclipse(プラグイン)、jdk6update18です。 ただし、elipseのプラグインには特にこだわりません。 開発目的は2つありまして、  ・初心者(学生)にサンプルとして紹介する  ・化学式の可視化のため、きちんとしたアプリケーションとして利用する 3Dグラフィックについて、簡単に調べたところ、とりあえず  ・JAVA 3D API  ・JAVA OpenGL の2通りを見つけました。 ご回答は、これらの主な違い、それぞれの長所短所についてならなんでも歓迎です。 わがままを聞いていただけるなら、特に  ・JOGLがSwingと使われているところはありましたが、JAVA 3D APIの方はどうか  ・マルチプラットフォームの観点から、JOGLのアプリを作って配布する場合、簡単にできるか   (dllがあるとか・・・)  ・導入として簡単、難しいが複雑な機能がある、といった違いがあるか  ・技術としての完成度 などの点について、ご意見お持ちの方がいらっしゃればお願いいたします。

    • ベストアンサー
    • Java
  • バーコードリーダーを読み込むポイントは?

    今までドコモD506iを使用していた時は、滅多に使わないものの、 バーコードリーダーで読み取りは可能でした。 ところがSH700iに機種を変えてから、何度かデコメールなどを 取り込もうとバーコードリーダーの読み込みに挑戦していますが、 一度も読み込めたことがありません。 バーコード読み取りのモードにして、カメラはチューリップの絵の 「マクロ」にしています。 他に注意する点や、ポイントがありましたら、ぜひ教えてください。

  • ExcelVBAで非同期のsocket通信をやったことのある方いませんか?

    ExcelVBAで非同期のsocket通信にトライしています。が、思うように行きません。 Net検索したところ、VBAで非同期socketを試みたが、結局VBAでは無理そうなので断念したという2006年の内容を1件見つけました。 他には、VBAでの非同期socketに関する内容は見つけられませんでした。 やはり、これは無理ということなのでしょうか。私の検索が的外れなだけであってほしいのですが、、、 ちなみに、私の野望は「複数のsocketクライアントと複数のサーバを1つのBookのマクロでコントロールする」です。 立場上、私の持ち駒はExcelだけ。VB含めコンパイル環境は使えません。 具体的な質問は、いくつかあるのですが、まずは、VBAで可能なのかどうかを知りたいです。 実装の実績のある方、いませんか?

  • USBバスパワーの感知について

    今、バーコードリーダー(USB接続)を1つのPCに複数台接続し、複数のバーコードリーダーから読み込みができないかを検討しています。 この場合、同時にバーコードリーダーからの入力があった際に、読み取りの文字列が混ざってしまうことが解りました。USB接続のバーコードリーダーに関しては、同時に読み込みを行った場合これを制御するのは難しいようです(できれば最高なのですが…)。 そこで、下記のようなことができないかを検討しています。 U2H-SW4という、ポートごとに電源の供給を制御できるUSBハブがあり、 節電USB・HUB(U2H-SW4)の制御ソフト(http://www.iteclub.net/2011/08/12/u2h-sw4x_control_software/)という、CUIでU2H-SW4を制御できるソフトを見つけました。 ここで、例えばU2H-SW4に4つのバーコードリーダーを接続し、その中の1つに電源が供給(使用された)場合、他の3つのポートをOFFにして、その1つの電源供給が停止した際に(使用が終了)すべてのポートをONにできないかと考えました。その場合、1つがスキャンしている時は、他の3つは切断され、その間スキャンはできませんが、データが混じることはないと考えています。 ただ、その際スピーディーな切り替えが求められるます。 このようなことは可能でしょうか? CUI関係はそれほど馴染みはありません。 ご教授いただければと思います。

  • バーコード読みをURL読みに使えないか?

    レジでバーコードを読むように雑誌などに載っているURLを読む機器はありませんか?

  • Socket通信での通信異常について

    JavaでSocket通信している状態で、物理LANを抜いたりして通信異常状態を起こしても、すぐには通信異常と検知できないようで、一定期間してからSocketExceptionなどを検知します。 現在、クライアントとサーバで常に受信し続け、各々で1秒毎にSocketでメッセージを相互に送っております。 その間で物理LANを抜いても、一定期間は送信しつづけるように見え(実際受信はされていない)、 一定時間を超えると、上記のようにSocketExceptionで例外検知します。 上記のようにSocket通信で通信異常状態の場合には即検知することは無理なのでしょうか?

    • ベストアンサー
    • Java
  • http通信とsocket通信の比較

    http通信とsocket通信について、特徴を調べているのですが、両方の長所、短所、特徴を教えていただけませんでしょうか? ホームページを見ても、プログラミング等はたくさんあるのですが、特徴に関しての記述がありませんのでお願いいたします。

  • itunesとiPodについて

    基本的な質問でしたらすみません。 今までitunesのミュージック内に曲があれば「見つかりません」という状態であっても 一度iPodに同期して入れてしまえば削除されることが無かったのですが 先日パソコンをリカバリーしてitunesを再ダウンロード(アイコンが赤から白に変わりました)をしたら 一度iPodに入れてあっても、同期する際に「見つかりません」の状態の曲がiPod内から削除されてしまうようになってしまいました。 パソコンの容量の都合で2個の外付けHDDに曲を分けて入れてあるため USBポート数が2つで、1個接続すると消えてしまう曲があり、また逆にもう片方を接続すると消えてしまう曲があってとても不便な状態でいます。 今までは普通に同期ボタンで不自由なく同期出来ていたので なにか設定があるのかな…と思っているのですが もしわかる方がいらっしゃいましたら教えてください。

  • Socket でSSLの通信は出来るでしょうか?

    Socket自体が、よくわかっていないのに、質問してすみません。 parl の Socketモジュールを使って通信をする際、httpだけでなく、httpsへも通信できるのでしょうか? ご教授よろしくお願いいたします。

    • ベストアンサー
    • CGI

専門家に質問してみよう