LoginSignup
0
1

More than 5 years have passed since last update.

message station > ..v0.29 > メッセージ保持機能実装完了 > EEPROMライブラリ使用

Last updated at Posted at 2016-02-27

https://hackaday.io/project/9526-bring-your-own-pizero-byop
でBYOPの核となるMessage stationの実装

http://qiita.com/7of9/items/a1aee7c4b8f0d4bc8d9b
の続き

code v0.29

v0.29 @ github

SPIFFSの落とし穴

SPIFFSライブラリを使ってメッセージを保持しようとしたら、他の自作ライブラリが宣言されてないというエラーが出るようになった。

@exabugs さんの記事にて同じFlashに書き込む別の方法としてEEPROMライブラリがあることを覚えていたので、そちらを使うことにした。
http://qiita.com/exabugs/items/0220edd4c9bf93da981b

EEPROMライブラリは uint_8 型での書込みなので、ラッパー関数を自作して使用した。
filesysLib.ino

ファイル構成

ファイル構成は以下となった。

  • dataStructure.h
  • esp8266_160217_AQM0802.ino
  • esp8266_160220_BYOP.ino
  • esp8266_160220_StringLib.ino
  • esp8266_160220_UARTlib.ino
  • esp8266_160220_dataLib.ino
  • esp8266_160221_msgStorageLib.ino
  • esp8266_160227_filesysLib.ino
  • msgStorage.h

今回追加した esp8266_160227_filesysLib.ino は他のプロジェクトでも使えるように実装したつもりであるが、依存性が何か残っているかもしれない。
debug_outputDebugString()はデバッグ出力用なので、ダミー関数を用意することでesp8266_160227_filesysLibを他プロジェクトで使えると思うが未確認。

シリアルコマンド

通信プロトコル
http://qiita.com/7of9/items/a62a6f21b00923fe3658

使用例

シリアルモニタの入力例

hello,1,7of9
check
post,Vital,hello_Vital,0
bye

電源を切る
電源を入れる : Flashからメッセージが読み込まれる

hello,2,Vital
check
get
bye

シリアルモニタの出力例

hello,7of9
check,0
post,ok
bye,7of9
hello,Vital
check,1
get,hello_Vital,0
bye,Vital

メッセージクリア

v0.24においてメッセージをクリアするコマンドも入れておいた。
主にテスト用。

// serail number of the 1st commit of [esp8266_160220_BYOP]
static const String kAuthorizationCode = "7975f53";

として定義しているコードを合わせて以下でメッセージをクリアできる。

clear,7975f53

kAuthorizationCodeを入れているのは誤操作防止。

VoyagerやNextGenerationとかだと、艦長、副長、中佐くらいのAuthorizationCodeを合わせることで船の自爆シーケンスを開始できるのだが、敵役のボーグ(or カーデシア人 or ロミュラン人)が停止してくれる親切設計。

TODO

DONE: メッセージpost時の日時を保持する処理が未実装

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1