ntrain (SL-Zaurus用時刻表表示プログラム) 最終更新日: 2003/10/29 20:45
現在のバージョン: 0.4.4

目次
ntrainとは
動作環境
種別
作成者
スクリーンショット
現在のバージョン
パッケージのダウンロード
ソース
利用方法
キー操作方法
時刻表ファイルの
独自拡張形式
作成される設定ファイル
既知の不具合
To Do
バージョン履歴
不具合報告・
ご意見・ご要望
免責事項(お約束)
現状の問題点
(開発の備忘録)

関連ページ
設定ファイルの詳細
時刻表ファイル・環境ファイルを用意する

その他
Zaurus関連トップ
サポート用掲示板

ntrainとは
  • H.TOYOさん作成のNextTrain(http://nexttrain.info) で使用される時刻表ファイルをSL-Zaurus上で閲覧するために Java(PersonalJava 1.2,J2ME)で動くよう作成したプログラム。
  • 上記NextTrainの画面・動作を参考にして作成してはいますが、NextTrainとは別のプログラムです。
    必ずしも同じ動作をするとは限りません。
  • 現在、SL-C760上(J2ME)で鋭意作成中。
動作環境
  • J2MEを搭載したSL-Zaurus(SL-C760, SL-C750)
  • Jeodeを搭載したSL-Zaurus(SL-C700, B500, A300)....の筈(動作未確認)
種別
  • フリーソフト
作成者
  • Tom ()
スクリーンショット


    VGAでのフローティングウィンドウ表示


    VGAでの全画面モード(インプットスタイル)



    VGAでの全画面モード(ビュースタイル)


    B500でのQVGA画面
    (がぶさん御提供:ありがとうございます)
現在のバージョン
  • 0.4.4
  • 乗換先の基準時刻が到着駅の到着時刻とずれてしまうことがあったのを修正(v0.4.4)。
  • v0.4.2での到着駅表示の修正に不十分な点があったのを修正(v0.4.3)。
  • 複数の備考が指定されている列車の到着駅表示がおかしくなっていたのを修正(v0.4.2)。
  • v0.4で追加した休日情報を反映させる機能がうまく動いていなかったのを修正(v0.4.1)。
  • 不具合修正ばかり続いて申し訳ないです....。
パッケージのダウンロード
ソース
  • Coming soon....
利用方法
  1. あらかじめ、環境ファイル(*.cfg)、時刻表ファイル(*.tbl)を用意しておきます。
    cfgファイル、tblファイルの記述フォーマットについてはここでは触れません。 詳細を知りたい方はNextTrainのWindows版のヘルプ等を参照してください。
    NextTrain on the Webのページのリンクから、 ファイルを自動生成してくれるプログラム等を見つけるなどして作成する方法もあります。
    ただし、注意すべき点が何点かあります。
    • ファイルはUTF-8の形式で保存されていること。
      現状、C760/C750のJavaではこの形式でしか日本語ファイルを読み込めないため、このような形になっています。
      新規で作成する場合には、最初からUTF-8で保存すればいいのですが、 既存の環境ファイル・時刻表ファイルを利用する場合、
      • 時刻表ファイルの数が少ない場合には、UTF-8で保存できるエディタで読み込んで新規保存すれば良いでしょう。
      • 数が多い場合には、Windows上などで動くフリーの文字コード変換ソフトなどを利用した方がいいかもしれません。
      ただし、C700/B500/A300の場合には設定ファイル ntrain.conf
      charset = SJIS
      のように修正すれば、ShiftJISのファイルでも読み込むことが可能です(後述)
    • 環境ファイルや時刻表ファイルの中で呼び出すファイル名を記載しますが、 このプログラムでは基本的には、ファイル名の大文字、小文字を区別します
      通常は、ザウルス上で見えるファイル名と、環境ファイル・時刻表ファイル内に記載したファイル名が 大文字・小文字も含めて一致していないと読み込むことが出来ませんので注意してください。
    • ただし、既存の環境ファイル・時刻表ファイルを流用する場合のことを考えて、 環境ファイル・時刻表ファイルに記載されたファイル名を全て小文字化したファイルは そのままで読み込めるようにしてあります(ver0.2.1より)。 
      例えば、環境ファイル内に「NTRAIN.TBL」と記載されていた場合、「NTRAIN.TBL」のみでなく、 「ntrain.tbl」というファイルも読み込むことが可能です。
    • 備考毎に時刻表表示の色を変えられるように、時刻表ファイルに独自の拡張をしています。
      詳細については、時刻表ファイルの拡張についてを参照してください。
    ファイル入手方法等については、このページでも簡単にまとめてありますので、 参考にしてください。
  2. 環境ファイルと時刻表ファイルの両方を用意している場合は、なるべく同一ディレクトリ内に置いてください。
    • 環境ファイル(時刻表ファイル)内で他ファイルを指定している場合は、同じディレクトリ内を探します。
    • 元ファイル位置からの相対パス指定も可能の筈ですが、テストはしていません。
  3. C700/C750/C760の場合、ntrainの「VGAの画面に最適化して実行する」のチェックは外しておいてください(アイコン長押し)。
  4. インストールしたntrainを起動します。
  5. ファイルメニューから「開く」を選択して、環境ファイルか時刻表ファイル(*.cfg,*.tbl)を選択します。
  6. ボタンなどの機能はNextTrainのWin(CE)版やPPC版と同じです。
    • ウィンドウ上部のコンボで閲覧する時刻表を切替えます(cfgファイルを読み込んだ場合)。
    • 「←」「→」で時間単位での時刻表を表示します。
    • 「|」で現時刻を基準としたリアルタイム表示に切り替えます(デフォルトのモード)。
    • 「↑」で読込済のファイルを読み込み直します。
    • 「∧」で一つ前に出発した列車を表示します。
    • 「>」で乗換先の時刻表を表示します。
    • 「<」で乗換前の時刻表を表示します。
    • 「≪」で乗換前の最初の時刻表を表示します。
  7. 曜日メニューから曜日を選択することで、現在の曜日とは違う曜日を指定することができます。
    「自動設定」にすると自動的に現在の曜日を計算します(デフォルト)。
  8. 自動設定時には午前0時〜午前2時までの時刻は前日の曜日の扱いとなります。
  9. VGA画面の機種(C760/C750/C700)では、画面メニューから画面サイズ(フローティング or 最大化)を選択できます。
    C700をご利用の方は、初期状態だとウィンドウ下部がはみ出てしまう場合があると思います。 この場合、設定ファイル ntrain.conf の title_height の設定を
    title_height = 48
    などとすることではみ出ないようにすることが出来ます(設定ファイルについての説明を参照)。
    この数値の指定値は環境によっても異なるようですので、画面に収まる値を探してみてください。
  10. クローズボタンか、ファイルメニューの「終了」で終了します。
  11. 次回起動時には、最後に読み込んだファイルが自動的に読み込まれます。
キー操作方法

    ntrain(v0.4以降)では、ペンオペレーションの他にキー操作も可能となっています。
    キー操作には2種類の方法を用意しています。

  • 簡易キー操作モード(デフォルト)

    特にntrain.confを修正していない状態(key_mode=0)の場合、カーソルキーで以下のような操作が可能です。
    「↑」「↓」時刻表エントリ選択行の移動(スクロール)
    「←」「→」時間単位での時刻表の表示

  • 拡張キー操作モード

    ntrain.confでkey_mode=1に設定してある場合には、キー操作でntrainの殆どの操作を行うことが可能です。
    「OK」もしくは「Enter」ボタンを押すと拡張キー操作モードに入ります。
    拡張キー操作モードでは特定のエリアが赤枠で囲まれ、そのエリアに応じたキー操作が可能となります。

    A時刻表切換用エリア
    B時刻表表示変更用エリア
    C時刻表エントリ選択用エリア
    D乗換駅エントリ選択用エリア
    E乗換先切換用エリア

    の5つのエリアを切り換えることが出来ます。
    エリア間の切換は「Cancel」もしくは「Tab」で行います。

    拡張キー操作モードで使用するキーは、SL-C7x0のビュースタイルでも利用できるよう、

    • 「↑」or「→」or [ジョグ上方向]
    • 「↓」or「←」or [ジョグ下方向]
    • 「OK」or「Enter」
    • 「Cancel」or「Tab」
    の4種類のみです。
    選択中のエリアに応じて、以下のような操作が可能です(括弧内は対応するボタン操作)。
    A.時刻表切換用エリア
    「↑」「→」[ジョグ上]切換時刻表を選択
    「↓」「←」[ジョグ下]切換時刻表を選択
    「OK」「Enter」[時刻表切換時]時刻表の切換確定
    [時刻表確定時]ファイルの再読込(「↑」ボタン)
    B.時刻表表示変更用エリア
    「↑」「→」[ジョグ上]時間単位での時刻表の表示(「→」ボタン)
    「↓」「←」[ジョグ下]時間単位での時刻表の表示(「←」ボタン)
    「OK」「Enter」現時刻を基準としたリアルタイム表示(「|」ボタン)
    C.時刻表エントリ選択用エリア
    「↑」「→」[ジョグ上]時刻表選択行の上移動
    「↓」「←」[ジョグ下]時刻表選択行の下移動
    「OK」「Enter」一つ前に出発した列車を表示(「∧」ボタン)
    D.乗換駅エントリ選択用エリア
    「↑」「→」[ジョグ上]乗換駅選択行の上移動
    「↓」「←」[ジョグ下]乗換駅選択行の下移動
    「OK」「Enter」乗換先の時刻表を表示(「>」ボタン)
    E.乗換先切換用エリア
    「↑」「→」[ジョグ上]乗換先の時刻表を表示(「>」ボタン)
    「↓」「←」[ジョグ下]乗換前の時刻表を表示(「<」ボタン)
    「OK」「Enter」乗換前の最初の時刻表を表示(「≪」ボタン)
    拡張キー操作モードを抜けるには、ウィンドウバー、メニューバー以外の部分をタップしてください。 エリア選択枠が消え、通常のモードに戻ります。
    また、拡張キー操作モードに入っている間は、ウィンドウバー上にあるクローズボタンをクリックしてもntrainは終了しません。 一度拡張キー操作モードを抜けるか、ファイルメニューから「終了」を選択するようにしてください。

時刻表ファイルの独自拡張形式
  • 時刻表ファイル(*.tbl)に独自の拡張をすることにより、備考単位での時刻表表示の色付けを可能にしました。
    時刻表ファイルの備考設定欄に

      [備考記号] : [備考名称] ; [備考略称] ; [備考色指定]

      [備考記号]a〜z A〜Z の半角英数1文字
      [備考名称]備考欄に表示される名称
      [備考略称]備考の略称。1文字のみが有効。
      将来の拡張用なので、現状は空文字(〜;;〜)でも可
      [備考色指定]時刻表表示の際に使う色指定。
      RRGGBBの形で16進6桁指定(HTML等の色指定と同様)。

    の形で記述します(赤色が拡張部分)。
    例えば、以下のように記述しておくと、急行列車を赤色で表示出来ます。

      a:急行;急;ff0000

    複数の備考が指定してある列車については、最初に指定してある備考が有効となります。
作成される設定ファイル
既知の不具合
  • C760/C750で ntrain がフローティングウィンドウの状態で起動中に、タスクバーの ntrain のアイコンを押すと、 ntrainの画面が全画面に広がった状態になってしまう。
    もう一度画面メニューから「フローティング」を選べば元に戻ります。
  • C760で ntrain 起動中にインプットスタイル→ビュースタイルへの切換(もしくはその逆)をおこなうと、 メモリ不足になり動作が不安定になることがある。
    縦横切換時に別プロセスで再度起動してしまい、以前のプロセスがメモリ上に残ってしまうことがあるためのようだが、 C700でも起きるのかどうかは不明。
    傾向としては、
    • プログラムをSDカード上にインストールしていると起きやすい
    • ウィンドウサイズを大きくしていると起きやすい
    ようです。
To Do
バージョン履歴
不具合報告・ご意見・ご要望
  • サポート用の掲示板を作りましたので、そちらでお願いします。
  • ででも構いません。
  • ntrainはNextTrainの環境ファイル・時刻表ファイルを使用し、画面構成もNextTrainと似ていますが、 私(Tom)が独自に作成したものであり、NextTrainとは別のソフトです。
    このプログラムに関してNextTrain作者のH.TOYOさんに問い合わせをすることは 絶対にやめてください。
免責事項(お約束)
  • 当プログラムを使用したことにより如何なる障害が生じた場合でも当方では補償しかねますので、 必ず自己責任のもとでご利用下さい。
現状の問題点(開発の備忘録)
  • SL-C760(C750)固有の問題?

    • 特定のフォントサイズ以外で文字表示すると日本語が文字化けする。
      C760/750に実装されているJ2MEの日本語対応が中途半端のため?  プログラムでは対応できないのでJ2MEのバージョンアップ待ち。
      現状、18ポイント指定。 このため画面はQVGAでは収まらない。 フォントサイズがまともに指定できるようになったら、QVGA対応する予定。

      ver0.2.1よりQVGA版を公開。 画面サイズは化け化けのフォントをみながら枠だけあわせるようにして調整....。

      また、本来はVGAでも画面全体にレイアウトすべきだろうが、 これもフォントサイズが自由に指定できるようになってから考えることにする。
    • CFGファイル、TBLファイルはUTF-8のファイルでないと読み込めない。
      C760/750に実装されているJ2MEにSJISエンコーディングが実装されていないため。
      J2MEのバージョンアップ待ち。
      他機種用に設定ファイルでエンコーディングを指定できるようにする必要があるかも。

      設定ファイル修正によりエンコード指定できるように対応した(つもり)。

    • 日本語のファイル名のファイルも読み込めない模様。 「そんなファイルはない」といわれるメッセージを見ると、ファイル名の日本語部分が「???」になっている。
      ファイルダイアログ上でも表示されていない。
    • ファイル読み込み時に1行目の先頭に必ず1文字分ゴミが入る。
      BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("abc.txt"), "UTF8"));
      String line = br.readLine();
      で、line.charAt(0)に本来存在しないはずの文字が入る。
      これはプログラムの問題かも。

      どうやら、UTF-8ファイルの先頭にある(場合もある)シグネチャ3バイト(EF BB BF)を読み取ってしまう模様。 WindowsのJ2SE1.4でも同様だった。 とりあえず、CFG,TBLファイルでは行頭が半角英数でないことはないので、 行頭の半角英数でない文字は無視するようにした。 これが、ver0.1で漢字ファイル名が読み込めない原因だった。 ちゃんと真面目にファイル先頭3バイトを読み取ってチェックするように修正。
      シグネチャを無視するような読み取りの指定はないのかなあ。

  • その他
    • ファイル読込時のファイル名指定は、大文字小文字を区別する。
      既存のCFG,TBLを使用するときに問題となるかも。

      ver0.2.1より、該当ファイルが見つからない場合、全小文字化したファイル名でも読込を試みるようにした。

    • 祝日ファイル(holiday.dat)の読み込みに対応していない。
      出来ればZaurus側のカレンダーの祝日情報を読み出したいんだけど、無理っぽい。
      ....と思ってたら /home/QtPalmtop/etc/holiday.dat なるものを発見。これは使えるかも。
      でも、他の機種(C700/B500/A300)にもあるファイルなのかなあ。

      ver0.4より、/home/QtPalmtop/etc/holiday.dat の読み込みに対応。

    • 時刻表内での1エントリに対する複数備考指定に対応していない。
      そのような指定があった場合、そのエントリは無視されます。

    • アラーム指定には対応していない。
      atdを設定できれば、スリープしていても起き上がって鳴らすように出来る?
    • awtリストボックス(java.awt.List)は使わずに独自にリストを作成しているが、 現状ダブルバッファリングによる表示は行っていない。 C760ではこれで特にちらつきなどはおきないが、他機種でちらつくようだと ダブルバッファリングに対応する必要があるかもしれない。
    • 上記独自リストでは、現状キーボード操作による行選択が出来ない。

      ver0.4より、キー操作に対応。

    • 上記独自リストでは、OS側のアピアランスに関係なく選択行カラーが固定(文字色反転)。
      文字色に赤色指定したりするとちょっとどぎついかなあ。 設定ファイルでシステムカラー反転と文字色反転を選べるようにするべきか。 した(v0.3より)。
    • リストからフォーカス移動すると、無条件でrepaintがかかってしまうのはなんでなんだろう....。
    • 結局、A/B用、C700用、C750/C760用でipkをわけるしかないのかなあ....。