Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Google助手输入到Python输出_Javascript_Python_Node.js_Google Assistant Sdk - Fatal编程技术网

Javascript Google助手输入到Python输出

Javascript Google助手输入到Python输出,javascript,python,node.js,google-assistant-sdk,Javascript,Python,Node.js,Google Assistant Sdk,这个问题很直截了当。我想用谷歌主页控制一架无人机(Bitcraze-Crazyflie)。输入为:“无人机飞到x3 y4”,由Firebase等像往常一样进行处理,结果是Google Assistant输出:“飞到x3 y4”,,但也是一个JSON格式的输出,用于导航无人机。因为drone与Python一起工作,所以这是更好的输出语言 编辑添加了更多上下文 目前,我使用的节点服务器运行以下代码: “严格使用”; //从Google客户端库上的操作导入Dialogflow模块。 const{dia

这个问题很直截了当。我想用谷歌主页控制一架无人机(Bitcraze-Crazyflie)。输入为:“无人机飞到x3 y4”,由Firebase等像往常一样进行处理,结果是Google Assistant输出:“飞到x3 y4”,,但也是一个JSON格式的输出,用于导航无人机。因为drone与Python一起工作,所以这是更好的输出语言

编辑添加了更多上下文

目前,我使用的节点服务器运行以下代码:

“严格使用”;
//从Google客户端库上的操作导入Dialogflow模块。
const{dialogflow}=require('actions-on-google');
//导入firebase功能包以进行部署。
const functions=require('firebase-functions');
//实例化Dialogflow客户端。
const-app=dialogflow({debug:true});
//处理名为“fly”的对话框流意图。
//intent收集名为“xaxis,yaxis”的参数。
app.intent('fly',(conv,{xaxis,yaxis})=>{
常数xAxis=xAxis;
const yAxis=yAxis;
//使用用户的坐标进行响应,并结束对话。
conv.close('收到,飞往'+xAxis+“,“+yAxis”);
});
//设置DialogflowApp对象以处理HTTPS POST请求。
exports.dialogflowFirebaseFulfillment=functions.https.onRequest(应用程序);
现在我想得到constxaxis和yAxis,并在Python程序中使用它们。我试过使用

process.stdout.write(xAxis + yAxis);
使用类似于

out = sensor.stdout.read(1)
但是代码将在Google服务器上运行,因此本地端口侦听无法工作


感谢您的帮助。

最好的方法是在GCP上安装另一台机器,而不是与您的家用电脑进行通信。从长远来看,您将了解更多信息,并更轻松地构建解决方案。因为我更熟悉AWS而不是GCP,所以我不能列举您需要配置的网络/安全组件,但可以说您不需要配置。因此,从理论上讲,它应该只是让另一台计算机上运行Python代码

如果你决定与家用电脑通话,你需要转发路由器上的端口。目前,它充当LAN设备的防火墙,不允许外部机器启动到内部地址的连接。e、 g.您的GCP计算机启动与家庭电脑的连接。默认情况下,允许使用另一种方式。如果您仔细想想,您的路由器有一个WAN IP地址,但您的LAN可以有多个设备(多个LAN IP)。如果您的GCP计算机在端口8080连接到路由器WAN IP,它应该连接到哪个LAN IP?你必须帮助你的路由器,并明确告诉它

一旦有了网络解决方案,就可以使用netcat(nc/ncat,取决于Linux发行版)调试连接本身(服务器可以与客户机通信)。Netcat是一个多功能的网络工具,通过它,您可以完全打开连接(在将程序添加到调试堆栈之前),并确保解决方案的网络部分按预期工作

nc-v
简单

这会让你到达你想去的地方。GCP无人机控制器和Python处理器机器之间的工作连接

额外好处-如果您想要一种让您的机器(PC或其他)在端口上侦听的快速方法,您可以使用Python内置的HTTP文件服务器模块

python -m http.server 8080
这将为运行此命令的目录中的文件提供服务。因此,如果你对世界开放,请记住这一点。
或者,一个简单的“echo服务器”,使用netcat

nc-v-l 8080

最后,对于坚实的Python HTTP API框架,我强烈推荐
FastAPI
。它允许使用GCP无人机控制器可以调用的POST方法快速编写HTTP API服务器。它有一个巨大的好处,即为您的代码生成交互式OpenAPI文档,并使用Swagger的第三方工具(您可以在链接的示例中看到)生成服务器/客户端/测试“锅炉板”代码。我也提到过他们的产品很棒吗?

欢迎。你能详细说明一下执行、输入和输出吗?另外,添加更多关于所用堆栈的信息,并添加更多上下文您可能需要某种消息断开,以允许无人机和数据中心之间的通信。目前,我正试图简单地通过节点发送HTTP POST请求,然后从Python获取请求。我只是不知道把请求送到哪里。