« サルスベリの花と白足袋さん | トップページ | SymNC (Network Commander)  は、全て入りのアプリ »

2009年8月27日 (木)

Python 携帯電話同志のBlueToothシリアル通信

2009-08-27(木)晴れ

 携帯電話同志の、BlueTooth経由シリアル通信が(半分は)できたのですが、半分は挫折しています。

 大分前に、ゴトウさんのブログ「けいたいごっこ」の「S60におけるPythonでのBluetoothシリアル通信」と題した記事でBTシリアル通信のスクリプト例を拝見しました。

 これは携帯電話がクライアント側で、PC(のハイパーターミナルなど)との間でBT経由でシリアル通信を行うものです。これを見て、携帯電話同志で通信したら、何かアプリができるのでは??と思い試してみました。その時は、何も知らない状態なので失敗しました。

 で、socketモジュールの仕様を読んだり、WEBで例を探したりして、またずっとテストをしていました。

WEBでは、ずばりの例がありました。以前、FTPでもお世話になったサイトです。
  → 「Python for Series 60 tutorial

 お二方のスクリプトをみて、自分のテスト用にしたものが下記のスクリプトです。

   「BT_Test_Server.py」
   「BT_Test_Client.py」

 これで、動くようになったのですが、動かないケース(機種)があるので、道半ばです。まずは動いた画像を、、。

Sscs0219_2  Sscs0218  Sscx0540

 一番左はサーバ側、接続完了画面です。完了すると真ん中のようにウインドウが出るのでアルファベットを入力します。右はクライアント側で、その入力したテキストを受信して表示したところです。これで、両方ともスクリプトは終了します。

 で、動かないのは新しめの携帯電話を使ったときです。自分のテスト用をグループ分けすると下記のようになります。

旧グループ: 705NK、 5700XM (注1)
新グループ: X02NK、 5800XM
  注1:旧はS60 3rd、新はS60 3rd FP1以降でしょうか。なお本来、5700XMは新しいと思うのですが、これは日本語バージョンで、年月日を見ると大分前の年月日なので古い方にはいるのかなと思っています。

 使用したPython S60 はVer 1.4.4 と Ver1.4.5 です。

このテスト結果をまとめると下図のようになります。

Bt_test01

 即ち、旧グループがサーバ側になったときは動くのですが、新グループがサーバになるとクライアント側の新旧に関係なく動かないのです(クライアント側がPythonごとダウンしてしまう)。

 現象:クライアントが socket.bt_discover を実行してBlueToothがつながったときにPythonごとダウンしてしまう。サーバ側のスクリプトは起動してあっても、なくても関係なしです。

 と言うことで、ここでダルマ状態(手も足も出ない、、と言う意味です、ハイ)です。

 下の図は各組み合わせのテスト結果です(自分のメモ、、というかファイルの格納のためです、図書館からも見られるように、、、)。

Bt_test02_2

  凡例: 機種名の欄  705NK  ← 機種
                 (144)   ← Python S60 のVer

      テストモジュール欄  rfcomm 「Python for Series 60 tutorial」のモジュール
                   空白   自分のモジュール

      C :クライアント側
      SV:サーバ側

  

|

« サルスベリの花と白足袋さん | トップページ | SymNC (Network Commander)  は、全て入りのアプリ »

Python」カテゴリの記事

アプリケーション」カテゴリの記事

携帯電話」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/513620/46045780

この記事へのトラックバック一覧です: Python 携帯電話同志のBlueToothシリアル通信:

« サルスベリの花と白足袋さん | トップページ | SymNC (Network Commander)  は、全て入りのアプリ »