Я использую ArduinoJSON, чтобы написать пару точек данных моей EEPROM на Arduino Uno. Я столкнулся с проблемой с getGroundedPR
, где мне нужно преобразовать uint8_t в символ, чтобы передать полученные данные в мой парсер JSON.Arduino чтение json из EEPROM/конвертирование uint8_t в char
Это мой первый опыт использования EEPROM, поэтому я готов поспорить, что есть лучший способ сделать это. Должен ли я продолжать использовать JSON или есть лучший способ? Я осторожно отношусь к лимиту записи 10к (дайте или возьмите) на EEPROM.
ЭСППЗУ чтение/запись комментируется, пока я не мой процесс прибиты
void IMUController::setGroundedPR(double p, double r) {
Serial.print("Setting IMU ground: ");
StaticJsonBuffer<200> jsonBuffer;
JsonObject& root = jsonBuffer.createObject();
root["pitch"] = p;
root["roll"] = r;
root.printTo(Serial);
char buffer[256];
root.printTo(buffer, sizeof(buffer));
Serial.println();
// EEPROM.write(EEPROM_ADDRESS_IMU_GROUNDED, buffer);
}
double* IMUController::getGroundedPR() {
double ret[2] = {0, 0};
StaticJsonBuffer<200> jsonBuffer;
uint8_t json_saved = EEPROM.read(EEPROM_ADDRESS_IMU_GROUNDED);
char json[] = "asdf"; // convert json_saved to char here
JsonObject& root = jsonBuffer.parseObject(json);
if(!root.success()) {
// return the result
ret[0] = (double)root["pitch"];
ret[1] = (double)root["roll"];
return ret;
}
return ret;
}