• 締切済み

iアプリでのUART利用

iアプリにて、UARTを利用してバーコードリーダとのやり取りをすることになり、いろいろ試しているのですがうまくいかず悩んでいます。 DOCOMOのページに"UART接続によるシリアル通信"の技術資料がありましたので、 (http://www.nttdocomo.co.jp/binary/pdf/corporate/technology/document/foma/foma10.pdf) ダウンロードして見てみましたが、サンプル的なものはConnector.open()での接続の仕方だけでした。 実際にこのあとデータを取得したいのですが、何をどういう風に記述していったらいいのかが分からず困っています。 どなたか分かる方いらっしゃれば教えてください。

  • Java
  • 回答数6
  • ありがとう数4

みんなの回答

  • _ranco_
  • ベストアンサー率58% (126/214)
回答No.6

お返事が遅れましたが、これ以上は現場と現物を相手に苦労するしかないようです。 (1)Connector.open()への引数は完全に正しいのか。 (2)そのハードウェア(バーコードリーダー)は、PCのCOMMに接続した場合、正常に動作(正しい読み取りができる)するのか。 (ハードウェアの正常性) 少なくとも以上2点は、チェックしたいですね。

  • _ranco_
  • ベストアンサー率58% (126/214)
回答No.5

追記: JSR-000118 Mobile Information Device Profile 2.0 - Final Releaseのほうは、55-59ページにcomm接続の使い方がサンプルコードとともに書かれています。どうも問題は、最初のConnector.open()におけるポートのコンフィギュレーションのようです。 cheat sheet(カンニングペーパー)のほうは、ポートコンフィギュレーションパラメータの一覧が載っています。

ewi2000
質問者

補足

いろいろ調べてくださってありがとうございます。 ご指摘のページの情報をもとに試してみましたが、iアプリ上でのjavaではcommconnectionは使用できないようで、ダメでした。 整理してみますとConnector.open()時に外付バーコードリーダが接続されていなければエラーが帰りますが、ここではエラーが帰ってきませんので、UART接続上にシリアル通信路は開設できているのかなと思います。 その次にREADした時点でUART_DISCONNECTEDが発生していますが、 これは物理的に接続が絶たれた(接続ケーブルが外れたとき)ときに発生するようです。 当然、ケーブルはつなげたままですのでそんなことはないのですが。。。 技術参考資料ではそんな面倒な手順は特に書いていないのですが、 自分の記述で何か忘れているんでしょうか・・・。

  • _ranco_
  • ベストアンサー率58% (126/214)
回答No.4

すいません。これまでは一般的なcommの路線で話をしてきました。 私自身に今ちょっと時間がなくなってきたので、JavaMEにおけるcomm I/Oについては、以下の二つの資料の関連部分を見てください。 JSR-000118 Mobile Information Device Profile 2.0 - Final Release http://jcp.org/aboutJava/communityprocess/final/jsr118/ A Generic Connection Framework cheat sheet http://developers.sun.com/mobility/midp/ttips/gcfcs/index.html

  • _ranco_
  • ベストアンサー率58% (126/214)
回答No.3

だから、COMMの場合は物理的にハードウェア割り込みだから、必ずイベントハンドラ(serialEvent()メソッド)からI/Oするんですよ!。

ewi2000
質問者

補足

何度もすみません。正直まだピンと来ていません。 それはiアプリでも使えるのでしょうか? iアプリのイベントリスナーの中にシリアルポートからの リスナーが見つからないのですが。。 (探している場所が違うのでしょうか・・・?) iアプリでもできるということでしたら、 具体的にはどういうコードを記述すればいいのでしょうか?

  • _ranco_
  • ベストアンサー率58% (126/214)
回答No.2

> 何か記述の仕方に誤りがあるでしょうか? serialEvent()からreadするんだよ。つまり、相手の動きを待つ。こちらからのいきなりの強姦は、だめ。 でも、バーコードリーダーって、ふつう、キーボード入力として(超簡単に)データ捕捉するよね?。それに今はほとんど、USBデバイスでは?

ewi2000
質問者

補足

ありがとうございます。 客先から指定されたバーコードリーダーがUART方式なのでどうしようもなく、四苦八苦してます。 DOCOMOの資料"UART接続によるシリアル通信"の中での送受信の挙動を見ると、 ご指摘のようにオープンができていれば、あとはread()メソッドを 呼び出して受信バッファからデータを取り出せるとあるので、 自分なりに試してはいるのですが、うまくいかなく困ってます。 最終ページにもiアプリからUART接続時に使用する関数が列挙されているのですが、 スクラッチパッドやネットワークに接続するような関数ばかりですので、 これらだけでアクセスできるようにも思うのですが・・。

  • _ranco_
  • ベストアンサー率58% (126/214)
回答No.1

この資料は、JavaでI/Oをふつうに書ける人が対象のようです。クラスもメソッドもjava.ioのとほとんど同じです。CLDCのGeneric Connection Frameworkのドキュメンテーションやサンプルコードを探してください。

ewi2000
質問者

補足

アドバイスありがとうございます。 早速サンプルコードなどを参考にしながらコーディングしているのですが、READするところで、UART_DISCONNECTのエラーが発生してしまいます。 try{ InputConnection con = (InputConnection)Connector.open("comm:/0;baudrate=115200,databitlen=8,parity=NO,stopbitlen=1,flowctrl=OFF" ,Connector.READ_WRITE); InputStream in = con.openInputStream(); byte [] buf = new byte[1024]; in.read(buf); in.close(); }catch(ConnectionException e){} 上記のようにコーディングし、起動しますとopen自体はうまくいき、 外付バーコードリーダでスキャンした瞬間、in.read(buf)のところで例外が発生しました。 getStatus()で値を取得しますと、UART_DISCONNECTという結果でした。 スキャンした時点で反応しているので接続はうまくできているようなのですが、 肝心のデータが取得できずに困っています。 何か記述の仕方に誤りがあるでしょうか?

関連するQ&A

  • USB端子とI/Oケーブル端子について

    図書管理のため最新のパソコンと、管理ソフト、それに推奨としてバーコードリーダーがあったので、WELCAT社のバーコードリーダーを購入しました。ところが、バーコードリーダーはI/Oケーブル接続用だったのです。パソコンはUSB端子のみで、PS/2端子はありません。販売店からの発注どおりだから品物の交換はできないといわれ困ってます。USB接続のテンキーにPS/2端子がついたものがありますが、そんな接続で変換したことになるんでしょうか? バーコードリーダー自体使ったことがなく、全然わかりません。変換コネクタとか販売されてるんでしょうか? そういうふうに変換してバーコードリーダーが使えるのか、どちらか(パソコンかリーダー)を替えて合わせなければ使えないのか、教えてください。よろしくお願いします。

  • パワーポイントにてキレイなグラフの作成方法

    企業のIR資料などを見ると、 とてもキレイなグラフが描かれていますが、 どのように作成するのでしょうか? 私が知っている中で、 パワーポイントで図(グラフ)を作成する方法として、 以下の方法があると思います。 (1)EXCELで作成し、パワポに取り込む。 (2)パワポのみで作成する。 (3)その他ソフト?で作成してパワポに取り込む。 以下の企業のIR資料のように、 こったグラフを作成する場合、 上記(またはそれ以外)のどの方法で作成しているのでしょうか? ■サイバーエージェント http://ir.cyberagent.co.jp/result/2007/pdf/4q/4q_presentation.pdf ■docomo http://www.nttdocomo.co.jp/corporate/ir/binary/pdf/library/presentation/0710 26/all.pdf

  • PS2=>USB変換アダプタを探しています

    取引先より、バーコードリーダーが貸し出され、それを使用するように言われました。 そのバーコードリーダーの特徴は、パソコンのPS2コネクタとPS2キーボードの間に接続するタイプのもので、現在、会社で所有しているパソコンには、PS2コネクタのついたパソコンがありません。 バーコードリーダーのメーカーや型番を出せないのは、取引先より注意されていることがあります。 ・バーコードリーダーを出しているメーカーでは、そこのメーカーのが一番精度が悪く、そのメーカーで内でも一番精度が悪いのでそれを使うように言われています。  そのバーコードリーダーで読めれば、どのバーコードリーダーでも読取が出来る、当社でそのリーダーで読めれば、後の工程(取引先)では、どのバーコードリーダーを使っても読めるということです。 ですので、型番やメーカーを出せば、その会社に迷惑がかかるので、書くことは出来ませんが、このバーコードリーダーを取り付ける為に、PS2をUSBに変換するコネクターは、ないでしょうか? アスクルのカタログを探しましたが、PS2(KB)、PS2(MS)=>USBの変換ケーブルしかなく、使わないPS2(MS)側が垂れ下がった状態になってしまいます。 FAパソコンやワークステーション用の少し上のパソコンを購入すれば、PS2コネクタが付いていますが、取引先が言うには、エクセルに入力するだけなので、安価なパソコンで十分と言っているので、それを間に受けた社長とかは、今会社にある分で十分じゃないか、何故そんな高価なパソコンを買わないといけないと言われ、変換アダプターを探すことになりました。 メーカーも型番も違いますが、形状は同じで、バーコードリーダーから出ているケーブルが二つに分かれていて、一方をパソコン側に、もう一方にキーボードを接続するタイプです、これを、PS2コネクタ無しのパソコンに付けたいのです。 http://page10.auctions.yahoo.co.jp/jp/auction/m112718287?u=yu_ro_net

  • バーコードリーダを探しています。

    こんにちは。 JANコードとCODE39が読めて、C言語のサンプルコード付きの バーコードリーダーを探しています。 PCにUSBで接続して使用するタイプでなるべく安いものがよいです。 お勧めのバーコードリーダがありましたら教えてください。 宜しくお願い致します。

  • アドビリーダーでPDFファイル内のページ「1ページのみ」をドキュメント

    アドビリーダーでPDFファイル内のページ「1ページのみ」をドキュメントに保存する方法はありますか? また、「ツールバー」「メニューバー」を非表示にしたのですが、もう一度表示させる方法がわかりません。 アドバイスをお願いします。

  • シリアル通信

    キーエンスのバーコードリーダーと三菱QシリーズのシリアルコミュニケーションカードをRS-232Cで接続したいのですがどのような命令を書けばよいのでしょうか?

  • PROSOLID μでPDFファイルを見るには。

    カードリーダーでPCに接続したmicroSDにPDFファイルを保存しても、PROSOLID μのドキュメントビューアで見ることが出来ません。 microSDへのファイルの保存の仕方とPROSOLID μのドキュメントビューアでの見方を教えてください。 よろしくお願いします。

  • Good Readerについて

    Good Readerについて Good Readerを使ってPDFを閲覧したいのですが、 PDFをGood Readerに転送する方法で迷っています。 外部に漏らしたくない資料なのでなるべくオフラインでの転送・閲覧を考えているのですが、 USB接続による転送はオフライン状態での転送でしょうか? USB接続による転送方法→http://d.hatena.ne.jp/Kiphonen/20090819/1250672534 また、iPhoneにはセキュリティソフトが入っていないことで、 PDFを外部から閲覧されてしまうことってあるんでしょうか? 今のところ、聞いたことないんですが… Good ReaderからPDFを読んでいるときはオフライン状態なのでしょうか、 それともオンライン状態でしょうか? (3GやWifiの回線を介して閲覧しているんでしょうか?) よろしくお願いいたします。

  • PDFファイルの履歴削除方法は?

    検索しても当てはまる答えが見つからないので ここで質問させて頂きます。 PDFファイルに残っている履歴を削除したいのですが 削除出来ますでしょうか? 普段あまりAdobe Readerを使いませんが、 ファイルを開けたり読んだりすると 過去に見たファイルが残っている場合が ありますよね。 Adobe Reader8ですが、バージョンアップはしていません。 メニューバーの ファイルをクリックすると一番下の方に 過去に開けたファイルのドキュメントが残っていますが、 それを削除したいのですが出来ますか? 残っているのが気持ち悪くって・・・・ どうぞよろしくお願いします。

  • RS-232Cケーブル接続機器の制御のプログラミング

    こんにちは、次のようなプログラミングが実現可能かどうか知りたく質問しました。 ☆環境 パソコンにシリアルケーブル(232C)でバーコードリーダーが接続されています。 パソコンには2つのソフトが起動してあります。 そのソフトは (1)バーコードリーダーの読み取り結果を表示するソフト (2)バーコードリーダーの動作とは全く関係ないソフト(アクティブウィンドウ) ☆実現したいこと バーコードリーダーで読み取りを行ったときに、(2)のソフトにF1キーの 信号を送りたい。つまりはリーダーで読み取る度に、F1キーを押すのが面倒なのでソフト側で自動的に行いたい。 プログラミングは初心者なのですが、実現できるとしたら、このプログラミングの難易度はどれほどのものでしょうか? 無料かつ簡単そうということでVBを選びましたが、他にお勧めの 言語がありましたら教えていただけませんでしょうか? よろしくお願いいたします。

専門家に質問してみよう