1+ #ifndef STACKCHAN_SYSTEM_CONFIG_CPP
2+ #define STACKCHAN_SYSTEM_CONFIG_CPP
13#include " Stackchan_system_config.h"
24
3-
45StackchanSystemConfig::StackchanSystemConfig () {
56
67};
@@ -19,8 +20,11 @@ void StackchanSystemConfig::setDefaultParameters() {
1920 _servo[AXIS_X].pin = 22 ;
2021 _servo[AXIS_Y].pin = 21 ;
2122 break ;
23+ case m5::board_t ::board_M5StackCoreS3:
24+ _servo[AXIS_X].pin = 1 ;
25+ _servo[AXIS_Y].pin = 2 ;
2226 default :
23- Serial. printf (" UnknownBoard:%d\n " , M5.getBoard ());
27+ M5_LOGI (" UnknownBoard:%d\n " , M5.getBoard ());
2428 _servo[AXIS_X].pin = 22 ;
2529 _servo[AXIS_Y].pin = 21 ;
2630 break ;
@@ -60,17 +64,19 @@ void StackchanSystemConfig::setDefaultParameters() {
6064 _servo_type = 0 ;
6165 _servo[AXIS_X].start_degree = 90 ;
6266 _servo[AXIS_Y].start_degree = 90 ;
67+ _extend_config_filename = " " ;
68+ _extend_config_size = 0 ;
6369}
6470
6571void StackchanSystemConfig::loadConfig (fs::FS& fs, const char *yaml_filename) {
66- Serial.printf (" ----- StackchanSystemConfig::loadConfig:%s\n " , yaml_filename);
67- File file = fs.open (yaml_filename);
72+ M5_LOGI (" ----- StackchanSystemConfig::loadConfig:%s\n " , yaml_filename);
73+ fs::File file = fs.open (yaml_filename);
74+ DynamicJsonDocument doc (2048 );
6875 if (file) {
69- DynamicJsonDocument doc (2048 );
70- auto err = deserializeYml ( doc, file);
76+ DeserializationError err = deserializeYml (doc, file);
7177 if (err) {
72- Serial. printf (" yaml file read error: %s\n " , yaml_filename);
73- Serial. printf (" error%s\n " , err.c_str ());
78+ M5_LOGI (" yaml file read error: %s\n " , yaml_filename);
79+ M5_LOGI (" error%s\n " , err.c_str ());
7480 }
7581 serializeJsonPretty (doc, Serial);
7682 setSystemConfig (doc);
@@ -79,6 +85,9 @@ void StackchanSystemConfig::loadConfig(fs::FS& fs, const char *yaml_filename) {
7985 // JSONファイルが見つからない場合はデフォルト値を利用します。
8086 setDefaultParameters ();
8187 }
88+ if (_extend_config_size >= 0 ) {
89+ loadExtendConfig (fs, _extend_config_filename.c_str (), _extend_config_size);
90+ }
8291 printAllParameters ();
8392}
8493
@@ -109,13 +118,16 @@ void StackchanSystemConfig::setSystemConfig(DynamicJsonDocument doc) {
109118 _bluetooth.starting_state = doc[" bluetooth" ][" starting_state" ];// .as<bool>();
110119 _bluetooth.start_volume = doc[" bluetooth" ][" start_volume" ];
111120
121+ _wifi.ssid = doc[" wifi" ][" ssid" ].as <String>();
122+ _wifi.pass = doc[" wifi" ][" pass" ].as <String>();
123+
112124 _auto_power_off_time = doc[" auto_power_off_time" ];
113125 _font_language_code = doc[" balloon" ][" font_language" ].as <String>();
114126
115127 JsonArray balloon_lyrics = doc[" balloon" ][" lyrics" ];
116128
117129 _lyrics_num = balloon_lyrics.size ();
118- Serial. printf (" lyrics_num:%d\n " , _lyrics_num);
130+ M5_LOGI (" lyrics_num:%d\n " , _lyrics_num);
119131 for (int j=0 ;j<_lyrics_num;j++) {
120132 _lyrics[j] = balloon_lyrics[j].as <String>();
121133 }
@@ -133,6 +145,10 @@ void StackchanSystemConfig::setSystemConfig(DynamicJsonDocument doc) {
133145 _servo[AXIS_X].start_degree = 90 ;
134146 _servo[AXIS_Y].start_degree = 90 ;
135147 }
148+
149+ _extend_config_filename = doc[" extend_config_filename" ].as <String>();
150+ _extend_config_filesize = doc[" extend_config_filesize" ];
151+
136152
137153}
138154
@@ -142,35 +158,46 @@ const lgfx::IFont* StackchanSystemConfig::getFont() {
142158 } else if (_font_language_code.compareTo (" CN" )) {
143159 return &fonts::efontCN_16;
144160 } else {
145- Serial. printf (" FontCodeError:%s\n " , _font_language_code);
161+ M5_LOGI (" FontCodeError:%s\n " , _font_language_code);
146162 return &fonts::Font0;
147163 }
148164}
149165
150166void StackchanSystemConfig::printAllParameters () {
151- Serial. printf (" servo:pin_x:%d\n " , _servo[AXIS_X].pin );
152- Serial. printf (" servo:pin_y:%d\n " , _servo[AXIS_Y].pin );
153- Serial. printf (" servo:offset_x:%d\n " , _servo[AXIS_X].offset );
154- Serial. printf (" servo:offset_y:%d\n " , _servo[AXIS_Y].offset );
167+ M5_LOGI (" servo:pin_x:%d\n " , _servo[AXIS_X].pin );
168+ M5_LOGI (" servo:pin_y:%d\n " , _servo[AXIS_Y].pin );
169+ M5_LOGI (" servo:offset_x:%d\n " , _servo[AXIS_X].offset );
170+ M5_LOGI (" servo:offset_y:%d\n " , _servo[AXIS_Y].offset );
155171 for (int i=0 ;i<_mode_num;i++) {
156- Serial. printf (" mode:%s\n " , _servo_interval[i].mode_name );
157- Serial. printf (" interval_min:%d\n " , _servo_interval[i].interval_min );
158- Serial. printf (" interval_max:%d\n " , _servo_interval[i].interval_max );
159- Serial. printf (" move_min:%d\n " , _servo_interval[i].move_min );
160- Serial. printf (" move_max:%d\n " , _servo_interval[i].move_max );
172+ M5_LOGI (" mode:%s\n " , _servo_interval[i].mode_name );
173+ M5_LOGI (" interval_min:%d\n " , _servo_interval[i].interval_min );
174+ M5_LOGI (" interval_max:%d\n " , _servo_interval[i].interval_max );
175+ M5_LOGI (" move_min:%d\n " , _servo_interval[i].move_min );
176+ M5_LOGI (" move_max:%d\n " , _servo_interval[i].move_max );
161177 }
162- Serial.printf (" mode_num:%d\n " , _mode_num);
163- Serial.printf (" Bluetooth_device_name:%s\n " , _bluetooth.device_name .c_str ());
164- Serial.printf (" Bluetooth_starting_state:%s\n " , _bluetooth.starting_state ? " true" :" false" );
165- Serial.printf (" Bluetooth_start_volume:%d\n " , _bluetooth.start_volume );
166- Serial.printf (" auto_power_off_time:%d\n " , _auto_power_off_time);
167- Serial.printf (" font_language:%s\n " , _font_language_code);
178+ M5_LOGI (" mode_num:%d\n " , _mode_num);
179+ M5_LOGI (" WiFi SSID: %s\n " , _wifi.ssid .c_str ());
180+ M5_LOGI (" WiFi PASS: %s\n " , _wifi.pass .c_str ());
181+ M5_LOGI (" Bluetooth_device_name:%s\n " , _bluetooth.device_name .c_str ());
182+ M5_LOGI (" Bluetooth_starting_state:%s\n " , _bluetooth.starting_state ? " true" :" false" );
183+ M5_LOGI (" Bluetooth_start_volume:%d\n " , _bluetooth.start_volume );
184+ M5_LOGI (" auto_power_off_time:%d\n " , _auto_power_off_time);
185+ M5_LOGI (" font_language:%s\n " , _font_language_code);
168186 for (int i=0 ;i<_lyrics_num;i++) {
169- Serial. printf (" lyrics:%d:%s\n " , i, _lyrics[i].c_str ());
187+ M5_LOGI (" lyrics:%d:%s\n " , i, _lyrics[i].c_str ());
170188 }
171- Serial.printf (" led_lr:%d\n " , _led_lr);
172- Serial.printf (" led_pin:%d\n " , _led_pin);
173- Serial.printf (" use takao_base:%s\n " , _takao_base ? " true" :" false" );
174- Serial.printf (" ServoTypeStr:%s\n " , _servo_type_str.c_str ());
175- Serial.printf (" ServoType: %d\n " , _servo_type);
176- }
189+ M5_LOGI (" led_lr:%d\n " , _led_lr);
190+ M5_LOGI (" led_pin:%d\n " , _led_pin);
191+ M5_LOGI (" use takao_base:%s\n " , _takao_base ? " true" :" false" );
192+ M5_LOGI (" ServoTypeStr:%s\n " , _servo_type_str.c_str ());
193+ M5_LOGI (" ServoType: %d\n " , _servo_type);
194+ M5_LOGI (" ExtendConfigFileName: %s\n " , _extend_config_filename);
195+ M5_LOGI (" ExtendConfigFileSize: %d\n " , _extend_config_filesize);
196+
197+ printExtParameters ();
198+ }
199+
200+ void StackchanSystemConfig::loadExtendConfig (fs::FS& fs, const char * filename, uint32_t yaml_size) { };
201+ void StackchanSystemConfig::setExtendSettings (DynamicJsonDocument doc) { if ( _extend_config_filename == " " ) return ; };
202+ void StackchanSystemConfig::printExtParameters (void ) {};
203+ #endif
0 commit comments