在PHP中循环时终止python

时间:2013-12-03 02:56:37

标签: php python raspberry-pi

我的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);
        }

1 个答案:

答案 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是平台相关的,而文件不是,所以选择是显而易见的。