@@ -168,8 +168,23 @@ void CAtHandler::add_cmds_preferences() {
168
168
}
169
169
break ;
170
170
case PreferenceType::PT_STR: {
171
- auto value = parser.args [2 ];
172
- error = String (pref.putString (key.c_str (), value.c_str ())) + " \r\n " ;
171
+ int value = atoi (parser.args [2 ].c_str ());
172
+ pref_buf = srv.inhibit_read (value);
173
+ size_t offset = pref_buf.size ();
174
+ if (offset < value) {
175
+ pref_buf.resize (value);
176
+ do {
177
+ offset += serial->read (pref_buf.data () + offset, value - offset);
178
+ } while (offset < value);
179
+ }
180
+
181
+ pref_buf.push_back (' \0 ' );
182
+
183
+ log_e (" PUT STR key: \" %s\" , value: \" %d\" pref_buf: \" %s\" " ,
184
+ key.c_str (), value, pref_buf.data ());
185
+
186
+ srv.continue_read ();
187
+ error = String (pref.putString (key.c_str (), (char *)pref_buf.data ())) + " \r\n " ;
173
188
}
174
189
break ;
175
190
case PreferenceType::PT_BLOB: {
@@ -297,7 +312,17 @@ void CAtHandler::add_cmds_preferences() {
297
312
break ;
298
313
case PreferenceType::PT_STR: {
299
314
auto value = parser.args [2 ];
300
- error = String (pref.getString (key.c_str (), value.c_str ())) + " \r\n " ;
315
+ auto res = pref.getString (key.c_str (), value.c_str ());
316
+ // error = String(pref.getString(key.c_str(), value.c_str())) + "\r\n";
317
+
318
+ log_e (" GET STR key: \" %s\" , value: \" %s\" res: \" %s\" len: %d" ,
319
+ key.c_str (), value.c_str (), res.c_str (), res.length ());
320
+
321
+ srv.write_response_prompt ();
322
+ srv.write_str (String (res.length ()).c_str ());
323
+ srv.write_str (" |" );
324
+ srv.write_str (res.c_str ());
325
+ srv.write_line_end ();
301
326
}
302
327
break ;
303
328
case PreferenceType::PT_BLOB: {
@@ -320,7 +345,7 @@ void CAtHandler::add_cmds_preferences() {
320
345
}
321
346
322
347
323
- if (type != PreferenceType::PT_BLOB) {
348
+ if (type != PreferenceType::PT_BLOB && type != PreferenceType::PT_STR ) {
324
349
srv.write_response_prompt ();
325
350
srv.write_str ((const char *)(error.c_str ()));
326
351
srv.write_line_end ();
0 commit comments