ArduinoJson добавление данных и (или) преобразование из byte в String
- Войдите на сайт для отправки комментариев
Прошу сразу больно не пинать за мою тупость, я только учусь)))
Ситуация такая, есть дубликатор ключей TouchMemory (iButton);
свои функции выполняет как надо, но я хочу что бы он сохранял прочитанные ключи в память LittleFS (esp8266) в файл Json используя библиотеку ArduinoJson;
И когда я пытаюсь сохранить ключ в json, то сохраняется каждый считанный байт в новую строчку и получается такой вот вид
key: Array(10) 0: "0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2F" 1: "0x01, 0xBE, 0x40, 0x11, 0x5A, 0x36, 0x00, 0xE1" 2: "1" 3: "3" 4: "2c" 5: "b5" 6: "d" 7: "0" 8: "0"
В строчках 0 и 1 это то как должно записаться, и это я сам вручную записал в json.
А со строчки 2-8 это так как записывает считанный ключ, Но мне нужно соответственно как 0 и 1 строчке.
вот отрывок кода когда читается приложенный ключ и передается в функцию записи в json
for (byte x = 0; x < 8; x++) { display.print(addr[x], HEX); //Выводит на экран считанный код в виде 1:3:2C:B5:D:0:0:BD if (readflag == 0) { ReadID[x] = (addr[x]); //ReadID имеет тип Byte save_tmkey("FUCK", String(ReadID[x],HEX)); //Передаю в функцию для сохранения в json } if (x==7){ break; } display.print(":"); }
Вот функция JSON
void save_tmkey(String nameKey, String idKey){ DynamicJsonDocument doc(3056); File file = LittleFS.open("/json/save_tm.json", "r"); DeserializationError error = deserializeJson(doc, file); if (error) { Serial.print(F("deserializeJson() Не выполнена: ")); Serial.println(error.f_str()); return; } doc["data"]["name"].add(nameKey); doc["data"]["key"].add(idKey); file = LittleFS.open("/json/save_tm.json", "w"); if (serializeJsonPretty(doc, file)) { Serial.println("Ништяк, файлик записан"); } else { Serial.print ("АААА, Не могу записать файл, прости хозяин!!"); } file.close(); recordname=doc["data"]["name"].size(); recordkey=doc["data"]["key"].size(); }
Я понимаю что надо сделать, но не знаю как этого добиться. И по моему понятию, я должен либо преобразовать массив ReadID из byte в String и передать на запись, что бы записалось одной строкой, либо так же как то в цикле функции json добавлять в одну строку полученные данные.Но что бы я не пробовал, ни чего не получается.
Еще раз прошу не ругаться, если для Вас это очевидно и легко, думаю все с чего то начинали. Спасибо за понимание и помощь!!!
В массив значения записываются побайтово - одна ячейка один байт. А вы хотите в одну ячейку 9 байт засунуть? Выкладывайте весь код.
В начале подпрограммы воткните сЕриал и увидите какие значения приходят. При отладке этих сЕриалов обычно как блох на собаке.