0

我正在开展一个项目,我们计划通过基于 Web 的应用程序控制流动站。我在 Raspberry Pi 上使用 UV4L 及其模块。我已经很好地设置了流媒体,但现在我正在尝试将数据发送回 Pi。

我已经拿了这个操纵杆并放入了演示网页。

我想要做的是获取这个操纵杆产生的 X 和 Y 值并将其发送回 Pi 并让它打印这些值。我一直尝试这样做的方法是将 X 和 Y 值转换为 JSON 并使用 Python 读取 JSON。我对编程比较陌生,并且已经陷入了众所周知的深渊。

我试图使用我在另一个stackoverflow 问题中找到的示例,这就是我生成的代码:

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 数据通道,但我不知道是否需要使用它们来执行此操作。

我还想知道是否有办法通过 websocket 发送变量值并使用 python 来解析 websocket。

感谢您的时间,

4

1 回答 1

0

由于您正在开发 Web 应用程序,因此选择 WebRTC 似乎很自然。UV4L 支持两路音频、视频和数据通道。以下是数据通道在 UV4L 端的工作方式。

此外,作为示例,您可以从 uv4l 服务器上的/stream/webrtc URL获取的内置 WebRTC 演示页面肯定会使用来自客户端的数据通道嵌入一些 javascript 代码。您也可以在此处的其他演示 Web 应用程序中找到一些代码。

于 2018-08-03T10:46:43.957 回答