記録データのファイルの扱い…大事な計測データは時間とともに一定間隔毎、HDDに記録させます。シーケンシャルファイルとランダムファイル、どちらにも特徴がありますが、単純な追記ならともかく、記録されたデータ照合、確認しながらのスタイルでは、やっぱりランダムファイルにアクセスするのは、取り扱いの軍配は高いものです。
記録開始と終了、停電対策…記録ファイルの状態によってプログラムがおかしい状態で動作しないよう、事前の記録手続きのファイルアクセス設計が大事です。
今回作成した記録ファイル、その中で唯一、23:59:59に停電すると、残念ながら更新のための新規ファイル作成に失敗するため、前日分データが消滅する、というバグ…というかプログラム設計の盲点が発見されました。
考えてみればそのとおりで、00:00:00に新しいノートを作成させるわけですから、停電(=瞬間でも)した時間がちょうどノート作成できなかった場合、どうしてもこうしたエラーとなります。
ただし、ここまでマジメに対策すると、今度、例えばPCの年月日や時間をあえて間違えて設定し、あるいは手動で継続データ記録する場合、時間設定のエラー処理がもう大変複雑になります。
記録された時間で判断する設計ですから、時間基準が壊されると、ヤバイわけです。
この場合の対策、それは日付の変わる深夜0時に停電をさせない…。ソフトウェアで対処するのでなくハードウェア対策、これが普通の正解(対策と思います。
記録開始と終了、停電対策…記録ファイルの状態によってプログラムがおかしい状態で動作しないよう、事前の記録手続きのファイルアクセス設計が大事です。
今回作成した記録ファイル、その中で唯一、23:59:59に停電すると、残念ながら更新のための新規ファイル作成に失敗するため、前日分データが消滅する、というバグ…というかプログラム設計の盲点が発見されました。
考えてみればそのとおりで、00:00:00に新しいノートを作成させるわけですから、停電(=瞬間でも)した時間がちょうどノート作成できなかった場合、どうしてもこうしたエラーとなります。
ただし、ここまでマジメに対策すると、今度、例えばPCの年月日や時間をあえて間違えて設定し、あるいは手動で継続データ記録する場合、時間設定のエラー処理がもう大変複雑になります。
記録された時間で判断する設計ですから、時間基準が壊されると、ヤバイわけです。
この場合の対策、それは日付の変わる深夜0時に停電をさせない…。ソフトウェアで対処するのでなくハードウェア対策、これが普通の正解(対策と思います。
PR