Я пытаюсь использовать версию прошивки для создания имени файла, но получаю странные символы после вызова функции со ссылкой.
структура в globals.h
struct Versions {
char* remoteVersion;
char* currentVersion;
char* newVersion;
byte versionLength;
int response;
};
в wifiFwUpdater.h
void getFirmwareVersion(Versions &v) {
if (connect(hostConfig.host, hostConfig.port)) {
get(hostConfig.host, hostConfig.port, hostConfig.pathVersionWiFi);
parseResponseForVersion(v);
}
}
void wifiUpdater() {
Versions versions;
versions.versionLength = 7;
getFirmwareVersion(versions);
Serial.print(F("Remote Firmware version: "));
Serial.println(versions.remoteVersion);
Serial.print(F("Response: "));
Serial.println(versions.response);
if (versions.response != 1) {
...
в client.h
void parseResponseForVersion(Versions &v) {
char buf[v.versionLength];
while (true) {
if (client.available()) {
if (!client.find("HTTP/1.1")) {
v.response = 1;
break;
}
int statusCode = client.parseInt();
if (statusCode == 200 && client.find("\"version\" : \"")) {
int l = client.readBytesUntil('"', buf, v.versionLength - 1);
buf[l] = '\0';
Serial.print("Content-1: ");
Serial.println(buf);
v.remoteVersion = buf;
Serial.print("Content-2: ");
Serial.println(v.remoteVersion);
v.response = 1;
client.stop();
break;
} else {
client.stop();
v.response = statusCode;
break;
}
}
if (!client.connected()) {
client.stop();
v.response = -1;
break;
}
}
}
вывод
Content-1: 19.5.4
Content-2: 19.5.4
Remote Firmware version:
Response: 1
Не вижу, в чем причина ошибки.Разрешено ли простое присваивание из массива char указателю char?