Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
1
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

@7of9

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

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時の日時を保持する処理が未実装

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
1
Help us understand the problem. What are the problem?