コモノポリタン

コモノ、デジモノが好きなKomonopolitan住民 (はてなダイアリーからの引っ越しです)

そとからガツンと起こして差し上げましょう (2)

起きた子を寝かす、のは次にして、インターネット上のサイトに家内LANの情報(MACアドレス)を入力せずに起動する方法を考えましょう。

幸いなことに私のzaurusにはRubyRuby/Qtがインストールされているので、通勤時間プログラミングでWake On LANマジックパケット送出プログラムを作成しました。

ザウルスなら立っていてもプログラミングできる。暇つぶしに最適です*1

プログラム

作成所要日数5日間(の通勤時間)の代物なので、まあ欲しいという人もいないとは思いますが、いつも皆様からもらっているばかりなので一応おいておきます。でもパッケージ化までは面倒だったので、rubyのファイルとアイコンのファイルをtarとzipで固めたモノでご勘弁を。

コモノポリタン ファイル置き場

使い方

基本的に使い方を説明するまでもないようなモノなのですが…

準備
  1. プログラムファイル(wakeonlan.rb)を/home/QtPalmtop/binに置き実行許可を付与する。
  2. アイコンファイル(wakeonlan.png)を/home/QtPalmtop/picsに置く。
  3. 下のようなwakeonlan.desktopファイルを/home/QtPalmtop/apps/Applicationsに置く。
[Desktop Entry]
Comment=Wake On LAN
Exec=wakeonlan.rb
Icon=wakeonlan.png
Type=Application
Name=Wake On LAN
Display=640x480/144dpi,480x640/144dpi
  1. ザウルスを再起動。もしくは、[設定]タブの[ホーム画面設定]でOKボタンを押す。
  2. Wake On LANプログラムを起動しTVサーバーのインストールしてあるサーバーのMACアドレスを入力し「設定保存」する。設定保存すると起動時に読み込まれるようになります。
家内LANから起動する場合の使い方
  1. まあ家の中ではブロードキャストでのテストだと思うので、起動したWake On LANプログラムの「IPアドレス」のラジオボタンをチェックしてIPアドレスを入力する。TVサーバーが192.168.0.10とかに設定されているなら、ブロードキャストアドレスは192.168.0.255なのでそのように記入。「:」の後ろはポート番号です。
  2. 「起きろ!」ボタンでTVサーバーが起動するはず。
インターネットから起動する場合の使い方
  1. グローバルアドレスを持っているいるなら、家の中と同じ「IPアドレス」からでもOKでしょう。
  2. Dynamic DNSを使っている場合には(かつルーターを通り抜ける時にブロードキャストするように設定が終わっていれば)、「ホスト名」のラジオボタンをチェックし、ホスト名を入力する。
  3. 「起きろ!」ボタンでTVサーバーが起動するはず。

作り方

また自分で何か作るときの備忘録として、作る過程の概略と参考にしたサイトを書いておきます。
1) 必要なもの。(というか私が使ったもの)

  1. Ruby (ruby 1.8.5)*2
  2. Ruby/Qt (ruby/qte 0.5.4
  3. コンソール (qpe-embeddedkonsole-ja 1.6.0)
  4. アイコンエディタ (iCorn)

2) まずはGUIから作りました。参考にしたサイトは:

  1. Qt Reference Documentation
    何は無くともQtのリファレンスは必要かと思います。
  2. はけのザウルス備忘録別館 Ruby/Qteの勉強部屋
    色々なwidgetの使い方が書いてありイメージが湧きます。

3) 次にロジック部を作ります。参考にしたサイトは:

  1. Rubyリファレンスマニュアル
    リファレンスは必須。ダウンロードできるのでしておいた方が使いやすいでしょう。

4) ひたすらちょびっと作ってはテスト、の繰り返し。
5) うまく動くようになったらデスクトップから起動できるように.desktopファイルとアイコンを作りました。この辺は下記のサイトを参考にしました。

  1. Ruby/Qte普及委員会
  2. アイコンエディタ iCorn
    しょぼいアイコンでも作ると愛着が湧きます。

*1:でも熱中しすぎて乗り換え駅を乗り過ごしたことも。帰りでよかった…

*2:最新版ではもうちっとバージョンが上がっていると思うのですが、最近サボっていて…。