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 байт засунуть? Выкладывайте весь код.
В начале подпрограммы воткните сЕриал и увидите какие значения приходят. При отладке этих сЕриалов обычно как блох на собаке.