SyntaxHighlighter

2016年6月25日土曜日

FlashAirのレジスタから時刻を得る


libFlashTimeでは、現在時刻の取得にファイル書き込みをして、
その更新日時を取り出すということをしていた。

当然、フラッシュに書き込みが発生するので、寿命が縮む。

しかし、最近更新されたFlashAir開発者サイトのレジスタマップを確認すると、
ReadStatusRegで取り出せる情報の中にDate,Timeがあることに気づいた。

ので実装。

DL = string.sub(fa.ReadStatusReg(),225,226)
DH = string.sub(fa.ReadStatusReg(),227,228)
TL = string.sub(fa.ReadStatusReg(),229,230)
TH = string.sub(fa.ReadStatusReg(),231,232)
z = tonumber(DH..DL..TH..TL,16)
Year,Month,Day,Hour,min,sec = t.GetLocalTimeFromFATtime(z);
print("RegTime "..Year.."/"..Month.."/"..Day.." "..Hour..":"..min..":"..sec.."");

これで、フラッシュに書き込むこと無く、時刻を取得できる。

おわり。
後々、libFlashTimeに関数として実装する予定。

0 件のコメント:

コメントを投稿