Проблема с использованием adc/read, ошибка base64
Ryo-Zi opened this issue · 2 comments
Пытаюсь считать данные с ADC, в панели управления данные нормально отображаются.
При попытке модифицировать стандартный JS скрипт для работы, после успешного считывания данных с датчика (в панели управления) и передачи ответа сервера в функцию:
function datarecevied(base64) {
var data = atob(base64);
print("ADS = " + data, "green");
measure();
}
Сам запрос:
xmlhttp.send(JSON.stringify({"command":"adc/read", "parameters":{"0":"read"}}))
В консоли браузера получаю ошибку:
Uncaught InvalidCharacterError: Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.
Я делаю что-то не так или данные с сервера приходят "битые"?
С ADC данные приходят в json внутри которого числа с плавающей запятой напротив каждого входа ADC(у esp8266 он один).
т.е. данные в результате команды будут ввида {"0":"0.554"}. В функции которая зовет datarecevied(base64) нужно убрать извление поля "data", а вместо этого извлечь поле "0". Полученное число с плавающей запятое - напряжение на входе ADC в Вольтах. На ADC можно подавать от 0 до 1 Волта. Дискретность ADC - 10 бит.
Спасибо за помощь ;)