Публикация значений переменных из 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 с использованием каналов данных со стороны клиента. Вы также можете найти код в этом другом демонстрационном веб-приложении здесь.

Другие вопросы по тегам