|
|||||||
Как правильно набрать номер на сотовом телефоне Siemens M50 через COM-порт
Время создания: 16.05.2015 22:25
Автор: Xintrea
Текстовые метки: Siemens, телефон, сотовый, мобильный, набор номера, COM-порт, команда
Раздел: Компьютер - Аппаратное обеспечение - Мобильные телефоны - Siemens M50
Запись: xintrea/mytetra_syncro/master/base/14318043312clv9v860j/text.html на raw.github.com
|
|||||||
|
|||||||
Набор номера через терминал Если у нас есть сотовый телефон Siemens C35...M65, и он подключен к компьютеру через COM-порт, то мы можем AT-командами управлять телефоном. Все дальнейшие примеры рассмотриваются для операционной системы Linux. Например, можно отправить команду набора номера через терминал minicom. В AT-команде должна присутствовать буква D (что обозначает "установка соединения", DIAL), а так же должна быть буква T, которая обозначает тоновый набор. Правильно команда набора номера будет выглядеть так: ATDT+79185512345; Да-да, именно с точкой с запятой ";" в конце! Если ее не поставить, то встроенный в Siemens HAYES-совместимый модем будет пытаться дождаться тонового сигнала, потом будет набирать номер, а потом будет ждать сигнала вызова. В сотовых сетях различные сотовые операторы по-разному дают ответ от станции на телефон во время набора номера. И в 99% случаев набор номера в сотовой сети совершенно не соответствует набору номера на обычном телефоне. А микросхема HAYES-совместимого модема в мобильнике стандартная, расчитанная на обычную телефонную линию (уж не знаю, почему так делают). Точка с запятой в конце команды говорит мобильнику: набери телефонный номер и больше ничего не делай. Не жди тоновых сигналов на линии, просто набери номер и вернись в консоль. Если не поставить точку с запятой, то при звонках на сотовоые телефоны различных операторов будут появляться ошибки: NO DIALTONE или NO CARRIER и номер нормально не наберется. Помните об этой хитрости! Набор номера через команду Bash А вот команда, которую можно выполнять прямо в консоли Bash, а не в терминале типа minicom: echo -e 'atdt+79181234567;\x0D' > /dev/ttyS0 В конце передается символ 0Dh, который является символом перевода строки. Сама команда echo по-умолчанию в конце строки передает символ 0Ah. Таким образом, в конце команды, в модем поступают символы 0Dh, 0Ah. Именно эти символы HAYES-совместимый модем воспринимает как конец команды. Опция -e означает, что в строке нужно находить спецсимволы, написанные в синтаксисе \xAA, и преобразовывать их в соответствующие байты. UPD: Тут мне подсказывают, что можно воспользоваться опцией -n, которая запрещает автоматически добавлять символ перевода строки в конце строки. Таким образом, можно формировать отправляемую строку в явном виде: echo -n -e 'atdt+79181234567;\x0D\x0A' > /dev/ttyS0 Такая запись более удобна, так как исключает неявные символы, и все что отправляется в COM-порт, мы видим прямо в строке. Настройка COM-терминала и организация мониторинга передаваемых по COM-порту данных Чтобы увидеть передаваемы по COM-порту данные (причем, в обе стороны), мы можем в отдельной консоли запустить команду: cat /dev/ttyS0 Однако, тут тоже есть одна хитрость. Если мы предварительно не настростроим терминал, который обменивается с устройством /dev/ttyS0 данными (т. е. с COM-портом), то мониторинг будет работать криво. Это будет проявляться в том, что:
Чтобы этого избежать, надо настроить терминал, например так: stty -F /dev/ttyS0 raw ispeed 9600 ospeed 9600 После такой команды, команда "cat /dev/ttyS0" волшебным образом заработает. То, что передается в COM-порт, и то, что принимается из COM-порта, будет видно в логе этой команды. |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|