Публикация значений переменных из Javascript и чтение их с помощью Python (UV4L, WebRTC, Raspberrypi3)
Я работаю над проектом, в котором мы планируем управлять ровером через веб-приложение. Я использую UV4L и его модули на Raspberry Pi. У меня хорошо настроена потоковая передача, но сейчас я пытаюсь отправить данные обратно в Pi.
Я взял этот джойстик и поместил на демонстрационную веб-страницу.
То, что я хочу сделать, это взять значения X и Y, которые генерирует этот джойстик, и отправить его обратно в Pi, чтобы он распечатал значения. Я пытался это сделать, чтобы превратить значения X и Y в JSON и прочитать JSON с помощью Python. Я относительно новичок в программировании, и меня бросили в пресловутый глубокий конец.
Я пытался использовать пример, который я нашел в другом вопросе stackru, это то, что я произвел, вырезая код:
var xhr = new XMLHttpRequest();
var url= “webappurl”;
xhr.open(“POST”, url, true);
xhr.setRequestHeader(“Content-Type”, “json”);
xhr.onload= function () {
if (xhr.readyState === 4 && xhr.status === 200) {
var json =JSON.parse(xhr.responseText);
console.log(json.x +”, “ + json.y);
}
};
var data = JSON.stringify({x, y});
xhr.send(data);
Затем я сделал это на стороне Python:
import requests
import simplejson
r = requests.get('webappurl')
c = r.content
j = simplejson.loads(c)
print(j)
Проблема, с которой я столкнулся, состоит в том, что все, что я нахожу в Интернете, содержит разные рекомендации о том, как это сделать, и я не смог найти что-то в проектах других людей, которые я мог бы использовать для наших целей или у которых есть знания для адаптации, и я нужно держать это как можно более прямым / простым.
У меня сложилось впечатление, что джойстик уже может быть построен с функциями / переменными, которые можно использовать для запуска или публикации.
Буду признателен за любые рекомендации о том, как лучше всего поступить с этим или о правильном коде для этого - у меня также есть доступные каналы данных WebRTC, но я не знаю, нужно ли мне их использовать для этого.
Я также задавался вопросом, есть ли средства для отправки значений переменных через веб-сокет и использования python для анализа веб-сокета.
Спасибо за ваше время,
1 ответ
Поскольку вы разрабатываете веб-приложение, кажется, что естественно оставаться в WebRTC. UV4L поддерживает двустороннюю передачу аудио, видео и данных. Вот как работают каналы данных на стороне UV4L.
Кроме того, встроенная демонстрационная страница WebRTC, которую вы можете получить, например, с URL-адреса / stream / webrtc на сервере uv4l, безусловно, встраивает некоторый код JavaScript с использованием каналов данных со стороны клиента. Вы также можете найти код в этом другом демонстрационном веб-приложении здесь.