2015-09-03 9 views
1

Мне нужно получить ответ от GSM-модема. Возможно ли это с Mac OS X? Я имею в виду, можно ли получить ответ и сохранить его в переменной?PHP + Последовательный порт + GSM-модем

Первая проблема

Я знаю о php_serial.class.php, но этот класс поддерживает Linux и Windows. Mac OS X имеет ядро ​​Darwin, поэтому оно не работает. Кроме того, некоторые команды отличаются между Linux и Mac OS X. Например, OS X использует «cu -l/dev/..., когда Linux использует stty -F/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. А вторая строка - вместо 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 

Действительно был бы оценен за любую помощь!

ответ

0

Использование:

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

echo $output; 
+0

Здравствуйте и спасибо за ваш ответ. Но все равно ничего. Я думаю, это потому, что ** cu -l ** следует делать с ** sudo **. Насколько я знаю, нет надежного способа использования ** sudo ** с shell_exec в php. – JEYCDEE

+0

Я думаю, что вам может понадобиться http://stackoverflow.com/questions/3173201/sudo-in-php-exec – Jackie