ラジオチップの制御
ラジオモジュールの制御は、Ricardo Lima Caratti 氏が公開しているRDA5807用ライブラリを使用した。
非常に優秀なライブラリで、簡単な初期設定だけで、すぐに使うことができた。
円形液晶への描画
制御に使用したM5Dialの表示部の液晶は円形で、プログラムからみると240x240dotsの正方形の描画領域があり、その中の直径240dotsのエリアが円形として表示される。
円形液晶への表示は、限られた表示エリアに収まるように表示パーツを配置する必要があり、そのレイアウトに苦労した。
そこで、簡易のGUIコンポーネントを自作して、表示画面を実装した。
GUIについて
前述のように、M5Dialは特殊な画面構成なので、文字の色・大きさとその配置場所を試行錯誤しながら調整を繰り返していた。その中で、無駄な機能の重複などが複数あり、コードの共通部分を整理をしてクラスとしてまとめていたら、簡易的なGUIコンポーネントが出来上がった。
- TitleBar
- Button
- ProgressBar
- TextField
- TextLabel
- Theme
文字を表示する座標位置、フォントの種類とサイズなどを最初に定義しておけば、再描画時に、同じ位置に同じ内容を表示するだけのものである。
単純なものであるが、少し開発が楽になった。
テーマについて
前述の簡易GUIコンポーネントは、オブジェクトの配色を個別に設定できる。しかし、配色がバラバラでは統一感に欠ける。
そこで、Java Swing の設計思想を見習い、カラーテーマとして、白、黒、プライマリー 3色、セカンダリー 3色の合計8色の色配列を定義し、それを読み込んでコンポーネントに反映させる機能を追加した。
Java Look and Feel Design Guidelines
具体的なテーマの使い方は、githubの解説を読んでいただきたい。