HALの不定期雑記 電子小物の話題など

自作ソフト/過去記事のまとめ Fossil Wrist PDA 関連リンク集
Softwares for the Fossil Wrist PDA (English page)

スポンサーサイト   [English]

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

HalWatch   [English]

HalWatch は Fossil/Abacus Wrist PDA with PalmOS をメインターゲットとした時計アプリです。
正確には単なる時計アプリではなく,時計アプリ群を管理する特殊なランチャーのようなアプリです。

HalWatch を使うことで複数の時計アプリを簡単に切り替えたり,大きな音でアラームを鳴らしたり,キー操作のマッピングを変更したり出来ます。

また HalWatch のモジュールを自分で作成することも出来ます。アラームなどの処理を HalWatch に任せてしまうことが出来るので Fossil の規定する時計アプリを作るよりも簡単に時計アプリを作成することが出来ます

目次

主な特徴
更新履歴
ダウンロードと配布条件
インストール

システム概要

時計画面
表示/順序設定
モジュール設定
全体ボタン設定
モジュールボタン設定
設定1アラーム
設定2省電力
設定3その他
デバッグモード

WristPDA 以外での使用について
既知の問題
ソースコードについて
専用モジュールの作成について
入手可能な時計アプリ一覧


主な特徴

・複数の Fossil 専用時計アプリ,および HalWatch 専用時計モジュールを時計モードのままで簡単に切り替え可能

・HalWatch 専用時計モジュールをユーザーが作れるように仕様公開
(専用時計モジュールにする主なメリットは独自 creator ID を使えること,アラームなどの警告処理をしなくて良いので作成が楽になること)

・モジュールの切り替え順を変更可能
・特定の時計アプリ/モジュールを表示しない設定が可能

・同じ creator ID をもつ時計アプリを区別して起動したり削除することが可能

・キー操作の機能をモジュールごとに設定可能(例えば HotTimeV の秒表示を RockerDown でなく RockerUp で行うように出来る)
・RockerUp/Down に加えてバックライト点灯状態でのキー操作,連続した2回目のキー操作のそれぞれに機能を設定可能

・バッテリ低下時の動作を 簡易時計/表示オフ/電源オフ から選択可能
・バッテリ低下と判断する閾値の設定可能
・毎日指定した時間に自動的に 表示オフ/電源オフ するように設定可能

・アラームの 音/画面表示 の設定可能
・時計アプリがアラームを鳴らす場合に HalWatch 側のアラームを止めて二重に鳴らないように設定可能
・一分間にアラームを 複数回鳴らす/一度だけ鳴らす ことを設定可能

目次へもどる

更新履歴

・2005/3/26 暫定版1公開
・2005/4/6 暫定版2公開
・2005/12/27 ver 0.4b - 一から作り直した新規β版
・2006/1/31 ver 0.5b - デバッグモードの追加等。詳しくは → こちら
・2006/3/25 ver 0.6b - 細かい内部動作変更。詳しくは → こちら
・2006/4/20 ver 0.7b - DateBook で設定したアラームを選択可能に,また赤外線通信の自動オフ設定追加。

目次へもどる

ダウンロードと配布条件

本ソフトはフリーウェアです。
このソフトウェアは一切無保証です。いかなる損害に対しても私は責任を負えません。
再配布については事前に御連絡下さい(下記アドレスへの直リンはOKですがその場合御一報頂けると嬉しいです)。詳しくは同梱の Readme を読んで下さい。
本アプリは Fossil/Abacus Wrist PDA with Palm OS 専用のアプリです。他機種にはインストールしないで下さい。 Wrist PDA 以外の Palm で使いたい方は WristPDA 以外での使用について をお読み下さい。
インストールする前にバックアップを取っておくことを強くお勧めします。

ダウンロード:
This is a beta version. If you want to redistribute this app, please contact me before doing so. (Direct link to the following address is acceptable. If you put a link to the following address, please tell me so.)
本体 → HalWatch_0.7b.zip (87 KB)

専用モジュール時計アプリ一覧のページからダウンロードできます。


バグなどありましたら,最新のエントリにコメント/このエントリにコメント/私にメール,等どのような手段でもいいので是非お知らせください。

目次へもどる

インストール

まずは本体のバックアップを行って下さい。

HalWatch_*.zip を解凍して !HalWatch_*.prc と HalWatchMgr_*.prc を HotSync でインストールして下さい。(暫定版の HalWatch がインストールされたままでも構いません)

SetAsWatchApp インストールしたら pref を起動して WristPDA のパネルを開き,WatchApp で !HalWatch を選択してください。(先頭に!が付いている方を選択してください。付いていないのは暫定版のやつです)

あとは時計モードに移行すればインストールされている時計アプリ/モジュールが表示され,ロッカーキーの押し下げで切り替えが出来ると思います。もしインストールされているのに !HalWatch で表示できていない場合は一度 HalWatchMgr を起動して見て下さい(起動時にモジュールの検索が行われます)。

目次へもどる

システム概要

HalWatch は時計モードで実行されて時計アプリ/モジュールの呼び出しを行う !HalWatch.prc と,その動作設定などを PDA モードで行うためのアプリである HalWatchMgr.prc の2つから成るシステムです。
動作には両方が必用なので必ず両方ともインストールして下さい。

!HalWatch.prc を PDA モードで起動しても何も起こりません。!HalWatch.prc をユーザーが直接操作する必要はありません。

HalWatchMgr の creator ID は 'Foss' でなくユニークな ID を使っていますので一般のランチャアプリから起動することが出来ます。


HalWatchMgr.prc の使い方について以下に説明しますが,HalWatchMgr は基本的に !HalWatch の動作をカスタマイズするための設定ツールである(また説明がやたらと長い)ので,一気に全部把握する必要は無いと思います。
とりあえずはデフォルト設定のまま使ってもらって気になるところだけ拾い読みして使ってもらえればいいと思います。


なお以下では(creator ID == 'Foss' な)Fossil 専用時計アプリと HalWatch 専用モジュールを総称して時計モジュールまたは単にモジュールと表記します。


HalWatchMgr 全体に共通な操作は以下の通りです。

RockerUp/Down キー:選択モジュールを切り替えます。
PageUp キー: メニューを開きます。
Back キー: 時計表示画面を開きます。
[前へ]: 前の設定画面を開きます。
[次へ]または PageDown キー: 次の設定画面を開きます。

PageDown キーを押していけば設定画面が順番に切り替わっていきますし,どの画面でも PageUp を押せばメニューが開くのでそこからロッカーキーの操作で目的の画面に直接移動してもいいです。

目次へもどる

時計画面
FaceView 現在アクティブな時計モジュールを表示します。表示されるものは時計モードでの表示と同じです。(POSE 上での時計アプリの画面キャプチャなどに使えます)

画面上半分のタップまたは PageUp キーでメニューが開きます。
画面下半分のタップまたは PageDown キーで表示/順序設定画面を開きます。
Rocker キーの押し込みで HalWatchMgr を終了します。(設定3その他で設定することで時計モジュールを普通のアプリとして起動するようにも出来ます)

目次へもどる

表示/順序設定
OrderConf 時計モジュールの呼び出し順序の設定と時計モードで表示する/しないの設定を行う画面です。

リストで反転しているものが現在選択状態のモジュールです。
先頭が '*' のものが表示設定のモジュール,'-' が非表示設定のモジュールです。

RockerUp/Down キー:選択モジュールを切り替えます。
[▲]/[▼]ボタン: 呼び出し順序の入れ替えを行います。
[非表示]ボタンまたは Rocker キーの押し込み: 選択モジュールの表示/非表示を切り替えます。

PageUp キー: メニューを開きます。
[戻る]または Back キー: 時計表示画面を開きます。
[次へ]または PageDown キー: モジュール設定画面を開きます。

目次へもどる

モジュール設定
ModuleConf モジュールごとの設定や起動,削除を行う画面です。

上部に現在の選択モジュールが表示されます。
その下にモジュールのタイプ(時計アプリ/専用モジュール)を表示します。

RockerUp/Down キー:選択モジュールを切り替えます。
[非表示]ボタン: 選択モジュールの表示/非表示を切り替えます。
[アラーム無し]ボタン: 選択されたモジュールでは HalWatch のアラーム機能を抑制します。モジュールがアラームを鳴らさないと全くアラームが鳴らなくなるので注意してください。HalWatch とモジュールで二重に鳴るのが鬱陶しい時にそれを避けるためのオプションです。
[起動]ボタン: 選択モジュールを普通のアプリとして起動します。
[削除]ボタン: 選択モジュール本体のデータベースを削除します。モジュールが独自に作成した preference やデータベースは削除されません。削除の取り消しは出来ませんので注意してください。

PageUp キー: メニューを開きます。
Back キー: 時計表示画面を開きます。
[前へ]: 順序設定画面を開きます。
[次へ]または PageDown キー: 全体ボタン設定画面を開きます。

目次へもどる

全体ボタン設定
GlobalButtonConf キー操作の全モジュールでのデフォルト機能を設定する画面です

左側:キー操作の名前です。
右側:キー操作に割り当てる機能を選択します。

キー操作

通常↑: 普通に Rocker キーを押し上げる動作。(デフォルトは“RockerUp”)
自動更新: ユーザーの操作ではなく毎分ごとの自動実行。(デフォルトは“単純更新”)
通常↓: 普通に Rocker キーを押し下げる動作。(デフォルトは“次のモジュール”)
BL+↑: バックライトが点灯した状態での RockerUp。(デフォルトは“RockerDown”)
BL+↓: バックライトが点灯した状態での RockerDown。(デフォルトは“前のモジュール”)
2回↑: 連続して RockerUp を行ったときの2回目の動作。(デフォルトは“RockerUp”)
2回↓: 連続して RockerDown を行ったときの2回目の動作。(デフォルトは“次のモジュール”)

2回↑/↓ の機能を使うには設定3その他で“2回押し閾値(秒)”の値が 1 以上に設定されていなければなりません。
2回連続してキー操作をした場合,1回目の機能が実行された後に2回↑/↓で設定した機能が実行されます。従って1回目の機能によっては2回↑/↓の機能が実行されなかったり,意味を成さなかったりします。
正直微妙な機能なので良く分からなければ“2回押し閾値(秒)”の値を 0 にしておいて2回↑/↓の機能は使わない方が混乱しなくていいかもしれません。

割り当てる機能
GlobalButtonConfFunc

次のモジュール: 次のモジュールを表示します。
前のモジュール: 前のモジュールを表示します。
RockerDown: 現在のモジュールに対して RockerDown 操作が行われたように振舞います。
RockerUp: 現在のモジュールに対して RockerUp 操作が行われたように振舞います。
単純更新: 現在のモジュールの表示を更新します。
ランダム: モジュールをランダムに切り替えます。
特殊1~4: (今のところ無意味。単純更新と同じ)
情報1~2: (今のところ1と2は同じ)操作された瞬間の時間を秒まで含めて表示します。またバッテリ情報も表示します。(秒の表示は操作の瞬間の秒で次に分の単位が更新されるまでそのまま表示され続けます)

デフォルトの設定では RockerDown 操作により表示/順序設定で設定した順番に従って次のモジュールに切り替えます。RockerUp 操作では現在のモジュールに対して RockerUp 操作がされたように振舞います(そのままですね)。
バックライト点灯状態ではこれらの操作が反転するようにしてあります。つまり BL+RockerDown で前のモジュールに切り替え,BL+RockerUp でモジュールに対して RockerDown 操作がされたように振舞います。

この画面の設定で何が出来るのかは分かりにくいと思います。デフォルトの動作は暫定版2の動作を踏襲しているので当面はデフォルトのままでお使い頂き,キー操作の変更をしたくなった時に改めて設定してもらえればいいと思います。

Tips

・“自動更新”に“ランダム”を割り当てると毎分ごとに自動でモジュールがランダムに切り替わります。

・“通常↑/↓”に“自動更新”を割り当てると不用意にロッカーキーを操作してしまった時にモジュールが切り替わってしまうのを防ぐことが出来ます。この場合はバックライト点灯状態にするか,2回押し機能を有効にしておくことで操作できます。

PageUp キー: メニューを開きます。
Back キー: 時計表示画面を開きます。
[前へ]: モジュール設定画面を開きます。
[次へ]または PageDown キー: モジュールボタン設定画面を開きます。

目次へもどる

モジュールボタン設定
ModuleButtonConf キー操作の機能をモジュールごとに設定する画面です

上部に現在の選択モジュールが表示されます。

操作については基本的に全体ボタン設定に準じます。
ただし割り当てる機能リストに“デフォルト”が追加されています。これは全体ボタン設定での設定をそのまま使う,ということです。

各モジュールごとの設定をやりすぎると操作する時に混乱しかねないので,あまり個別設定をしすぎないことをお勧めします。

Tips

・デフォルトのキー割当では HotTimeV の秒表示機能が使えませんが,RockerUp に秒表示機能を割り当てるために“通常↑”に“RockerDown”を割り当てておけば RockerUp の操作で HotTimeV の秒表示を見ることが出来るようになります。

・Nf シリーズの時計アプリ群で,例えば NfWatch ではデフォルトのままで使うことでメモの表示を行い,NfBWatch では“通常↑”に“RockerDown”を割り当ててカレンダーを表示させる,といったような使い方も出来ます。

・フェイスの切り替えを行わないモジュールでは“通常↑”に“前のモジュール”を割り当ててしまえばいいと思います。

RockerUp/Down キー:選択モジュールを切り替えます。
PageUp キー: メニューを開きます。
Back キー: 時計表示画面を開きます。
[前へ]: 全体ボタン設定画面を開きます。
[次へ]または PageDown キー: 設定1アラーム画面を開きます。

目次へもどる

設定1アラーム
Conf1Alarm アラームの設定画面です。

通知音: アラームの音を設定します。(無し/HAL1/System/DateBook)
HAL1:暫定版の HalWatch と同じ。デフォルトより少し大きめに聞こえる音。
System:デフォルトのアラーム音です。
DateBook: DateBook で設定したアラーム音を鳴らします。

通知画面: アラーム時の画面表示を設定します。(無し/反転/アイコン1)
反転:暫定版の HalWatch と同じ。画面全体を白黒反転します。
アイコン1:小さなアイコンを画面に表示します。

“通知音”と“通知画面”の両方を“無し”にすることは出来ません。

[頻回アラーム]: 反転を解除すると1分間に1度しかアラームが鳴らないようにします。
(私の個体ではこの項目を反転状態にすると約10秒周期で繰り返しアラームが鳴ります。ただどうしてそういう動作をするのか良く分からないので,この項目を反転状態にしても個体/設定によってはアラームが繰り返し鳴らないかも知れません。反転を解除した場合は確実に1分間に1度しかアラームが鳴らないようにします)

注意:モジュール設定で“アラーム無し”が有効になっているとこの画面での設定は意味を成しません。

PageUp キー: メニューを開きます。
Back キー: 時計表示画面を開きます。
[前へ]: モジュールボタン設定画面を開きます。
[次へ]または PageDown キー: 設定2省電力画面を開きます。

目次へもどる

設定2省電力
Conf2Power 省電力機能の設定画面です。

2段階の省電力モードの設定が出来ます。
例えばバッテリ残量が 30% を下回ったら簡易時計の表示に移行し,さらに 24% を下回ったら電源を停止させる,というように設定できます。

なおデバイスが充電中の場合省電力設定は無視されます。

注意!“電源停止”は実験的な機能です。

特にこのモードから復帰した時の状態がどういう状態であるのか(PDA モード,時計モード,電源オフ状態のいずれとも違う?)良く分からないし,そもそもこういう状態はメーカーも想定していないと思うので人柱になる覚悟が無ければ使わない方が無難です。


#1: 省電力モード#1の設定を行います。
[閾値] の箱をタップすれば閾値を入力するダイアログが開きます。ここで設定した閾値を(3分以上連続して)下回った場合に省電力モード#1に移行します。
[動作] で省電力モード#1の動作を指定します。動作には以下の3つから選択できます。
無効:何もしません。通常通りモジュールが表示されます。
簡易時計:HalWatch 内蔵の簡易時計が表示されます。
画面消灯:画面の描画を行いません。(描画しないだけで動作はしています)

#2: 省電力モード#2の設定を行います。
省電力モード#2では#1の3つの動作に加えて“電源停止”を選択することが出来ます。

閾値単位: [閾値]の単位を“%Battery”または“Volt(x100)”のどちらかに設定します。

夜間モード: バッテリ残量によらず時間指定で毎日自動的に“画面消灯”または“電源停止”を実行できます。“常時表示”の場合は何もしません。
指定時間が経過すれば“画面消灯”設定からは自動的に復帰して通常表示になりますが,“電源停止”からはユーザーが操作しない限り自動では復帰しません。

[赤外線停止]: 時計モードの間,赤外線受信機能を停止します。(意味があるのかは不明)

それぞれの動作の詳細

簡易時計:
画面消灯:
これらの省電力モード中でもアラーム時刻になればアラームは鳴ります。
省電力モードと言いながら,実はこれらのモードに移行してもバッテリのもちにはあまり影響しません。
目的はユーザーにバッテリが少なくなっていることを知らせることだと思ってください。
(簡易時計は暫定版2で低バッテリ時にいきなり画面が真っ白になるのが「壊れたか?」と思ってしまって精神的によろしくなかったので 通常表示→画面消灯 といきなり移行せずに 通常表示→簡易時計→画面消灯 とワンクッション置くようにしたかったから作りました。モードを2段階に分けたのも同じ理由です)

電源停止: デバイスの電源を落とします。
正確にはスリープですが,普通の Palm で電源ボタンを押した時と(多分)同じような状態に移行します。
電源停止中は多分アラームは鳴らないと思います。
電源停止から復帰するには
1)ロッカーキーを押し込む(ロッカーキーを倒したり PageUp/down を押さないことを推奨します)
→ ロッカーキーを押せ というメッセージが表示される
2)もう一度ロッカーキーを押し込む
→ PDA モードに復帰する
という手順に従ってください。

電源停止からの復帰後にまれに PDA モードの画面が書き戻されないことがあるかもしれません。そのような時は HalLaunch をお使いなら長押し機能等で他のアプリを起動するかまたはソフトリセットを行えば誤操作を防ぐことが出来るのではないかと思います。

PageUp キー: メニューを開きます。
Back キー: 時計表示画面を開きます。
[前へ]: 設定1アラーム画面を開きます。
[次へ]または PageDown キー: 設定3その他画面を開きます。

目次へもどる

設定3その他
Conf3misc その他の機能の設定画面です。

2回押し閾値: 全体ボタン設定モジュールボタン設定で指定する“2回↑/↓”操作の2回目と判定する時間を秒単位で指定します。この値が 0 なら2回↑/↓”操作は無効になります。

時計画面での Rocker 押し: HalWatchMgr の時計画面でロッカーキーを押し込んだ時の動作を指定します。
終了: デフォルト。HalWatchMgr を終了します。
モジュール起動: 現在表示されている時計アプリをアプリとして起動します。

HardBtn N: (主にWristPDA 以外の Palm で)ハードボタンに HalWatchMgr が割り当てられている場合にのみこの項目が現れます。HalWatchMgr 起動中に同じハードボタンを押すと,ここで指定したアプリが起動します。
例えば,Prefs -> Buttons の設定でハードボタン4(MemoPad)に HalWatchMgr を割り当て,HalWatchMgr のこの項目に MemoPad を割り当てておくと,ハードボタン4を押すと HalWatchMgr が起動し,そこでもう一度ハードボタン4を押せば MemoPad が起動します。

[DA 起動中は簡易時計]: DA を起動したまま !HalWatch が時計モードで実行された時,PDA モードで実行中のアプリと呼び出される時計アプリの組み合わせによってはエラーが起きます。このエラーを回避するために DA 実行中には時計モジュールの起動を行わずに内蔵の簡易時計を表示します。
ただし DA が HalLaunch の機能を介して起動されたものでなければ(DA の起動を感知できないので)この設定は無意味です。(その場合組み合わせによりますがやはりエラーが起きる可能性はあります)

PageUp キー: メニューを開きます。
Back キー: 時計表示画面を開きます。
[前へ]: 設定2省電力画面を開きます。
[次へ]または PageDown キー: 表示/順序設定画面を開きます。

目次へもどる

デバッグモード
DebugMode デバッグモードの設定画面です。
ここで言うデバッグモードとは HalWatch 自身のデバッグではなく,専用モジュールを作成する時にそのデバッグ作業を助けるものです。

時計モジュールを作ってその表示が正しく行われるかどうかを確かめる時に,実時間の表示で確認していたのでは時間が掛かりすぎるし日付や月が変わる瞬間の挙動を確認するのが大変です。
デバッグモードでは指定した日付,時刻から指定した割合で“仮想時刻”の早送りが出来ます。但しこの“仮想時刻”が有効なのはモジュールが HalWatch の提供する HalWatchGlobals_t 構造体の cDateTime を利用して時刻を表示している場合に限ります。
“仮想時刻”が有効なのは HalWatchMgr でモジュールを表示している時だけです。!HalWatch の時計モードの表示には影響しません。
よく分からなかったらデバッグモードを有効にして,私が提供したモジュールを HalWatchMgr で表示させてみて下さい。

[デバッグモード]: 反転状態でデバッグモードを有効にします。
[右上のポップアップリスト]: 検証中のモジュールの表示と HalWatchMgr の“仮想時刻”が一致しているか確認するために“仮想時刻”を上書き表示できますが,その表示場所を指定します。
none:表示しない, LT:左上, LB:左下, RT:右上, RB:右下, CM:真ん中
[Start]:“仮想時刻”の開始時刻を指定します。
左から年(西暦),月,日,時,分。
2段目はバッテリ残量(Volt)の100倍の値。[PowOn] は電源接続状態か否か。
[Adv]:[Rate]で指定した実時間が経過した時の“仮想時刻”の進み方を指定します。
[Dcr]:[Rate]で指定した実時間が経過した時の仮想電圧の減り方を指定します。
[Rate]:実時間と“仮想時刻”の関係を決めます。

例えば,
[Rate] = 1 sec で [Adv] = 1 min なら,実時間が一秒経過すると“仮想時刻”は一分進みます。
[Rate] = 1 sec で [Adv] = 2 hour なら,実時間が一秒経過すると“仮想時刻”は二時間進みます。
[Rate] = 5 sec で [Adv] = 3 day なら,実時間が五秒経過すると“仮想時刻”は三日進みます。

[戻る]: 時計表示画面を開きます。
[次へ]: 表示/順序設定画面を開きます。

目次へもどる

WristPDA 以外での使用について

基本的には HalWatch は WristPDA 向けのアプリですが,ver 0.5b 以降の HalWatchMgr.prc では一応その他の Palm デバイスでもエラーがでないようにしたつもりです(!HalWatch.prc は WristPDA 以外の Palm では動きません)。ただ WristPDA 特有の大きなフォントを利用しているので,その他のデバイスで利用するとフォントサイズの違いによるデザインの崩れは多少あります。まあ動くかも知れない,という程度のものと思ってください。(そもそも画面サイズが 160x160 で 16 階調グレースケールの表示しかしない,しかも秒単位の時間は表示しないような時計をわざわざ普通の Palm 使わなくても他にたくさん時計アプリはあるでしょうし)
まあそれでも使ってみたいという方は試してみてください。保証は出来ませんが。

私が作ったモジュールと HalWatchMgr の組み合わせで Palm Z22 で表示できることは確認しましたが,その他の時計アプリについては動かないものもあります。これは時計アプリが WristPDA 特有の機能を使っている場合などです。その場合は素直にあきらめてください。決してそれらの時計アプリの作者に文句を言わないようにしてください。もともとそれらは WristPDA 専用に作られたものなのですから。(ただし,私が作ったモジュールが動かなかった場合には報告を頂けると嬉しいです)


基本的に使い方は上に書いたとおりですが,普通の Palm では WristPDA のロッカーキーがないのでいくつかのキーをロッカーキーなどと同じ働きをするようにしてあります。上の説明文でのキーの名前を以下のように読み替えてください。

PageUp キー: upArrow, 5-WayUp, JogPageUp
PageDown キー: downArrow, 5-WayDown, JogPageDown
RockerUp キー: backspace, leftArrow, 5-WayLeft, JogUp
RockerDown キー: space, rightArrow, 5-WayRight, JogDown
RockerPush: return, linefeed, 5-WayCenter, JogRelease
RockerUp 二回押し: tab
RockerDown 二回押し: comma
Back キー: なし

例えば(デフォルト設定の場合)WristPDA では RockerDown で時計モジュールを切り替えますが,5-Way キーを持つ Z22 では 5-WayRight を押すと同じように時計モジュールを切り替えます。


あと,私は Z22 では HalWatchMgr をハードボタンに割り当てて使っていますが,もともと2つしかないハードボタンを占有するのが嫌だったので簡易ランチャ機能をつけてあります。詳しくは設定3その他HardBtn Nの説明を見て下さい。

目次へもどる

既知の問題

・電源停止モードから復帰して PDA モードに戻る時に画面が正しく書き戻されないことがまれにある。
操作のタイミングによるような気もするが原因不明。そもそも時計モードから電源停止モードへ移行することは本来想定されていない動作なので申し訳ないですがこういうものだと思って下さい。
電源停止モードからの復帰時に画面が戻らなかった場合は一応ソフトリセットして下さい。

・ごくごく稀にですが,モジュールファイルが破損してしまうことがあるかもしれません。この場合リセットしてもカレントのモジュールが壊れているために時計モードに移行するたびにハングアップする可能性があります。
ver 0.6b 以上の HalWatchMgr では,リセット後には時計表示画面以外の画面で起動するようにしました。もし時計モードでハングアップした場合には一旦リセットし,直ぐに HalWatchMgr を起動して該当モジュールを非表示に設定してみて下さい。
もっともハングアップする理由は他にもあるかもしれませんのでこの方法で必ず回避できるかどうかは不明なのですが。
いずれにせよ,このような現象に遭遇された方は是非御報告下さい。(特にその時カレントになっていたモジュール名をお知らせ下さい)

目次へもどる


ソースコードについて

HalWatch 本体については正式版を公開したらソースコードも公開する予定です。正式版公開前でもソースが欲しいという方はメールして下さい。

専用モジュールのソースコードは zip ファイルに同梱されています。改造するなり参考にして新たに作るなりご自由にどうぞ。
なお改造したものを再配布する場合には新たに Creator ID を取得して下さい。

目次へもどる


専用モジュールの作成について

別ページ(まだ未完成)で解説する予定です。
一応本体の zip ファイルの中に仕様とサンプルソースを同梱してあります。またモジュールの zip ファイルにも prc だけでなくそれらのソースも同梱してあります。

専用モジュールのメリット

・Creator ID が 'Foss' 決め打ちではなく独自に登録したものを使える。これによって普通のランチャアプリからも起動してもらえる。

・アラームの処理,低バッテリ警告の処理をしなくても良い。

・時計モードの終了時に一度だけ特殊な起動コードで呼び出してもらえる。
例えば大きなメモリの取得と開放をする時計アプリの場合,毎分ごとにメモリの取得と開放を繰り返さずに,時計モードで最初に起動されたときにメモリの確保を含む初期化処理をし,PDA モードに戻る直前の一度だけメモリの開放と後処理をすることが出来る。

・アナログ時計の描画に必要な sin() 関数を整数のみで処理できる仕組みを利用できる。
MercuryWorks さんの所の開発覚書を参考にさせて頂きました。murasaki さんありがとうございます)

・Pref>WristPDA の WatchApp のリストには10個までの時計アプリしか正しく表示されない( z で始まるようなデータベース名をつけたりすると選択できなくなる場合がある)。この変な仕様に影響されない。

専用モジュールのデメリット

・HalWatch が無いと使えない。

目次へもどる


入手可能な時計アプリ一覧

別エントリにまとめました → Wrist PDA 時計アプリ一覧

目次へもどる
スポンサーサイト

時刻表時計   [English]

00hwvTimeTable03b00.gif 時刻表時計は仙石浩明さん作成の TimeTable Viewer 1.3 を Fossil/Abacus Wrist PDA の時計モードで使えるように HalWatch のモジュールとして移植したものです。


概要

・時刻表時計は Wrist PDA の時計モードで動作し,次の列車までの時間をリアルタイムに表示し続けます。
つまり一切の操作を行わなくても,腕時計を見るだけで発車までの時間をいつでも確認できます。

・Wrist PDA 時計モードの制限により秒単位の表示は出来ません。残り時間の秒の単位は切り捨てて表示されます。

・時刻表時計を使うには
TimeTable Viewer 1.3 および HalWatch のインストールと設定が必要です。

・時刻表時計を使う前に,最低でも一度はオリジナルの TimeTable Viewer 1.3 の時刻表表示画面を開いておく必要があります。
(路線選択について TimeTable Viewer の履歴情報に依存しているため)

・時計モードのままでもある程度の操作(路線,表示形式,備考絞込みの切り替え)が可能です。

・時刻表時計はオリジナルの TimeTable Viewer の設定を利用して動作しますが,時刻表時計の設定がオリジナルの動作に影響を与えることはありません。

・TimeTable Viewer 1.3 は DA TrainTime と上位互換らしいので(その移植版である時刻表時計でも)時刻表データは共有できるかも知れません。
(未確認ですが,TimeTable Viewer,DA TrainTime,時刻表時計の三者でデータを共有できるかも知れないということです)


更新履歴

・2006/3/4 暫定版1
・2006/3/12 暫定版2
・2006/3/25 ver 0.3b


ダウンロードと配布条件

オリジナルの TimeTable Viewer 1.3 が GPL に準じたフリーソフトとして公開されていますので,本ソフトも GPL に準じます。
このソフトウェアは一切無保証です。いかなる損害に対しても私は責任を負えません。
インストールする前にバックアップを取っておくことを強くお勧めします。

ダウンロード:
時刻表時計 → hwvTimeTable_0.3b.zip (86 KB)
HalWatch → HalWatch_0.7b.zip (87 KB)

バグなどありましたら,最新のエントリにコメント/このエントリにコメント/私にメール,等どのような手段でもいいので是非お知らせください。



以下,使い方の説明です。見難いかもしれませんが,
左側に時刻表時計の画面,右に TimeTable Viewer の画面
を表示して説明しています。



表示形式

三通りの表示形式を切り替え可能です。

TimeTable Viewer 形式

01hwvTimeTable03b11.png02TimeTable21.png オリジナルの TimeTable Viewer
の表示に近い表示形式
オリジナルで“表”の行数を変更しておけば,
時刻表時計でもその行数で表示されます。


TimeTable Viewer 三行形式

03hwvTimeTable03b12.png オリジナルの TimeTable Viewer
の表示に近い形式だが
上部の“表”をオリジナルの設定を
無視して三行に固定した表示形式


TrainTime 形式

04hwvTimeTable03b13.png05TrainTime.gif (DA)TrainTime
に似た表示形式

“表”の右側にある縦のバーはバッテリ残量の表示です。
見ての通りですが,先発列車は一回り大きなフォントで表示しています

07hwvTimeTable03bHWMgr01.pngこれらのスタイルを時刻表時計で切り替えるには,HalWatchMgr のボタン設定画面で[特殊3]を割り当てて下さい。

例えば左のような設定ならバックライト点灯状態で RockerUp を行えばこれら3つの表示形式が順次切り替わります。


特大フォント表示

10hwvTimeTable03b21.gif 時刻表時計の大きな残り時間表示は,11TimeTable21.gif

オリジナルの TimeTable Viewer の
表示/非表示設定に従います。



この表示切替は時刻表時計からは出来ません。設定変更はオリジナルで行ってください。


“履歴”と“項目”

オリジナルの TimeTable Viewer において路線を切り替える方法は“履歴”と“項目”の2つがあります。
時刻表時計でもこれらの情報に基づいて表示する路線を切り替えることが出来ます。

“履歴”

20TimeTable21.gif

オリジナルの TimeTable Viewer の時刻表表示画面において
上部の三角ボタンをタップするか,
またはメニューから/F,/Bを実行すると,
これまでに開いた時刻表に順番に切り替わります。

この仕組みを(勝手に)“履歴”と呼ぶことにします。



21hwvTimeTable03bHWMgr03.png時刻表時計においてこの“履歴”に従って表示する路線を切り替えるには,HalWatchMgr のボタン設定画面で[RockerUp][RockerDown]を割り当てて下さい。

例えば左のような設定なら RockerUp で“履歴”の一つ前の路線に切り替え,RockerDown で“履歴”の一つ次の路線に切り替えます


22TimeTable30.png

“履歴”を削除するにはオリジナルにおいて
一旦“全てDBへ移動”を実行し
さらに“全てメモ帳へ移動”を実行すればいいようです。

但し特定の“履歴”を選択削除することは出来ず
一括削除のみ可能なようです。




“項目”

23TimeTable03.png

オリジナルの時刻表表示画面において
メニューから/1~/8を実行すると
“項目”が切り替えられ,表示する路線が変わります。



25hwvTimeTable03bHWMgr02.png時刻表時計においてこの“項目”に従って表示する路線を切り替えるには,HalWatchMgr のボタン設定画面で[特殊1][特殊2]を割り当てて下さい。

例えば左のような設定なら RockerUp で“項目”の一つ前の路線に切り替え,RockerDown で“項目”の一つ次の路線に切り替えます。

24TimeTable31.png

“項目”を削除するにはオリジナルにおいて
時刻表選択画面の下のほうから
削除したい項目を選択し
[登録解除]をタップすれば
選択的に削除可能なようです




“履歴”と“項目”のどちらが便利か

“履歴”では,列車選択モード(自動選択/手動選択)の情報も保持されます。また同じ路線でも別個の履歴として保存されます。

この特徴を利用して,履歴2番では路線Aの 7:10 発の列車を手動選択しておき,履歴4番には路線Aを列車自動選択モードで記憶させておくことが可能。
こうしておいて,普段は履歴2番を表示しておけば 7:10 以前に列車が存在していても常に 7:10 の列車までの残り時間を確認することができます。
またその列車に乗り遅れたりした場合でも(ロッカーキー操作で)履歴4番の表示に切り替えれば,その路線の直近の列車までの時間がすぐに確認できます。

しかし上に述べたように不要な履歴を登録してしまった場合には特定の履歴だけを削除することが出来ず,一括削除しなければならないようです。

一方“項目”は個別に削除できますが,列車選択モードは常に自動選択になってしまうので上のような活用ができません。

ということで一長一短なのでお好みな方を使ってください。


備考絞込み表示

“ 備考絞り込み”について詳しくはオリジナルの TimeTable Viewer の説明(TimeTable.ja.txt)を読んでください。
簡単に言うと一つの路線に複数の行き先がある場合に,表示する列車を備考に基づいて絞り込むことができる機能のようです。

31TimeTable22.gif

オリジナルの TimeTable Viewer では
特定の備考を持つ列車だけの表示に絞り込むことが出来る。

35hwvTimeTable03bx24.gif時刻表時計でもオリジナルで選択された備考に従って
備考絞込み表示および絞込みのオン/オフが可能。

07hwvTimeTable03bHWMgr01.png時刻表時計で備考絞込みモードを切り替えるには,HalWatchMgr のボタン設定画面で[特殊4]を割り当てて下さい。

例えば左のような設定なら RockerDown を行う度に備考絞込みモードがトグルします。

時刻表時計だけではモードの切り替えは出来ても絞り込む対象の備考を選択することは出来ないので,オリジナルのほうでよく使う備考で絞込みをしておき,必要に応じて時刻表時計で絞込みの有効/無効を切り替えるのが実用的だと思います。

注:オリジナルの仕様として絞り込みモードを切り替えると自動的に列車選択が自動モードに移行します。
これを利用して(絞り込みモードを切り替えることにより)列車指定を選択モードから自動モードにすることも出来ます。


ボタン操作のまとめ

[RockerUp] : “履歴”に従って,表示する路線を一つ前に戻します。
[RockerDown] : “履歴”に従って,表示する路線を一つ次に進めます。
[特殊1] : “項目”の番号を一つ進め,その項目の路線を表示します。
[特殊2] : “項目”の番号を一つ戻し,その項目の路線を表示します。
[特殊3] : 表示形式(TimeTable Viewer, 三行,TrainTime)を切り替えます。
[特殊4] : 備考絞込みモードを切り替えます。列車選択は自動選択になります。


時刻表データについて

時刻表時計は TimeTable Viewer 1.3 の移植版なので,読み込めるデータ形式はオリジナルのそれと同じです。
データの詳細な形式については私は把握していませんので質問されてもお答えできないと思います。
但し,もし TimeTable Viewer 1.3 で読み込めるのに時刻表時計で正しく表示できないデータがありましたらお知らせ下さい。

参考までに,
のん太のホムペのnTak(のん太)さん作の Windows 用プログラム TrainConv Explorer で作成したデータは(私が試した範囲では) TimeTable Viewer 1.3 でも利用できるようです。


謝辞

最後になりましたが,オリジナルの
TimeTable Viewer 1.3 を作成されソースを公開されている作者の仙石浩明さま,ありがとうございました。

また暫定版について御意見を下さった CafeAuLait, さん,ocean25 さん,お付き合い下さりありがとうございました。
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。