У меня возникли проблемы с отправкой команд на 3G-модем, подключенный к COM5. Модем принимает соединение и принимает команды. Но что-то не так (я думаю, что это в моих синтаксических / AT-командах). В гипертерминале команды возвращают ошибки. Если кто-то может помочь, я с удовольствием по достоинству оценил бы это.
——- CODE НИЖЕ ——-
<? exec("mode COM5 BAUD=9600 PARITY=N data=8 stop=1 xon=off"); $fp = fopen ("\\.\COM5:", "r+"); //$fp = dio_open('COM5:', O_RDWR | O_NOCTTY | O_NONBLOCK); if (!$fp) { echo "Uh-oh. Port not opened."; } else { $string = "AT+CMGF=1"; $string = $string."OK"; $string = $string."AT+CMGS='+27824139864'"; $string = $string."> Hello World?<Ctrl>+<Z>"; $string = $string."+CMGS: 44"; $string = $string."OK"; fputs ($fp, $string ); echo $string."\n"; fclose ($fp); } ?>
Вам нужно добавить \ r до конца каждой команды, а не «ОК». «ОК» – это ответ, который вы ожидаете вернуть по телефону. Использовать терминальную программу
1 second delay +++ 1 second delay The modem should respond with "OK" Type AT+CMGF=1 press enter key Modem will repond with "OK"
Etc … Возможно, ваш телефон не поддерживает режим текстового режима SMS только в режиме pdu
Введите значение + CMGF =?
Введите ключ ввода, если ответ равен + CMGF (0,1), он поддерживает как if (0), так и pdu. Вам нужно будет ввести SMS-сообщение в режиме pdu.
Существует множество примеров того, как это сделать.
Вам нужно добавить \ r до конца каждой команды, а не «ОК». «ОК» – это ответ, который вы ожидаете вернуть по телефону. Использовать терминальную программу
1 секунда задержки +++ 1 секунда задержки Модем должен ответить «ОК» Тип AT + CMGF = 1 нажмите клавишу ввода Модем ответит «ОК»
Etc … Возможно, ваш телефон не поддерживает режим текстового режима SMS только в режиме pdu
Введите значение + CMGF =?
Введите ключ ввода, если ответ равен + CMGF (0,1), он поддерживает как if (0), так и pdu. Вам нужно будет ввести SMS-сообщение в режиме pdu. Существует множество примеров того, как это сделать.
МОЖЕТ СДЕЛАТЬ МЕНЯ КОД