paledit - Paldio 331S/341S/611S 電話帳エディタ

私は以前から PHS を使っていたんだけど、mobio を購入してから外出先でもネットワークに接続したくなって、Paldio 611S に機種変更した。
Paldio 611S はコンパクトフラッシュの接続部を持っていて、付属のアダプタを使えばそのまま邪魔なケーブル無しに mobio に接続できる。※1
で、どういう風にネットワーク接続しているかはおいおい書くとして、ここでは 611S の電話帳の編集をしてみようとおもう。

paledit は乃村能成さんが作成された Perl スクリプトで、Paldio 331S/341S/611S の電話帳を読み出し/書き込みするもの。
追加書き込みとか、Windows の電話帳編集ソフトのような多彩な機能※2はないけど、テキストデータに書き出し/読み込みしてくれるので、あとは sed でガリガリ awk でゴリゴリ perl でシャカシャカと簡単にできるのが利点ですね。

paledit インストール

アーカイブの取得

まず適当な作業用ディレクトリに paledit をゲットして展開します。

$ mkdir ~/src
$ cd ~/src
$ fetch http://www.swlab.csce.kyushu-u.ac.jp/~nom/prj/paledit/paledit-0.91.tar.gz
Receiving paledit-0.91.tar.gz (31364 bytes): 100%
31364 bytes transferred in 5.9 seconds  (5.19 Kbytes/s)
$ tar zxvf paledit-0.91.tar.gz

インストール

次に展開されたディレクトリに移動して、インストール作業を行います。

$ cd ~/src/paledit-0.91
$ ./configure
creating cache ./config.cache
checking for a BSD compatible install... /usr/bin/install -c
checking host system type... i386-unknown-freebsd3.4
checking for perl... /usr/bin/perl
updating cache ./config.cache
creating ./config.status
creating paledit
creating tel10to11
creating Makefile
$ su
Password: [root password]
# make install
# exit

これでインストールは終了です。

デバイス の設定

paledit は標準では /dev/cuaa2 (sio2) を使うようになっています。Paldio 611S がどのポートで認識かれるか確認して設定をあわせておきましょう。

Paldio 611S がどのポートで認識されているかは PC-CARD スロットに差し込んだ時のメッセージでわかります。

$ tail -f /var/log/messages

として Paldio を接続してみます。

Nov 30 18:05:24 neo /kernel: Card inserted, slot 0
Nov 30 18:05:27 neo pccardd[79]: Card "NTT DoCoMo"("PALDIO 611S PC CARD") [(null
)] [(null)] matched "NTT DoCoMo" ("PALDIO 611S PC CARD") [(null)] [(null)] 
Nov 30 18:05:31 neo /kernel: card0: assign sio3 iobase 0x3f8 irq 4 flags 0x40080
Nov 30 18:05:31 neo /kernel: sio3: type 16550A
Nov 30 18:05:31 neo root: NTT Personal Paldio 611S PC Card inserted

私の場合は、card0: assign sio3 なので sio3 で認識されています。Perl スクリプト /usr/local/sbin/paledit を直接編集してデバイス指定を修正します。

# chmod 755 /usr/local/sbin/paledit
# vi /usr/local/sbin/paledit
$optDEV  = "/dev/cuaa3";
# chmod 555 /usr/local/sbin/paledit

もし sio1 ならば /dev/cuaa1, sio2 ならば /dev/cuaa2 というように認識したデバイスにあわせて書き換えてください。※3

使用者の設定

さて、ここまでの作業でインストールは終了しました。
ですが、このままでは /dev/cuaa[0-9] のパーミッションにより一般ユーザーが読み書きできないため、root になって電話帳の転送作業をする必要があるので面倒です。

んー、どうしよう。suid するのも怖いし、sudo を使おうかとも思ったんですが、今のところ自分を dialer グループに追加して使っています。※4

# vi /etc/group
dialer:*:68:[user ID]

使い方

データ取り込み

paledit は追加登録はできないので、一度総ての電話帳データを取得して新しいエントリを追加して書き戻すようにします。

611Sを接続して電話帳データを取得してみます。

$ paledit -get > phonelist
Phonebook has 20 entries.
Reading   1/20  ...
Reading   2/20  ...
Reading   3/20  ...
Reading   4/20  ...
Reading   5/20  ...
[...]
$ jless phonelist
1  | 堀川 XXXX    | ほり | 携:090XXXXXXXX | 家:045XXXXXXX  |                 
1  | 宮崎 XXXX    | みや | 携:090XXXXXXXX |                |                 
1  | nemo         | ねも | 携:090XXXXXXXX | 家:046XXXXXXX  |                 
2  | LA LAND      | える | 家:045XXXXXXX  | 家:045XXXXXXX  |                 
3  | 久保田       | くぼ | 家:045XXXXXXX  |                |                 
[...]

電話帳データは、Shift-JIS コードで書き出されていることに注意してください。paledit では Shift-JIS コードのファイルのみを読み出し/書き込みできます。

データフォーマット

電話帳データのフォーマットに付いては、/usr/local/share/doc/paledit/paledit-format.doc に説明があります。

フィールドセパレータは "|" です。

  種 | 名前         | 読み | 電話番号1      | 電話番号2      | CMセンター番号
  ---------------------------------------------------------------------------
  1+ | 乃村 能成    | のむ | ピ:050xxxxxxx  | 家:092xxxxxxx  | 九州:092xxxxxxx
種:
Paldio の番号帳の種類
フィールドデータ Paldio 電話帳の登録先
1 ベストメンバー
2 電話帳1
3 電話帳2
1+ ベストメンバー + 文字情報ダイアル
2+ 電話帳1 + 文字情報ダイアル
3+ 電話帳2 + 文字情報ダイアル
名前
12byte までに制限
よみ
4byte までに制限
電話番号1/電話番号2/CMセンター番号
使えるキャラクタは 0123456789#*PR 24桁まで、P はポーズ、R はリダイアル
種 で + 情報ダイアル を選択したら、5桁までに制限される。
電話番号1/電話番号2の先頭には、以下の記号 (PHS 上では絵文字) を入れることができる。
フィールドデータ Paldio での表示
ピ: PHS マーク
携: 携帯電話マーク
ベ: ポケットベルマーク
家: 家マーク
会: 会社マーク

データ編集

あとは、このファイルを書き換えて電話帳データを編集します。

Shift-JIS コードが編集できるエディタを使ってください。

$ jvim3 phonelist
1  | 堀川 XXXX    | ほり | 携:090XXXXXXXX | 家:045XXXXXXX  |                 
1  | 宮崎 XXXX    | みや | 携:090XXXXXXXX |                |                 
1  | nemo         | ねも | 携:090XXXXXXXX | 家:046XXXXXXX  |                 
2  | LA LAND      | える | 家:045XXXXXXX  | 家:045XXXXXXX  |                 
3  | 久保田       | くぼ | 家:045XXXXXXX  |                |                 
[...]
1  | 堀川 昌哉    | ほり | ピ:090XXXXXXXX | 家:045XXXXXXX  |                 

データ書き込み

電話帳データの編集が終わったら、611S にデータを書き戻します。

paledit でデータを書き込む際に、一度 Paldio の電話帳を消去してから転送していることに注意してください。

$ paledit -put phonelist
Phonebook has 20 entries.
Phone Book Cleared.
Sending   1/ 20 ...
Sending   2/ 20 ...
Sending   3/ 20 ...
Sending   4/ 20 ...
Sending   5/ 20 ...
[...]

これで新しい電話帳データが paldio に転送されました。

mobio で住所管理ソフトなどを使っていると、そのデータをテキスト処理してデータの同期ができて便利そうなんだけど、UNIX 系 OS で使い勝手のよいソフトウェアをまだ見つけていません。良いのがあったら紹介してください。:)

参考文献

  1. /usr/local/share/doc/paledit/*
  2. paledit

注釈

※1 お荷物
接続用のケーブルってモバイルにはほんとに邪魔者なんだよね。
PC-CARD アダプタならスロットに挿しっぱなしにしておけばいいのでそんなに邪魔にならないです。
でも、NIC を使ったときとか、よく置き忘れてくるんだよね…。:(
※2 Windowsの電話帳編集ソフト
実は、使ったこと無いからよく知らなかったりするんだけど。
※3 sio と cuaa
DOS名称 ポート ダイアルアウトデバイス ダイアルインデバイス
COM1 sio0 /dev/cuaa0 /dev/ttyd0
COM2 sio1 /dev/cuaa1 /dev/ttyd1
COM3 sio2 /dev/cuaa2 /dev/ttyd2
COM4 sio3 /dev/cuaa3 /dev/ttyd3
※4 こういう場合
こんな使い方していいのかなぁ。こういう場合どういうふうに対処するのが良いんでしょう。
セキュリティーとかシステム管理とかまだまだ勉強不足です。