Класс Arduino IPADDRESS в строкуC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Класс Arduino IPADDRESS в строку

Сообщение Anonymous »

Для класса IPADDRESS существует встроенная функция/метод .toString(), которая отлично работает при выводе через Serial.println
Однако она, похоже, не полностью скрывает ее при сохранении в переменной Sting.
Я искал различные решения, включая включение некоторых ответов из Интернета, в мою собственную функцию преобразования, но ничего не помогает измените его.
Я пытаюсь сохранить его в массиве struct, т.е.:

Код: Выделить всё

typedef struct {
String name;
String value;
} varStruct;

const int maxVars = MAXVARS;
int varIdx = 0;
varStruct varArr[maxVars];

и у меня есть собственная функция, которая заполняет эту структуру:

Код: Выделить всё

void setVariableValue(String varName, String value) {
int i = 0;
int siz = sizeof(varArr) / sizeof(varStruct);
// Serial.printf("siz = %s\n", String(siz));

// Serial.printf("varName = %s\n", varName);
// Serial.printf("value = %s\n", value);

if (getVariableValue(varName) == "") {
if (varIdx == maxVars) {
Serial.println("ERROR! You need to increase MAXVARS if you need more variables stored.");
} else {
varArr[varIdx] = { varName, value };
varIdx++;
}
} else {
for (i = 0; i < sizeof(varArr) / sizeof(varStruct); i++) {
if (varArr[i].name == varName) {
varArr[i].value = value;
break;
}
}
}
arrayStat();
}

И для проверки arrayStat()

Код: Выделить всё

void arrayStat() {
for (int i = 0; i < sizeof(varArr) / sizeof(varStruct); i++) {
Serial.printf("vidx,name,value : %d,%s,%s\n", i, varArr[i].name, varArr[i].value);
}
}
И вот что видит arrayStat():

Код: Выделить всё

vidx,name,value : 14,,
variable: ipAddr not found
vidx,name,value : 0,hostname,8266Templ
vidx,name,value : 1,ipAddr,���?
vidx,name,value : 2,,
vidx,name,value : 3,,
Мой код компилируется правильно, но вызывает исключение

Код: Выделить всё

Soft WDT reset

Exception (4):
epc1=0x402133ca epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000000 depc=0x00000000

>>>stack>>>
...
и устройство продолжает перезагружаться.
Я не уверен, что это вызывает исключение, но это единственное, что не выглядит чистым в последовательном мониторе Arduino.
Есть еще идеи?>

Подробнее здесь: https://stackoverflow.com/questions/798 ... -to-string
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»