Я создаю веб-интерфейс для ESP8266. Веб-интерфейс должен отправлять HTTP-запросы к ESP, который затем выполняет код. Моя проблема в том, что я получаю странную информацию о препроцессоре в своем коде JavaScript
Код: Выделить всё
let buttonHoldInterval;
let speedMultiplier = document.getElementById('speed-slider').value;
document.getElementById('speed-slider').addEventListener('change', function() {
speedMultiplier = this.value;
console.log('Speed multiplier set to ' + speedMultiplier);
fetch('/set-speed/' + speedMultiplier);
})
#line 94 "C:\\Users\\david\\Desktop\\Fomanoch\\fomanoch\\fomanoch.ino"
function handleButtonHold(buttonId, message);
#line 105 "C:\\Users\\david\\Desktop\\Fomanoch\\fomanoch\\fomanoch.ino"
function handleButtonClick(buttonId, message);
#line 94 "C:\\Users\\david\\Desktop\\Fomanoch\\fomanoch\\fomanoch.ino"
function handleButtonHold(buttonId, message) {
document.getElementById(buttonId).addEventListener('mousedown', function() {
console.log(message + ' button pressed');
fetch('/' + buttonId + '/press');
})
Код: Выделить всё
const char* html = R"rawliteral(
Light Front
Light Back
let buttonHoldInterval;
let speedMultiplier = document.getElementById('speed-slider').value;
document.getElementById('speed-slider').addEventListener('change', function() {
speedMultiplier = this.value;
console.log('Speed multiplier set to ' + speedMultiplier);
fetch('/set-speed/' + speedMultiplier);
})
function handleButtonHold(buttonId, message) {
document.getElementById(buttonId).addEventListener('mousedown', function() {
console.log(message + ' button pressed');
fetch('/' + buttonId + '/press');
})
document.getElementById(buttonId).addEventListener('mouseup', function() {
console.log(message + ' button released');
fetch('/' + buttonId + '/release');
clearInterval(buttonHoldInterval);
})
}
function handleButtonClick(buttonId, message) {
document.getElementById(buttonId).addEventListener('click', function() {
console.log(message + ' button clicked');
fetch('/' + buttonId);
});
}
handleButtonHold('forward', 'Forward');
handleButtonHold('backward', 'Backward');
handleButtonHold('left', 'Left');
handleButtonHold('right', 'Right');
handleButtonHold('horn', 'Horn');
handleButtonClick('light-front', 'Light Front');
handleButtonClick('light-back', 'Light Back');
document.getElementById('mode-switch').addEventListener('click', function() {
console.log('Mode switch button pressed');
});
)rawliteral";
Как воспроизвести ошибку:
Используйте новейшую среду разработки Arduino.
Используйте официальную библиотеку ESP8266.
Загрузите код в ESP и подключитесь к WIFI. (https://sourceb.in/l71sjRog4d)
Откройте веб-сайт ESP
Обновление:
Упомянутые обходные пути не работают т работаю. И даже если бы они это сделали, это не решает реальную проблему, заключающуюся в том, что препроцессор добавляет эти строки в строку. Что еще более важно, это происходит каждые 3–4 проекта. С момента создания этого кода я сделал 8 подобных программ. У двух из них была та же проблема.
Подробнее здесь: https://stackoverflow.com/questions/782 ... ng-literal