2016-02-10 4 views
0

У меня есть USB-модем и карта GSM, подключенные к сети, надеясь на связь с ним. Я установил Minicom и atinout, и использовать эту команду в Minicom:Я продолжаю получать ошибку при отправке AT-команд с помощью USB-модема на ubuntu

AT+CUSD=1,"*137#",15 
ERROR 

и atinout также я сделал:

$ atinout - /dev/ttyUSB3 - < <(echo "AT+CUSD=1,\"*137#\",15") 
ERROR 

ноты:

  • с помощью менеджера модема GUI команды USSD и AT работают хорошо
  • и на atinout это работало несколько дней назад, а затем оно отказалось от работыверсия 10 оборудования:

    Производитель: TCT Mobile International Limited Model: HSPA Data Card Revision: IX1B5400XX

+2

Пожалуйста, скопируйте & вставить вывод вместо размещения скриншотов –

+0

это было просто ОШИБКА –

+0

'EOF' действительно не команда. Почему вы думаете, что можете запустить его как один? –

ответ

0

Если устройство работает в некоторых эмуляторах терминала, а не другие, то терминал, вероятно, неправильно настроен («Некорректны» означает «отличается от того, как настроено устройство на другой стороне соединения»; нет правильного или неправильного.)

Обычно проблема связана с боковыми скоростями, локальным эхо-сигналом или концами линии LF и CRLF. Вы можете настроить, как linux обрабатывает устройство tty с помощью stty (или setserial).

Пример:

Здесь я использую atinout поговорить с портом Telit DE910 "AUX" через UART.

$ echo 'AT+CREG?' | atinout - /dev/ttyO1 - 
AT+CREG? 
+CREG: 1,1 

OK 

Пока все хорошо. Но этот модем поддерживает несколько физических интерфейсов для каждого логического интерфейса, а с моим устройством логический порт «AUX» также доступен через /dev/ttyUSB2. В общем, мне нравится использовать /dev/ttyUSBn, потому что at least some of the ridiculous number of options that can be set by stty are fixed. Но в этом случае по умолчанию не достаточно хорошо для atinout хотя мы выпускаем же ввод команды на тот же логический порт:

$ echo 'AT+CREG?' | atinout - /dev/ttyUSB2 - 
AT+CREG? 


+CREG: 1,1 



OK 

AT+CREG 


ERROR 

^C 

Лишнего CRLFs являются поддавками в этом случае, и настройке терминала с stty raw исправляет его. (В моем случае -icrnl была единственной частью raw на самом деле необходимо.)

$ stty -F /dev/ttyUSB2 raw 
$ echo 'AT+CREG?' | atinout - /dev/ttyUSB2 - 
AT+CREG? 
+CREG: 1,1 

OK 

Проблема с использованием stty это вы изменили устройство для всех остальных. Вы можете использовать stty для сохранения начальной конфигурации, чтобы вы могли восстановить ее, когда закончите.

$ OLDSETTINGS=$(stty -g -F /dev/ttyUSB2) 
$ stty -F /dev/ttyUSB2 -igncr -icrnl -ixon -ixoff 
$ stty -F /dev/ttyUSB2 "$OLDSETTINGS" 

Наконец я рекомендую компилировать timeout с atinout чтобы избежать вешать, когда модем не реагирует так, как atinout ожидает.

$ echo 'AT+CREG?' | timeout -t5 atinout - /dev/ttyUSB2 -