前回の記事で作り始めたCSVサーバーですが、所定の動作確認を終えてブレッドボードながら稼働開始することにしました。
Pico Wのリセット、時刻合わせ(成否)、WiFi接続断時の再接続をsyslog-XXXX.txtにCSVファイルとして記録することにしました。
XXXXの部分は年月でYYMMとします。
WiFi接続断を検出すると一定の時間後にPico Wをリセットして復旧を試みます。
今のところ手持ちのLinux PCからncコマンドでsocket通信をして動作確認をしながら様子を見ます。24時間の試験で時刻合わせを実施したことを確認していますが、WiFi断については使っているうちにログに現れるのを待ちたいと思います。
クライアントの機器からCSVファイル(群)に対して以下が可能です。
複数行のレスポンスを要するコマンドに対しては最後にEOF("\x1a\n")を送ります。
1.現在時刻問い合わせ
2.全ファイル一覧
3.前方一致のファイル名一覧
4.指定ファイル名の有無を確認
5.新規ファイル作成
6.指定ファイルに一行追加
7・指定ファイルに現在時刻入り1行追加
8.指定ファイルの全文要求
9.指定はファイルの最終行要求
コマンド、レスポンス共に1行の末尾は常に改行コード("\n")です。
情報が変化しない単純な応答時には標準レスとしてACK、NAKを返します。
現在時刻は日付と時刻ともに6桁固定で、YYMMDD hhmmssを示す文字列です。
CSVファイルは1か月ごとに分けて保存します。例:test-2607.txt
クライアント側は年月を意識せずにtestに1行追加とすれば、CSVサーバーが当月のファイルに追加します。
長期間運用するとファイルが増えるのですが、整理したりフォルダーに分ける作業は一旦CSVサーバーを止めてPC等で直接SDカードを編集することにしました。
大きなファイルを扱うものではありませんが、24時間365日人知れず動き続けるデータサーバーとして手軽に使えるものと期待しています。
運用しながら必要に応じて改良する予定です。
ハード的に問題が無いようならユニバーサル基板で手作りしてケースに収めようと思います。
今後とも宜しくお願いします。