EMC_Clock
ウインドウや端末画面いっぱいにシステム時刻を表示するだけのTcl/Tkスクリプトのご紹介です。アナログ(針時計)表示とデジタル表示両対応。
能書き(経緯)
以前の職場で、出先大規模設備の随所に見やすく「正確な時計」を掲示しておきたいニーズがありまして。
諸事情で電波時計や携帯電話電波は使い物にならない中(立地や建物構造やいろんな意味の電波状況などによる)、昔からいろんな取り組みがあったのですが、自分の目からはどれも割と帯に短したすきに長しな印象でした。本格的な設備時計類は高価すぎて老朽化で修理出来なくなっても更新予算が確保できなかったり(直ちに致命的な影響があるわけでもないので…何かあったら人為ミス 爆)、簡易なものは表示機能の視認性や自由度が低かったり(今はいいのあるみたいですが)。
そんな中、時代の流れで施設にインターネット回線が試験導入され始め、それならNTP使えるじゃない、と。当時は適当なNTP時計製品は少なかったけれども(たぶんw)、なにも専用の時計使わなくたってPCなりタブレットなりの画面に時計大写しすりゃいいんじゃないの?と。ビデオ出力分配なら時刻同期ズレの心配がないし(引き回し長さやケーブルコストの問題はあるけれど)、NTPソフトウェア導入すれば時刻精度は必要以上に上げられるし(NTPサーバーにもなるし)、機材は他用途(事務とか計測とか)との兼用の余地もあるし、量産効果でコスパ高いし、部材の選択肢が豊富で壊れても代替品の調達容易だし…。どうよ。と考えました。
ところが。PCの画面にフルスクリーンで時計表示してくれるソフトって、意外と見当たんないんですよね…。WEBページとかはあるし…、よく探せばなくはないんでしょうが、自分、探すの苦手で(苦笑)。
で。仕方ないのででっち上げたのが本稿でご紹介するスクリプトの原形です(当時は既設代替を想定したアナログ表示のみの実装)。
職場のニーズを意識した開発で、職場でのデモンストレーションに使ったりもしましたが(まっっっったく、関心を引きませんでした 爆)、開発自体はプライベートでやってます。
概要
- 機能
- システム時刻を画面表示。
- アナログ(針時計)表示とデジタル表示に対応。
- ウインドウ表示とフルスクリーン表示に対応。
- 設定ファイル(似非)にて表示文字のフォント、サイズ、文字色(デジタル表示のみ)などのカスタマイズが可能(背景等の色変更は未実装)。(実装は超いい加減 爆)
- それ以上のことは出来ません(笑)。
- 動作環境:Tcl/Tk
- 動作確認済Tcl/Tkインタープリタ(バージョン違いの互換性は未調査)
- Windows OS
- Android OS
- ubuntu OS
- (「sudo apt-get install tk-dev」で導入したもの。)
- その他 OS
- 未確認(Tcl/Tkが使えれば動くかも。Raspbianとか。)
- 使用拡張パッケージ
スクリプト自体は特別のインストール操作は不要ですが、Tcl/Tkインタープリタが未導入の場合はそのインストールが必要です。詳細はここでは割愛しますが、WindowsとAndroidの場合についてだけ、簡易にご紹介しておきます。なおここで紹介するインタープリタには本スクリプトで使用している拡張パッケージが同梱されていますので別途の導入は不要です。
- Windows OSの場合
- TclKitsのDownloadsページから、Windows用の「Tclkit」をダウンロードします。
- ファイルサイズは5MBほどです。
- ダウンロードリンクがいっぱいあって分かりにくいのですが、環境(SystemやPlatform)が適合していてTkを含むもの(「TclKits with Extensions Included」では「Tk」欄が「-」でないもの、「Base TclKits」は全て含んでいるようです)を選びます。
- バージョンはどれでも大丈夫と思いますが、まぁ新しいものが良いでしょう。
- Platformは「x86」なら32bit/64bitどちらの環境でも動くので差し当たって融通が利きます。
- といっても分かりにくいと思うので(苦笑)、ここでは次のものをお勧めしておきます。
「TclKits with Extensions Included」の「System=Windows, Platform=x86, Versions=8.6.10, Tk=8.6.10」のもの(本稿執筆時点での最新版です)。
- ダウンロードしたインタープリタファイルを、先程解凍したフォルダー(バッチファイルのあるフォルダー)にコピーし、ファイル名を「wish.exe」に書き換えます。
(やりようはいろいろありますが、ここでは簡便のためこの方法で紹介しておきます。慣れた方はご自由にどうぞ。)
- Android OSの場合
- Playストアとかを通していない野良アプリなので自己責任でひとつ。気が進まなければやめておきましょう。まぁ…大丈夫と思いますが。
- AndroWishのDownloadsページから、「AndroWish」をダウンロードします。
- ファイルサイズは35MBほどです。
- バージョンはどれでも大丈夫と思いますが、まぁ新しいものが良いでしょう。
- ダウンロードリンクがいっぱいあって分かりにくいのですが、「Android package, signed with a debug key」("Eppur si muove"なら「AndroWish-6e2085e6e4-debug.apk」)が目的のインストールファイルです。
- PCでダウンロードした場合は、ダウンロードしたインストールファイルをAndroid端末にコピーします。ダウンロードフォルダへ置くのがいいでしょう。コピーの方法はここでは割愛します。
- ダウンロードしたインストールファイルをAndroid上で実行します。実行方法はここでは割愛します。筆者はファイラーから行いました。「Tetra Free」というファイラーを使っています。
- 画面の表示に従って進めればさっくり入ります。
使い方
- 起動
- Windows OSの場合
- Android OSの場合
- 「EMC Clock.tcl」を実行します。
実のところ筆者不慣れでよく分かってないのですが…(苦笑)。筆者はファイラー(前述の「Tetra Free」)から実行しています。
- 実行すると送り先のアプリケーションをどれにするか問われます。どうやらAndroWishのインストールで関連付けが行われているようで、その選択肢の中にAndroWishが含まれていると思いますので、それを選択すると起動します。
- お詫び
- AndroWish上で文字サイズが他環境と極端に違ってしまう現象があり、筆者の現在スキルでは根本的な解決策が見いだせていません。そのためスクリプトにてAndroWish上での実行であることを検出し、強制的に文字サイズを調整(通常の0.2倍)する場当たり措置をとっています。
- また他環境でも文字サイズがおかしなことになる可能性が否定できません。
- そのような場合は後述の「カスタマイズ」にて適宜調整をお願いします。
- 運用操作
- アナログ(針時計)表示・デジタル表示切替
-
- 操作方法は2つあります。表示画面左上に配置されているボタンの押下、そのボタンに表示されている文字(「A」or「D」)のキーボードの押下、です。
- ウインドウ表示・フルスクリーン表示切替
-
- 操作方法は2つあります。表示画面のマウスクリック(タッチパネルのタッチ)、キーボードの「F11」の押下、です。
- 終了
-
- 終了方法は2つあります。キーボードの「Esc」または「Alt+F4」の押下、です。
- OS機能からの終了(ウインドウクローズなど)も利用できるでしょう。
- コンソール表示
-
- Tcl/Tkインタープリタのコマンドコンソールを表示することが出来ます。バグ取りなどの開発用です。
- 操作方法は1つあります。キーボードの「F1」の押下、です。
- コンソール表示の消去方法は2つあります。コンソールのコマンドプロンプトで「console hide」と入力、操作ウインドウか表示ウインドウがフォーカスされている状態でキーボードの「F2」の押下、です。
- OS機能からの終了(ウインドウクローズなど)も利用できるでしょう。
- カスタマイズ
- 設定ファイル(「setting.txt」)書き換えにより部分的にカスタマイズ可能です。
- 設定可能項目は…、整理がつかないので記載を略します(爆)。触ってもらって大丈夫そうな項目は添付のサンプル設定ファイルに収録していますので、そちらを参考にしてください。
- 設定ファイルのファイル形式はTXTです(笑)。編集には適宜テキストエディターをご利用ください。ファイルの文字コードはUTF-8指定です。
- ぶっちゃけて言うと中身は単なるTclスクリプトで、本体スクリプトから挿入読み込みして実行しているだけです(sourceコマンドによる)。カスタマイズ用の配列変数VNの設定を記述しています。
- 添付の設定ファイルは設定記述のサンプルを収録していますが、全てコメントアウトしています(行先頭の「#」)。利用の際にはコメントアウトの解除をお忘れなく。
- スクリーンショット
環境 |
ウインドウ アナログ表示 |
ウインドウ デジタル表示 |
フルスクリーン アナログ表示 |
フルスクリーン デジタル表示 |
Windows PC |
|
|
|
|
ubuntu PC |
|
|
|
|
Android スマートフォン (横画面) |
|
|
|
|
Android スマートフォン (縦画面) |
|
|
|
|
開発履歴(だいたい)
- 2020-05-24 EMC_Clock_20200524
- デジタル表示モード実装。これに伴いアナログ表示の文字盤に表示していたデジタル表示を廃止。
- 終了ボタンを廃止し、表示モード切替ボタンに機能変更(タッチパネル操作用)。
- 表示モード切替キーバインド実装。
- 外部設定ファイル読み込み対応化(source読み込み)。
- ソースコードリファクタリング。
- ubuntu 18.04にて動作確認。
- 2019-11-18 EMC_Clock_20191118
- Android環境の識別方法をWindows NTからborg packageのrequire可否に変更。
- 2019-10-02 EMC_Clock_20191002
- Windows / Android 両対応化(Linux OS未確認ながら)。Windows NTの値で実行環境を識別して文字サイズを自動調整({Linux}の場合に0.2倍に)。
- コンソール表示キーバインド実装。
- 終了ボタン実装(タッチパネル操作用)。
- 文字盤にデジタル表示追加実装。
- ソースコードUTF-8化。これに伴いWindows上での起動をバッチファイル化(Windows用Tclインタープリタが標準ではソースコードをcp932想定で読み込むため、起動オプションで強制的にutf-8を指定)。
- ソースコード全面リファクタリング。
- 2019-09-18 EMC_Clock_20190918 for AndroWish
- Android対応版。環境によるパラメーター自動調整機能の実装がないため、Windowsでは文字サイズに難あり。
- 終了キーバインド実装。
- 表示サイズ変更のバグあり。
- 2019-04-28 EMC_Clock_20190428
- 2015-03-23 EMC_Clock_20150323
- 全画面表示機能実装。
- (JST-2000によるシステムクロック較正機能は廃止。)
- 2012-11-26 EMC_Clock_20121126 with JST2000
- シーデックス株式会社(C-dex)製 電波修正時計装置 JST-2000のシリアル通信出力によるWindowsシステムクロック較正機能実装(DOSコマンドによる)。
- 2012-04-01 EMC_Clock_20120401
- 初版?
- アナログ時計表示の基本機能のみ。全画面表示機能なし(ウインドウ最大化表示のみ)。
更新履歴(だいたい)
このページから抜ける→
いさな工房HP トップ
/
@nifty
サイト管理者:岩橋伴典 as いさな
(E-mail:jo3emc@jarl.com / Twitter:@jo3emc)