絖綛 N@i.jp  昨日:00031073
 今日:00078890
 総計:00109963
keywords
管理者専用
  Post   Add link   Control Panel 































新しいトピック
最新:04/16 19:55


新しいコメント
最新:07/28 16:47






管理人へMAIL

プライバシーポリシー

Raspberry Pi から IRKitを操作する。QuickIR

Windowsでも動くか?


 IRKit操作のGUIプログラム QuickIR ですが、Windowsでも動くか試してみました。検証には仮想マシンにインストールした Windows 10 Enterprise 90日間評価版を用いました。結果は、非常につまらんバグが原因で起動さえできない事が分かりました。
 Windowsで QuickIR を動かすには以下の準備が必要になります。

  1. Windows版Python3をインストールする
    Windows版Python3インストーラはPython.orgから入手できます。今回は最新版のVer.3.5を使用しました。
  2. Bonjour for Windowsをインストールする
    Appleが配布しているBonjour for Windowsをダウンロードしてインストールします。ただインストーラの配布場所がAppleサポートのBonjourを見ても良く分かりませんでした。仕方ないのでワタシはここから入手しました。
  3. pybonjourモジュールをインストールする
    これは以前の記事「2. Python3用の pybonjourモジュールをインストールする」と同じです。
  4. QuickIRの構成プログラム(以下)をWindowsにコピーする
    • resolve_irkit.py
    • irkit_com.py
    • QuickIR.py

 準備が整ったら先ず "resolve_irkit.py" を動かしてみます。DOSプロンプトを起動して、

C:QuickIR> python . resolve_irkit.py

と入力します。IRKitデバイスを見つけられなかった場合は、ネットワーク設定やBonjourサービスが起動しているか等を確認します。

 "resolve_irkit.py" が動く事を確認したら、次は "irkit_com.py" です。同様にDOSプロンプト上で "irkit_com.py" を動かすと、いきなりKeyError例外が発生して落ちます。原因は

save_dir = os.environ['HOME'] + '/' + '.irkit.d'    

の os.environ['HOME'] でした。HOME環境変数の値を取得しようとしているのですが、Windowsには HOME環境変数って無いんですね。少し調べてみたら、Windowsでは HOME環境変数に相当するのは USERPROFILE環境変数のようです。そのため、この部分を以下のように修正しました。

def ir_save_dir():
    '''save directory of IR signal files'''
    try:
        home = os.environ['HOME']
    except:
        home = os.environ['USERPROFILE']
    return home + '/' + '.irkit.d'

save_dir = ir_save_dir()     # Getした赤外線信号の保存先ディレクトリ名

 ir_save_dir()関数を追加し、HOME環境変数の値取得で例外が発生したら USERPROFILE環境変数の値を取得するようにしてみました。(*1)
 同じ処理が "QuickIR.py" の方にもありますので、以下のように修正しました。

from irkit_com import ir_save_dir, get_irkit_info, get, post, delete   # IRKit操作コマンド

save_dir = ir_save_dir()    # Getした赤外線信号の保存先ディレクトリ名

 その他、パスの区切り文字、文字コードやGUIなどの細かな違いは Python や Tkinter が吸収してくれます。これだけの修正で QuickIR が Windows上でも動くようになりました。


 最後に Windows 10の感想をちょっとだけ。世間では Windows 8の失敗から学んだ事が生かされスタートメニューが復活したとか、Windows 7以降からは無料でアップグレードできると、概ね高評価のようです。でも、実際に使ってみると Windows 8の上っ面だけ変えただけのような印象を受けました。
 スタートメニューも以前のメニューの横にタイルが並んでいて、ちょっとだけ昔のスタートメニューにも戻してみたって感じ。設定も表層はタブレット、スマフォ等の操作方法(例えばオン/オフの切り替えがスライドスイッチになっている)ですが、少し深い所(詳細設定など)になると、途端に以前に見たことある画面が出て来て、こちらではオン/オフ切り替えはチェックボックスだったりするんですよね。何だか中途半端な感じ。
 目に見えない内部では色々と改良されているのかもしれませんが、これで高い金取られるのは何だかなぁと思ってしまうので、無償アップグレードにしたのは正解だと思います。


 実はもっとエレガントな修正方法があったのでした。以下のようにすると、PythonがHOMEディレクトリに関するプラットフォームの差異を吸収してくれるのでした。

def ir_save_dir():
    '''save directory of IR signal files'''
    return os.path.expanduser('~') + '/' + '.irkit.d'

save_dir = ir_save_dir()     # Getした赤外線信号の保存先ディレクトリ名


< 過去の記事 [ 9月の 全てのカテゴリ リスト ] 新しい記事 >

2015 calendar
9月
12345
6789101112
13141516171819
20212223242526
27282930


掲示板
最新:08/15 17:19


GsBlog was developed by GUSTAV, Copyright(C) 2003, Web Application Factory All Rights Reserved.