Jquery + php + serial comm

时间:2014-08-23 18:04:31

标签: php jquery ajax

在通过以下ajax调用获取返回值时遇到问题该函数正在将参数发送到php文件并且工作正常但是这没有获得返回值

        $(document).ready(function(){


            $state = "greenoff";
            $('input[type="checkbox"]').click(function()
                {
                    if($(this).is(":checked")){
                     $state = "greenon";
                }
                else if($(this).is(":not(:checked)")){
                        $state = "greenoff";

                }
                $.ajax({
                    type: "POST",
                    url: "led.php",
                    data: { 'action': $state }
                })
                .done(function(msg) {
                    alert( "Data Saved: " + msg );
                });

            }); 

            }


);

我的php代码如下

<?php 

if (isset($_POST['action'])) { 

    require("php_serial.class.php"); 
    $serial = new phpSerial(); 
    $serial->deviceSet("/dev/ttyACM0");  
    $serial->confBaudRate(9600); //Baud rate: 9600
    $serial->confParity("none");  //Parity (this is the "N" in "8-N-1")
    $serial->confCharacterLength(8); //Character length     (this is the "8" in "8-N-1")
    $serial->confStopBits(1);  //Stop bits (this is the "1" in "8-N-1")
    $serial->confFlowControl("none");
    $serial->deviceOpen(); 
    sleep(2);
    if ($_POST['action'] == "greenon") { 
        $serial->sendMessage("H\r"); 
        $read = $serial->readPort();
        echo $read;         
    } else if ($_POST['action'] == "greenoff") { 
        $serial->sendMessage("L\r"); 
        $read = $serial->readPort();
        echo $read;

    }
        } 


?>

1 个答案:

答案 0 :(得分:0)

将PHP文件分解为多个部分,并在PHP文件的各个点使用die('I am here 01')等异常终止它。

这样您就可以了解自己的距离,并找出问题开始的确切位置。

第一个测试只是用以下代码替换PHP代码:

<?php
die('Got to here');

您的AJAX代码块应该回显该消息。如果没有,则ajax甚至不会发生。