繁体   English   中英

PHP +串口+ GSM调制解调器

[英]PHP + Serial port + GSM Modem

我需要得到GSM调制解调器的响应。 Mac OS X是否可以? 我的意思是可以得到答案并将其保存到变量中吗?

第一个问题

我知道php_serial.class.php ,但是此类支持Linux和Windows。 Mac OS X具有Darwin核心,因此不起作用。 此外,Linux和Mac OS X之间的某些命令有所不同。例如当Linux使用stty -F / dev / ...访问设备时,OS X使用' cu -l / dev /...。

第二个问题

可能不是问题,但仍然不使用COM端口,而是使用USB-COM转换器。 这就是为什么我通过/dev/cu.usbserial-xxxxxx访问的原因,其中xxxxxx是设备的序列号。

我尝试了什么

$gsmModem = fopen('/dev/cu.usbserial-xxxxxx', 'r+');
if ($gsmModem) echo 'Port opend!<br/>'; else echo 'Error opening port';
fwrite($gsmModem, "AT\r\n");
$response = fclose($gsmModem);
echo $response;

第一行结果是: 端口已打开! 这意味着我已连接到USB-COM转换器。 第二行是1而不是OK

然后我尝试了shell_exec()命令,但是由于管理权限不足(我的猜测),仍然没有任何结果:

$gsmModem = shell_exec("cu -l /dev/cu.usbserial-xxxxxx; AT\r\n");
echo $gsmModem;

我可以做的一件好事是使用terminal.app ,在这里我可以与gsm调制解调器对话并获得每个标准命令的答案,但这并没有真正的帮助,因为我需要调制解调器的响应才能获取一些数据并使用它。 例如:

$ sudo cu -l /dev/cu.usbserial-xxxxxx
$ Password:
$ Connected.
  AT
  OK
  AT+CSQ
  +CSQ: 25,0

真的很感谢您的帮助!

采用:

exec("cu -l /dev/cu.usbserial-xxxxxx; AT\r\n", $output);

echo $output;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM