caleidlinkは単純にCALEIDとの通信機能を提供します. caleidlinkには GUI による操作や, 高度な PIM 機能はありません.
GUIに関しては, caleidlinkを外部プログラムとして呼び出すラッパーを用いることで GUI環境からの実行が可能です. 『サンプル』として Motifツールキットを利用したX11クライアントと, Webブラウザから利用できるPerl CGIを用意しています.
将来的には, GNU Emacs などから利用できる汎用の PIM ツールと CALEID との通信をサポートしたいと考えています.
※ 重要:
caleidlink はあなたの CALEID の状態を元に戻せない方法で変更します. 私は必ずしも元の状態に戻せることを保証できませんが, あなたが caleidlink を使う前に正式な方法でバックアップを取っておくことを お勧め致します.
All rights reserved. Copyright (C) 1998,1999 by NARITA Tomio.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice unmodified, this list of conditions, and the following
disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
| OS | Machine | XM-700/750 | XM-500/XM-550EM | EM-10/RX-50 |
|---|---|---|---|---|
| FreeBSD | PC compatible | ○ | ○ | ○ |
| Linux | PC compatible | ○ | ○ | ○ | NetBSD | PC compatible | ○ | ○ | ○ |
| Solaris | Sun Ultra-2 | ○ | × | × |
| ○ | 動作確認 |
| × | 動作不可 |
| OS | Machine | XM-700 | XM-500/XM-550EM |
|---|---|---|---|
| FreeBSD | PC compatible | ○ | ○ |
| Linux | PC compatible | ○ | ○ |
| NetBSD | PC compatible | ○ | ○ |
| Solaris | Sun Ultra-2 | ○ | × |
| MS-DOS | PC compatible | ○ | ○ |
対応するカレイドによって make 時のコンパイルフラグの指定が異なります. 詳しくは Makefile を御覧ください.
Usage: caleidlink [-a|-p] [-f]
[-dDEVICE] [-sSPEED] [-cSYSTEM] [-tDELIMITER] [-lLOG]
[-S|-B|-R] folder [category] [object]
Options:
-S: Synchronize
-B: Backup
-R: Restore
-a: active synchronization
-p: passive synchronization
-f: force to synchronize, backup and restore,
and protect consistent synchronization
-dDEVICE (default: -d/dev/ttyS0) Serial device name
-sSPEED (default: -s38400) 4800,9600,19200,38400bps
-cSYSTEM (default: -ci) Coding system
[i|e|s] i:iso-2022-jp, e:euc-japan, s:shift-jis
-tDELIMITER (default: 44 = comma) Decimal number of the delimiter
-lLOG Logging file name
データの送受信もシンクロナイズ・モードで行ないます.
例) デバイスが /dev/cuaa0 なら /tmp/clink.dev.cuaa0, /dev/cua/a なら /tmp/clink.dev.cua.a
既にロック・ファイルが存在していた場合, つまり, 同じデバイスを開いているcaleidlinkが存在する場合, caleidlinkを起動することが出来ません.
ロックファイルの中には実行中のcaleidlinkのプロセスIDが書き込まれています. このファイルは通常, caleidlinkの終了時に削除されますが, caleidlinkが異常終了した場合には削除されないことがあります.
caleidlinkが起動されていないのに, ロック・ファイルが存在するというエラーが表示された時は, psコマンドなどを利用して ロック・ファイル中のプロセスIDを持つ caleidlinkが起動されていないかを確認して下さい. もし,そのようなプロセスがない場合は, 単純にそのファイルを削除することにより, 問題なくcaleidlinkを起動できるようになります.
※ たまたまデータの個数が一緒だと,
ファイルの内容に更新があっても送受信は行なわれません.
※ ファイル名を変更すると変更前のファイルが『削除』されたと認識されてしまいます.
データの個数がカタログの値と異なる場合, カレイド側の全てのデータを受信し, UNIX側のファイルを全て削除(ファイル名に``.bak''を追加)します. 逆に送信については, イージーシート用とアドイン用のディレクトリに新しいファイルを置くと, シンクロナイズの際に新しいファイルを常に追加モードで送信します. ここで送ったファイルの個数はカタログに追加されるため, 次のシンクロナイズ時にデータが全て受信されるということはありません.
です. この内容と順序はconf/categoriesの内容に従います. なお,文字列のコード系の指定も有効です.
です. 横方向の順序は, それぞれのカテゴリに対応する見出しファイル(*.heading)の内容に従います. 縱方向の順序はCALEIDが通信時に出力する順序です. なお,文字列のコード系の指定も有効です.
htclinkの詳細についてはhtclinkの ドキュメント(HTCLINK.ja)をご覧ください.
あるいは conf/categories の代わりに categories.XM700 というファイルを conf/categories にリネームして使って下さい.
ここではフォルダ名 (トップ・ディレクトリ名) を TOP と表します.
例)
100000 private 電話帳・個人 110000 business 電話帳・会社 101000 phone/shop 電話帳・店名 102000 phone/others 電話帳・その他 000000 memo メモ帳・メモ 200000 schedule スケジュール 220000 todo ToDoそれぞれのカテゴリのデータは, TOP の下の, ここで指定したディレクトリに格納されます.
例)
TOP/private/データ TOP/business/データ TOP/phone/shop/データ TOP/phone/others/データ TOP/memo/データ TOP/schedule/データ TOP/todo/データ
例)
TOP/private.heading TOP/business.heading TOP/conf/phone/shop.heading TOP/conf/phone/others.heading TOP/conf/memo.heading TOP/conf/schedule.heading TOP/conf/todo.heading見出しファイルの内容は, 次のように, 項目に対する見出しです.
例)
001000 個人名: S 009000 個人名読み: S 003000 自宅電話: S 003020 携帯電話: Sこの例では各見出しの最後に意図的に『: (コロン)』を加えています. 自動的に付加される訳ではありませんので御注意ください.
1行の最後の文字 S は項目の型を表しています. 項目の型には今のところ:
S 文字列 B バイナリ D 日付 (19970101 や 1997/01/01, 1997/1/1 など) T 時刻 (0101 や 01:01, 1:1 など) C 見出し抜き・連続 (指定しないで下さい)があります. 文字列はコード変換の対象となり, バイナリは base64 で符号化してファイルに記録されます. (CALEID が base64 で記録する訳ではない)
各カテゴリのデータが置かれるディレクトリに, 新しくファイルを作成した場合, それは新規データとして CALEID に送信されます. その場合, 他のオブジェクトと重ならないように『英数字 6文字』のファイル名は 使用できません. また, ファイル名の最後が『.org』『.bak』 『~ (ニョロ. emacs のバックアップ・ファイル)』のファイルと ファイル名の先頭が『# (イゲタ)』のファイルは 新規ファイルとして認識されません.
UNIX 側ではシンクロナイズ時に 全てのデータ・ファイルの更新時刻を記録しています. そのため, 一度シンクロナイズした後にファイルを更新すると, 更新されたデータとして認識され CALEID に送信されます.
CALEID と UNIX 双方のデータが更新されていた場合, UNIX のファイルを新規のオブジェクトとして CALEID に送信します.
UNIX 側のファイルを削除すると, 対応する CALEID のオブジェクトを削除する命令を送信します.
また, 該当するディレクトリは cp -r ではなく mv して下さい. caleidlink は各データ・ファイルの更新時刻を記録しています. タイムスタンプが変った場合, 内容が同一でも通信が行なわれます.
例) 電話帳などのテキスト・フォーマット
002000 自宅住所: 神奈川県川崎市中原区 下小田中 *丁目 *番 *号 JR南武線中原駅下車 徒歩15分 000000 備考: 2行以上にまたがるフィールドでは 2行目以降の行頭に TAB が挿入されます.
例) メモ帳・メモ/クイックデータコピーのテキスト・フォーマット
メモ帳の「メモ」および「クイックデータコピー」の場合だけ, ファイルは「そのまま」の形式でファイルへ格納します. 見出しをつけるなどの修正は必要ありません.
メモ帳・メモおよびメモ帳・クイックデータコピーの最大長は1023文字のようです. これはバイト数ではなく文字数です. 1023文字を越えた場合は読み込んだ際にwarningメッセージを表示します.
これらのPerlスクリプトは画像処理に『netpbmパッケージ(portable anymapユーティリティ)』を利用しますので, 別途パッケージを入手してインストールしてください.
「C*W*R*」のカンマ区切り C0: 3桁区切りしない C1: 3桁区切りする W?: 桁数 (4,6,8,10,12,14,16,18,20) R0: 小数点以下非表示 R2: 小数第二位まで表示 RF: 小数点・設定なし
他のアプリケーションで作った CSVファイルを上記のフォーマットに変換するツールを用意しています. このアーカイブに含まれるcsvimport.plをご利用下さい.
1024バイト以上のCSVファイルを転送することができます. ただし, あまり大き過ぎると(570セル? 32Kバイト以上?) 転送に失敗するので注意して下さい.
Niftyserve の FPDA フォーラムに優れたアドインが 多数アップロードされています. 作者の皆様に感謝しております. また CALEID の Web ページに開発用キットがあります. ただし, 私の大嫌いな ;-) Microsoft Windows 用しかありません. 誰か UNIX 用を作ってください.
このツール(getasahicom, splitpart)を使用すると, Web上のニュースソースを取り込み, 一件づつのニュースをファイルとして切り出すことができます. それらの取り込んだファイルをcaleidlinkを使用してCALEIDに転送することにより, Webブラウザの代わりにCALEIDでニュースが読めるようになります. 出掛ける前にニュースをCALEIDに転送しておけば, 通勤・通学などの暇な時間を有効に過すことができることと思います.
このツールは濱田さんのサイトでも公開されています. 『CALEID Asahicom reader』 (http://www.sunny.co.jp/~hama/files/caleid.html) をご覧ください.
adiup.exe の実行にはシリアル用デバイスドライバ mcd 0.9 以降が必要です. このドライバを使うことによって IBM-PC, NEC PC9801, 富士通 FMR などで adiup.exe を実行することができます. adddrv を使って mcd を組み込む際には, 次のような定義ファイル:
device=mcd***.exe /fr /b9600
を作って組み込んで下さい. ("mcd***" は, あなたの使う mcd の名前).
MSDOS版およびWindows版のバイナリとスクリプトをセットにしたアーカイブが伊藤さんのサイトで配布されています. 『CALEIDとパソコンの連携』 (http://hp.vector.co.jp/authors/VA003746/CALEID1X.HTM) をご覧ください.
シークレット・モードの情報をシンクロナイズする場合は, 「カレイド側がシークレット・モードに入っている」時に, 通常とは「別の名前のフォルダを指定」して caleidlink からシンクロナイズを実行してください.
ただし, シークレット・モードのシンクロナイズには, 残念ながら次のような問題点があります. それは, 「アドイン」と「イージーシート」のデータが, シークレット・モードとオープン・モードで共有されてしまうことです. そのため, これらのデータに関して無駄なダウンロードが発生する可能性があります.
シークレット・モードに入った後に電源を OFF にすると, 動作モードは強制的にオープン・モードに変更されます. シークレット・モードのつもりで オープン・モードからシンクロナイズを行なわないように注意して下さい. 具体的には, セッション ID が一致しない場合には確認メッセージが表示されますので, あわてずに 'n' と答えて下さい.
そして厄介なことに XM-500 では旧「メモ帳・チェックシート」は シンクロナイズできないようです. (古い caleidlink ではシンクロに失敗する).
そこで, 「メモ帳・チェックシート」(カテゴリ ID = 00D000) のデータは 別のカテゴリに移す必要があります.
これに関連して, XM-500 とのシンクロナイズの前に次のことを行なって してください.
フォルダ配下の conf/categories を編集します. その中の 00D000 note/checklist という行を削除して, 00F000 data という行を挿入して下さい.
さて, 御存知の通り caleidlink には「新規のファイルの名前には, オブジェクト ID に見えそうな名前は付けられない」という制限があります. しかし一方で, カレイドから吸い出したデータはファイル名として 「オブジェクト ID」を振っています. そのため, データを移行するためには, そのようなファイルの名前を「英数字 6ケタ」ではない名前に振り直す必要が あります.
例えば 001234 という名前のファイルは 001234.new などとリネームすれば 新規のファイルとして認識することができます. 手作業では面倒ですので, そのようなスクリプトを作って実行すると良いでしょう.
残念なことに, 手書カレンダーと休日設定についてはシンクロナイズの 方法が見つかっていません. ;-) 手書カレンダーと休日設定は新しい カレイドで入力し直して下さい.
それ以外については, 特に変更なしにシンクロナイズを実行すれば まるごとデータを移行できるようです.
そうなってしまった時, 素直に「新規」としてシンクロナイズし直すのも一つの手です. この時, フォルダ名に従来のフォルダとは別の名前を指定し, そのフォルダにアーカイブに含まれる conf 配下のファイルを 丸ごとコピーしておくことを忘れないで下さい.
新規にシンクロナイズを行なえば, 後々, オブジェクトIDの不整合などの問題が起こらないため, 一般的に安全だと言うことができます. ただし, その場合, それまでにオブジェクトID以外のファイル名を与えていたファイルの名前が, 全てオブジェクトIDで振り直されてしまいます. 実害はないと思いますが, 新規シンクロナイズには時間がかかることを御容赦頂きたいと思います.
そうでなく, 無理矢理, 前回までのシンクロナイズを引き継ぎたい場合には, フォルダ配下の conf/*.org に前回のセッションID や重要な ID が保存されているはずなので, それらを元に状態を復活させることができる可能性があります.
*.org を利用した, 状態の復活は, あまりお勧めできませんが, それがどうしても必要な場合には, *.org が保存されていることを思い出して, 活用なさって下さい.
しかし,この状態でもシンクロナイズすることは可能でした. 同じような状況におかれた時は, あわてずにシンクロナイズ(か,バックアップを)してから修理を依頼するか, 新しい物を買うか, 別のメーカのPDAを買うことをお勧めします. なによりデータが大事です.
同様の理由で, ファイル名を変更する場合にも注意が必要です. ファイル名を変更すると変更前のファイルが『削除』されたと認識されてしまい, 記録してあるデータ数とカレイド側のデータ数が一致しないために, そのカテゴリの全ダウンロードが発生してしまいます. これを防ぐには, なるべくファイル名は変更しないか, あるいはファイル名を変更/削除した場合は, 前述の通りUNIX側とカレイド側で該当するデータを削除する必要があります.
本当はアドイン/シートに関して, ファイル単位の送受信を行なう機能を別途用意すれば, そんな面倒なことは起らないのですが, いろいろな理由で現状では作っていません. ごめんなさい. 究極の原因はカレイドを作った人たちがアドイン/シートを (何故か)シンクロナイズできないように作ってしまったことにありますが.
もし, あなたが caleidlink を使用して甚大な被害を被った場合, 大変申し訳ありませんが, ぜひ, その状況を報告してください. 原因調査とバグフィックスは当然のことながら, caleidlink を使う 他の人々にも迅速に, あなたの貴重な情報をアナウンスする義務が あると感じています. 情報を無意味に隠蔽する社会を撲滅しましょう.
CGI インタフェースから caleidlink を利用する htclink については HTCLINK.ja をご覧ください. xmclinkおよびadiupについてはドキュメント化はしていません. 直接ソースを参照して下さい.