последовательный порт — Как получить доступ к AT-командам из PHP?

Мне нужен доступ к модему ZTE для доступа к SIM ToolKit. Я много искал. Ничто не работает для меня. Мне нужно выполнить следующие команды AT из PHP:

AT+CUSD=1,'*111#',15.

Успешный ответ от терминала

Я пытался из командной строки, и это работает. просто не мог выполнить эту команду из PHP. Это должно быть просто.

require "php_serial.class.php";
$serial = new phpSerial;
$serial->deviceSet("COM6");
$serial->confBaudRate(115200);

// Then we need to open it
$serial->deviceOpen();

// To write into
$serial->sendMessage("AT+CMGF=1\n\r");
$serial->sendMessage("AT+cmgs=\"+92234444444\"\n\r");
$serial->sendMessage("sms text\n\r");
$serial->sendMessage(chr(26));

//wait for modem to send message
sleep(7);
$read=$serial->readPort();
$serial->deviceClose();

Я не знаю почему, но я не смог найти решение, хотя я установил DIO, PHP_Serial и многие другие инструменты из GitHub.

Если не удалось правильно объяснить мою проблему, проверьте следующую ссылку. У этого парня была такая же проблема. но это решение не работает для меня.

Подобная проблема, решение работает для других, а не для меня!

0

Решение

У нас точно такая же проблема, но мне удалось это исправить.

// From this Code
$serial->sendMessage("AT+CMGF=1\n\r");
$serial->sendMessage("AT+cmgs=\"+92234444444\"\n\r");
$serial->sendMessage("sms text\n\r");
$serial->sendMessage(chr(26));

// Change it to
$serial->sendMessage("AT+CMGF=1");
$serial->sendMessage(chr(13));
$serial->sendMessage('AT+cmgs="+92234444444"');
$serial->sendMessage(chr(13));
$serial->sendMessage("sms text");
$serial->sendMessage(chr(26));

Я не знаю, почему так должно быть. Моя теория состоит в том, что если вы используете свой сервер в Windows, он не может обнаружить, что \ n \ r являются кодами ascii 13 или 26 в отличие от серверов Linux. Я понял из этого https://www.diafaan.com/sms-tutorials/gsm-modem-tutorial/at-cmgs-text-mode/ ссылка, что синтаксис команд AT + должен быть таким ^ ^ ^

Ура!

0

Другие решения

Других решений пока нет …