1chipMSXと無線LAN(FlashAir) その4 ― 2017年02月28日 22:34
こちらのサイトを参考に、1chipMSXの起動時に外部タイムサーバーから時間を取得してセットするluaスクリプトを書いてみた。
制限はいくつかあるけど、日付時刻の自動取得が実現できる。
仕様は
1・FlashAIRの起動時実行スクリプトで、日付時刻指定用のバッチファイル作成
2・AUTOEXECの中で1のバッチを呼び出し
という簡単なもの。
日付時刻指定用のバッチの作成タイミングは、無線LANが有効になるまでの時間を考慮して、8秒後に指定。
起動に時間がかかる1chipNextorMSXだと十分間に合うみたい。
欠点は、日付時刻指定用のバッチは電源ON時に更新=リセットでは更新されないので、リセットしたときには時間が巻き戻る事。
MSX側からluaスクリプト呼べるか、なにかプログラム組めればどうにかできそうな気もするけど、とりあえず気にしない方向で…
以下手順。
※FlashAirはSTAモードで。
FlashAirのカレントに
TIMESET.BAT ファイル(空)
SCRIPT ディレクトリ
を用意
FlashAirのSD_WLANディレクトリのCONFIGファイルに1行追加
LUA_RUN_SCRIPT=/SCRIPT/startup.lua
上記サイトからダウンロードした
libFlashTime.lua
をlibFT.luaという名前でSCRIPTディレクトリに配置
以下スクリプトを
startup.lua
という名前でSCRIPTディレクトリに配置
---------------------------------------------
print("Script Start")
sleep(8000)
local timebat = "/TIMESET.BAT"
local t = require "/SCRIPT/libFT"
print("Get Time from NICT")
t.SetNICT();
t.ShowTime();
local Year,Month,Day,Hour,min,sec = t.GetTime();
local outfile = io.open(timebat, "w")
print("DATE "..Year.."/"..Month.."/"..Day.."\r\n")
outfile:write("DATE "..Year.."/"..Month.."/"..Day.."\r\n")
print("TIME "..Hour..":"..min..":"..sec.."\r\n")
outfile:write("TIME "..Hour..":"..min..":"..sec.."\r\n")
outfile:close()
print("Script End")
これで、FlashAirの起動毎にカレントのTIMESET.BATが更新される。
後はAutoexec内から
COMMAND2.COM TIMESET.BAT
として呼び出すだけ。
※2017/3/4 sleep(8000)が抜けてたので修正。
※sleepはもっと短くても時刻の取得は成功するのだけど、SDからのBIOSロードとかち合うと
※WebDav書き込みがおかしくなったりしました。適宜調整してみてください。
コメント
_ れふてぃ ― 2017年03月02日 00:20
_ ゆうくん ― 2017年03月05日 10:14
MMは関連ファイルをすべてリードオンリーにすると更新動作はしないみたいです。(ファイルの実行履歴記録)
今、FlashAirのRTC(レジスタ)から直接時刻取得するプログラム作ってみてるんですけど、電源オン直後の取得(MSXへのセット?)に失敗する…
これがうまく動けばリセット問題も解決なんですけどね…
今、FlashAirのRTC(レジスタ)から直接時刻取得するプログラム作ってみてるんですけど、電源オン直後の取得(MSXへのセット?)に失敗する…
これがうまく動けばリセット問題も解決なんですけどね…
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※投稿には管理者が設定した質問に答える必要があります。
トラックバック
このエントリのトラックバックURL: http://miyako.asablo.jp/blog/2017/02/28/8380094/tb
※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。
うちはカメラにFlashAirが入っているので・・・それを使うのはちょっとやりくりが大変なので、第四世代がでたら、それを買ってカメラに入れて古いのを使ってみたいです。
同時書き込みなんて普通しないような・・・と思っていたら、MM.COMって確か、定期的に何か書き込みに行っていましたね。あれとかぶるとまずそうです。FlashAir以外のドライブからMM.COMを起動していれば問題ないと思いますが。