У меня есть элемент массива uint16_t, который я хочу обновить, прежде чем применить его как объект JSON.
void JSONmsgBuilder_modbus(){
//clear msg to build new one
memset(msg, 0, sizeof(msg));
//char JSONmsg [2]; // use basic ascii keys like A or AA
jw.startObject();
for (int i=0; i < 51; ++i){
char buffer [4];
int u = i;
std::string JSONfirst = itoa((u + 1), buffer, 10);
const char *JSONeventName = JSONfirst.c_str();
//Serial.println(saved_holdingRegister[i]);
//debugging
//Serial.print ("the JSON key is: ");
//Serial.print (JSONeventName);
//Serial.println (" end of JSON key");
//uint16_t parsingModData = saved_holdingRegister[i];
//char modData_char[2];
//modData_char[0] = parsingModData & 0xFF;
Serial.println(saved_holdingRegister[i]);
int newModData = saved_holdingRegister[i];
//char newModData[12];
//sprintf(newModData, "", saved_holdingRegister[i]);
jw.insertKeyValue(JSONeventName, newModData);
//Serial.print("Value added: ");
//Serial.print(saved_holdingRegister[i]);
}
Мой uint16_t
saved_holdingRegisters
был ранее обновлен другой функцией. Когда я go применяю ее к этой JSON функции построения сообщения, она просто не обновляется. Я знаю, что он обновляется без проблем, входя в функцию и вплоть до применения ее к объекту JSON, но когда я запускаю serial.print(msg
) после создания сообщения JSON, я просто получаю {"1":null "2" null....}
, так как если он вообще никогда не обновляется.