我的Raspberry Pi项目遇到问题
我有一个在Raspberry Pi上运行的Web服务器,我编写了一个带有一些按钮来控制Pi的Web界面。 Pi将在最初的“while True”循环中运行python脚本。它代表自动模式。
这是一个问题。当我点击网页上的按钮时,我想切换到手动模式。这意味着我想终止“while True”循环并运行其他一些python脚本。我怎样才能在我的网页上实现它?还考虑到我可能想切换回自动模式。
window.prettyPrint && prettyPrint();
$('#power-switch').on('switch-change', function (e, data) {
if(data.value == true){
var $el = $(data.el)
, value = data.value;
//console.log('on',e, $el, value);//for debug
/*
add your function here
*/
js_pw_ON();
$('#auto-switch').bootstrapSwitch('setActive', true);
$('#lgt1').prop('disabled', false);
$('#lgt2').prop('disabled', false);
$('#lgt3').prop('disabled', false);
$('#lgt4').prop('disabled', false);
$('#lgt5').prop('disabled', false);
}
答案 0 :(得分:0)
实现目标的最简单方法是使用名为“manual_mode”的文件,内部为0或1。当然,php和python都必须具有文件的权限。
Php可以很好地处理文件。好吧,如果你想要手动模式:
file_put_contents('manual_mode','1');
关:
file_put_contents('manual_mode','0');
Python与文件相处得非常好:
while 1:
f = open('manual_mode','r')
val = f.read()
f.close()
if val == '1':
break
编辑:如果你使用jquery,你应该首先制作switch.php文件:
<?php
if(!empty($_GET['sw']) && $_GET['sw'] == 1)
{
file_put_contents('manual_mode','1');
} else
{
file_put_contents('manual_mode','0');
}
当您将此名称称为 switch.php?sw = 1 时,manual_mode将设置为1(否则为0)。你接下来要做的是从你的jquery代码执行对php脚本的调用:
$.get("switch.php?sw=1");
我认为这就是你所需要的。
顺便说一下。根据评论,IPC是平台相关的,而文件不是,所以选择是显而易见的。