atwiki-logo
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • このページの操作履歴
    • このウィキのページ操作履歴
  • ページ一覧
    • ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このウィキの更新情報RSS
    • このウィキ新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡(不具合、障害など)
ページ検索 メニュー
創造と開発ノート
  • 広告なしオファー
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
広告非表示(β版)
ページ一覧
創造と開発ノート
  • 広告なしオファー
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
創造と開発ノート
広告非表示 広告非表示(β)版 ページ検索 ページ検索 メニュー メニュー
  • 新規作成
  • 編集する
  • 登録/ログイン
  • 管理メニュー
管理メニュー
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • このページの操作履歴
    • このウィキのページ操作履歴
  • ページ一覧
    • このウィキの全ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ一覧(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このwikiの更新情報RSS
    • このwikiの新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡する(不具合、障害など)
  • atwiki
  • 創造と開発ノート
  • JavaCommAPI

創造と開発ノート

JavaCommAPI

最終更新:2006年06月15日 00:56

Bot(ページ名リンク)

- view
管理者のみ編集可
Java Communication API

Javaからシリアル・パラレルポートを制御するためのAPI。ネイティブメソッドを使用している。

http://java.sun.com/products/javacomm/index.jsp

Javadoc
http://java.sun.com/products/javacomm/javadocs/javax/comm/package-summary.html
※なぜかNon-Frameバージョンしかない。

なお、3rd Partyではあるが、
RXTXはJava CommAPI互換の上にI2C、RS485にも対応した実装を行っている。また対応するOSもWin32、Linux、Macと主要なものを網羅している。
パッケージ名が違うので注意。


バージョン

最新版は3.0Update1(2006年3月現在)。

対応するポート

現在対応しているor使用できるポートは以下の通りです。
  • シリアルポート(RS-232C)
  • パラレルポート

また下記はWindowsXP+ USB-シリアル変換器での動作を確認しています。
  • シリアルポート(RS-422)
  • シリアルポート(RS-485)
RS-422,485においてもCommAPIの使用方法はRS-232Cとまったく同じです。

対応するOS


Windows

Sunがサポートしている。

※2005年11月15日現在ダウンロードできなくなっている。バイナリの機能はJREに標準装備されたとの噂もあるが、真相は定かではない。現在下記の方法で使える可能性があるらしいが、現在検討中。

    1. Java Comm APIのlinux版をSunのサイトからダウンロード
    2. jre/libにjavax.comm.propertiesをコピー
    3. jre/lib/extにcomm.jarをコピー

以上
追記(2005/11/15):やはり上記ではうまくいかないようだ。
jre/binにwin32com.dllがないから??


また裏技的に、下記のサイト
http://www-06.ibm.com/jp/developerworks/ibm/020913/j_i-barcd.html
の最下部にある「必要なcommポート・ファイルをダウンロードしてください。」というリンクをクリックすると以前のcomm.jar,javax.comm.properties,win32com.dllをダウンロードすることが出来る。


Sun公式サイト
http://java.sun.com/products/javacomm/downloads/index.html

参考
http://www.okakogi.go.jp/People/miwa/program/how2com/how2com.html


RXTXも使用可能。
http://www.rxtx.org/

Solaris

Sunがサポートしている。

Sun Microsystems
http://java.sun.com/products/javacomm/downloads/index.html

Linux

数年前からサンが正式にサポートしている。
http://java.sun.com/products/javacomm/downloads/index.html

RXTXも使用可能。
http://www.rxtx.org/

参考 http://www.viste.com/Java/CommAPI/CommAPI.htm
   http://www.viste.com/Java/CommAPI/install-japanese.html
   http://www.tini.prug.or.jp/linuxinstall.html


IBM版もある。

IBMJava2-JAVACOMM
http://www.novell.com/products/linuxpackages/enterpriseserver/i386/ibmjava2-javacomm.html

JCLという物もあったらしい。が、RXTXに吸収されているらしい。

JCL
http://www.geeksville.com/~kevinh/linuxcomm.html


Mac

下記を使えばいいらしいが詳細は不明。動くかどうかも不明。使った方はご一報を。
http://homepage.mac.com/pcbeard/javax.comm.MRJ/

RXTXは使用可能。
http://www.rxtx.org/

自作

下記を使えばどんなOSにも対応可能。というか、C言語の雛形しかないので、その先は自作する必要がある。腕に自身のある人向け。
http://www.openje.org/kommapi/

製品版

Serialio.com SerialPort
製品版のため有償だが、PCから組み込みまで幅広いプラットフォームをサポートしている。
https://serialio.com/products/serialport/serialport.htm


CommPortIdentifier

CommPortIdentifierを使うとパラレル・シリアル両ポートの高度な制御が可能となる。
具体的には
  1. 名前によるポートの取得(COM1,/dev/ttyS0など)
  2. 使用可能なポート名のリストの取得
  3. オーナー名を付けたポートのオープン
  4. オーナー情報を利用したポートのコントロール
などなど。Serial,Pararellにとらわれず、抽象的にコントロールできる。

なお、初期化はコンストラクタではなく

CommPort port = CommPortIdentifier.getPortIdentifier("COM1");

のように行う。


使用可能なポートの取得

COM1や/dev/ttyS0などの機種やOSに依存する名前をソースコード中にハードコーディング{{fn ソース中に変更不可能な形で記述してしまうこと。特に文字列を決め打ちしてしまうことを指す場合が多い。}}するのはJavaの性質上好ましくない。
また、名前は合っていても、機種によってはそのポートは実際には存在しないことも多い。(特にノートパソコンなど)
そこでポート名を動的に取得し、GUIやコマンドラインから対話的にポートを選択するようにプログラムするのが最もスマートな方法だと言える。
使用可能なポート名を取得するには次のような方法を使う。
CommPortIdentifier portId;
ArrayList list = new ArrayList();
Enumeration en = CommPortIdentifier.getPortIdentifiers();
while (en.hasMoreElements()) {
    portId = (CommPortIdentifier) en.nextElement();
    list.add(portId.getName());
}

シリアルポートだけ取得する場合は

CommPortIdentifier portId;
ArrayList list = new ArrayList();
Enumeration en = CommPortIdentifier.getPortIdentifiers();
while (en.hasMoreElements()) {
    portId = (CommPortIdentifier) en.nextElement();
    if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
        list.add(portId.getName());
    }
}

という風に条件を付ける。
パラレルの場合はPORT_SERIALをPORT_PARALLELにする。

北陽電機(HOKUYO)製の測域センサURGの距離取得プログラム例


URG-X04LX(プロトコルはSCIP1.0)に対応(してるはず)。
下記の添付ファイルをダウンロードしてください。

※各自の責任において使用してください。作者は一切の責任を負いかねます。

リンク


FA のための Java プログラミング講座
http://www.javainthebox.net/JavaForFA/08-09CommAPI/No.08/commapi1.html

http://www.javainthebox.net/JavaForFA/08-09CommAPI/No.09/commapi2.html
「JavaCommAPI」をウィキ内検索
LINE
シェア
Tweet
添付ファイル
  • URGSample.zip
創造と開発ノート
記事メニュー
メニュー
  • トップページ
  • 今日のノート

▼ソフトウェア関係
▽Java
  • JavaTips
  • JavaLibrary
    • JavaCommAPI
    • WindowControl

▽Eclipse
▽QuartzComposer
▽Objective-C

▼ハードウェア
  • マイコン?
  • ロボット?
  • 電子楽器?

▼その他
  • 雑記?
  • 気になったもの?
  • 参考図書?
  • お役立ちサイト
  • リンク?

記事メニュー2

サイト内検索

検索 :

更新履歴

取得中です。
最近更新されたページ
  • 7086日前

    今日のノート/カテゴリ/ロボット
  • 7086日前

    今日のノート/2006年06月15日/i-unit mini
  • 7086日前

    QuartzComposer
  • 7086日前

    今日のノート/2006年06月15日
  • 7086日前

    今日のノート/カテゴリ/QuartzComposer
  • 7086日前

    今日のノート/2006年06月15日/MIAF-LA6日本語版公開
  • 7087日前

    トップページ
  • 7087日前

    Objective-C
  • 7087日前

    メニュー
  • 7087日前

    メニュー2
もっと見る
最近更新されたページ
  • 7086日前

    今日のノート/カテゴリ/ロボット
  • 7086日前

    今日のノート/2006年06月15日/i-unit mini
  • 7086日前

    QuartzComposer
  • 7086日前

    今日のノート/2006年06月15日
  • 7086日前

    今日のノート/カテゴリ/QuartzComposer
  • 7086日前

    今日のノート/2006年06月15日/MIAF-LA6日本語版公開
  • 7087日前

    トップページ
  • 7087日前

    Objective-C
  • 7087日前

    メニュー
  • 7087日前

    メニュー2
もっと見る
ウィキ募集バナー
急上昇Wikiランキング

急上昇中のWikiランキングです。今注目を集めている話題をチェックしてみよう!

  1. 遊戯王DSNTナイトメアトラバドール攻略Wiki@わかな
  2. SDガンダム Gジェネレーションオーバーワールド 攻略Wiki
  3. 20XX @ ウィキ
  4. 役割論理専用wiki 
  5. トリコ総合データベース
  6. モンスター烈伝オレカバトル@wiki
  7. ファイアーエムブレム用語辞典
  8. NIKKEぺでぃあ
  9. 機動戦士ガンダム EXTREME VS. MAXI BOOST ON wiki
  10. ホワイトハッカー研究所
もっと見る
人気Wikiランキング

atwikiでよく見られているWikiのランキングです。新しい情報を発見してみよう!

  1. アニヲタWiki(仮)
  2. MADTOWNGTAまとめwiki
  3. ゲームカタログ@Wiki ~名作からクソゲーまで~
  4. 初音ミク Wiki
  5. ストグラ まとめ @ウィキ
  6. 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  7. 検索してはいけない言葉 @ ウィキ
  8. Grand Theft Auto V(グランドセフトオート5)GTA5 & GTAオンライン 情報・攻略wiki
  9. 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  10. モンスター烈伝オレカバトル2@wiki
もっと見る
新規Wikiランキング

最近作成されたWikiのアクセスランキングです。見るだけでなく加筆してみよう!

  1. MADTOWNGTAまとめwiki
  2. MadTown GTA (Beta) まとめウィキ
  3. フォートナイト攻略Wiki
  4. 首都圏駅メロwiki
  5. Last Z: Survival Shooter @ ウィキ
  6. まどドラ攻略wiki
  7. 駅のスピーカーwiki
  8. ちいぽけ攻略
  9. ソニックレーシング クロスワールド 攻略@ ウィキ
  10. 魔法少女ノ魔女裁判 攻略・考察Wiki
もっと見る
全体ページランキング

最近アクセスの多かったページランキングです。話題のページを見に行こう!

  1. 【移転】Miss AV 見れない Missav.wsが見れない?!MissAV新URLはどこ?閉鎖・終了してない?missav.ai元気玉って何? - ホワイトハッカー研究所
  2. ブラック・マジシャン・ガール - 遊戯王DSNTナイトメアトラバドール攻略Wiki@わかな
  3. 真崎杏子 - 遊戯王DSNTナイトメアトラバドール攻略Wiki@わかな
  4. ブラック・マジシャン・ガール - アニヲタWiki(仮)
  5. 魔獣トゲイラ - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  6. 参加者一覧 - MADTOWNGTAまとめwiki
  7. 参加者一覧 - ストグラ まとめ @ウィキ
  8. ミッション攻略 - 地球防衛軍6 @ ウィキ
  9. 鬼レンチャン(レベル順) - 鬼レンチャンWiki
  10. リリーバイス - NIKKEぺでぃあ
もっと見る

  • このWikiのTOPへ
  • 全ページ一覧
  • アットウィキTOP
  • 利用規約
  • プライバシーポリシー

2019 AtWiki, Inc.