LINUX.ORG.RU
ФорумTalks

Реквестируются владельцы GSM модемов.

 


0

1

Имеющие сабжевый девайс, если не влом протестируйте программу.
Исходники лежат по адресу https://bitbucket.org/PascalRD/gsminfo
Программа не выполняет никаких деструктивных AT команд, не шлет смс и прочее. Только вывод информации по качеству сигнала, имя сотового оператора и прочую инфу. Перед тестированием надо выключить pppd, если таковой висит на модеме.

★★★

Последнее исправление: pascal (всего исправлений: 3)

Ответ на: комментарий от Akamanah

Моя программа пока не умеет принимать путь до модема через аргументы.
Можно запилить симлинк /dev/gsmmodem -> /dev/ttyUSB1

pascal ★★★
() автор топика

Для справки: большинство gsm модемов подключается к com порту. Тот, что в телефоне, к длительной работе не годен.

lenin386 ★★★★
()
Ответ на: комментарий от gadfly

А что нужно учитывать, когда рассчитываешь com порт на длительную работу?

Ничего не надо учитывать. Надо покупать нормальный GSM модем. http://gprs-modem.ru/product/4ggsm-modem-teleofis-rx500-r4-novinka/ Телефоны глючат и виснут ВСЕ. Пары суток постоянной работы большинству телефонов хватает, чтоб повиснуть.

lenin386 ★★★★
()
Последнее исправление: lenin386 (всего исправлений: 1)
Ответ на: комментарий от lenin386

Через планшет качал торренты в течение шести часов. Ничего не зависло. Сомневаюсь, что в планшеты и смартфоны ставят сильно разные модемы.

Sakka
()
Ответ на: комментарий от lenin386

Я имел в виду именно с т.з. разработчика устройства. Чтобы не оказалось, что производимое устройство внезапно не рассчитано на длительную работу по UART.

gadfly ★★
()
Ответ на: комментарий от lenin386

Usb вообще отваливаться любит(ибо не промышленный это интерфейс). Хотя и gsm com-модемы тоже бывает виснут, хотя и редко.

Nightwing
()
Ответ на: комментарий от lenin386

Мы же тут говорим про бытовые модемы, которые в каждом ларьке продаются.

h31 ★★★★
()
$ ./gsminfo 
Cannot open /dev/gsmmodem: No such file or directory

$ grep /dev/gsmmodem ./ -r
./gsmoptions.h:#define DEFAULT_TTY "/dev/gsmmodem"
Binary file ./gsminfo matches
Binary file ./gsmoptions.o matches

$ nano ./gsmoptions.h 

$ git diff
diff --git a/gsmoptions.h b/gsmoptions.h
index d047e89..e9194c1 100644
--- a/gsmoptions.h
+++ b/gsmoptions.h
@@ -1,7 +1,7 @@
 #ifndef GSMOPTIONS_H_
 #define GSMOPTIONS_H_
 
-#define DEFAULT_TTY "/dev/gsmmodem"
+#define DEFAULT_TTY "/dev/ttyUSB0"
 
 enum {
     TTYFLAGSET = 1

$ rm ./gsminfo

$ rm ./*.o

$ make
cc -O2 -Wall -Wextra -pedantic -I. -c gsminfo.c -o gsminfo.o
cc -O2 -Wall -Wextra -pedantic -I. -c gsmcommon.c -o gsmcommon.o
cc -O2 -Wall -Wextra -pedantic -I. -c gsmaction.c -o gsmaction.o
cc -O2 -Wall -Wextra -pedantic -I. -c gsmoptions.c -o gsmoptions.o
cc gsminfo.o gsmcommon.o gsmaction.o gsmoptions.o -o gsminfo

$ ./gsminfo 
Cannot open /dev/ttyUSB0: Permission denied

$ sudo ./gsminfo 
write failed with error: Resource temporarily unavailable
No data received
write failed with error: Resource temporarily unavailable
No data received
write failed with error: Resource temporarily unavailable
No data received
write failed with error: Resource temporarily unavailable
No data received

$ # отключил интернеты

$ sudo ./gsminfo 
No data received
No data received
No data received
No data received
Kilte ★★★★★
()

Не работает прога

применил патч для своего модема


--- a/gsmoptions.h
+++ b/gsmoptions.h
@@ -1,7 +1,7 @@
 #ifndef GSMOPTIONS_H_
 #define GSMOPTIONS_H_
 
-#define DEFAULT_TTY "/dev/gsmmodem"
+#define DEFAULT_TTY "/dev/ttyUSB1"
 
enum {
     TTYFLAGSET = 1

И собрал

alexey@alexey-laptop:~/PascalRD$ make
cc -O2 -Wall -Wextra -pedantic -I. -c gsminfo.c -o gsminfo.o
cc -O2 -Wall -Wextra -pedantic -I. -c gsmcommon.c -o gsmcommon.o
cc -O2 -Wall -Wextra -pedantic -I. -c gsmaction.c -o gsmaction.o
cc -O2 -Wall -Wextra -pedantic -I. -c gsmoptions.c -o gsmoptions.o
cc gsminfo.o gsmcommon.o gsmaction.o gsmoptions.o -o gsminfo
alexey@alexey-laptop:~/PascalRD$ sudo ./gsminfo
No data received
No data received
No data received
No data received

А вот что за модем:


alexey@alexey-laptop:~/PascalRD$ mmcli -m 5 

/org/freedesktop/ModemManager1/Modem/5 (device id '99584187c37c90e539d1ed6be933258630d19b5d')
  -------------------------
  Hardware |   manufacturer: 'Sierra Wireless Inc'
           |          model: 'MC8305'
           |       revision: 'D3200-SCAUTNZ-331403GN07  1  [Oct 15 2012 18:48:03]'
           |      supported: 'gsm-umts'
           |        current: 'gsm-umts'
           |   equipment id: '355096043049492'
  -------------------------
  System   |         device: '/sys/devices/pci0000:00/0000:00:1d.0/usb4/4-1/4-1.6'
           |        drivers: 'usb, qmi_wwan, qcserial'
           |         plugin: 'Gobi'
           |   primary port: 'cdc-wdm1'
           |          ports: 'ttyUSB0 (qcdm), ttyUSB1 (at), cdc-wdm1 (qmi), wwan0 (net)'
  -------------------------
  Numbers  |           own : 'unknown'
  -------------------------
  Status   |           lock: 'sim-pin2'
           | unlock retries: 'sim-pin (3), sim-pin2 (3), sim-puk (10), sim-puk2 (10)'
           |          state: 'registered'
           |    power state: 'on'
           |    access tech: 'umts'
           | signal quality: '59' (recent)
  -------------------------
  Modes    |      supported: 'allowed: 2g; preferred: none
           |                  allowed: 3g; preferred: none
           |                  allowed: 2g, 3g; preferred: none
           |                  allowed: 2g, 3g; preferred: 2g
           |                  allowed: 2g, 3g; preferred: 3g'
           |        current: 'allowed: 2g, 3g; preferred: 3g'
  -------------------------
  Bands    |      supported: 'cdma-bc15-aws, dcs, egsm, pcs, g850, u2100, u1900, u17iv, u800, u850, u900'
           |        current: 'cdma-bc15-aws, dcs, egsm, pcs, g850, u2100, u1900, u17iv, u800, u850, u900'
  -------------------------
  IP       |      supported: 'ipv4, ipv6, ipv4v6'
  -------------------------
  3GPP     |           imei: '355096043049492'
           |  enabled locks: 'none'
           |    operator id: '25002'
           |  operator name: 'MegaFon'
           |   registration: 'home'
  -------------------------
  SIM      |           path: '/org/freedesktop/ModemManager1/SIM/5'

Root-msk ★★★★★
()
Последнее исправление: Root-msk (всего исправлений: 1)
Ответ на: комментарий от Root-msk

Всем спасибо за тесты. Добавил ключ -l для переопределения порта модема. Видимо проблемы с таймингом, сегодня на работе возьму пачку модемов и буду пробовать чинить. С моим хуавеем проблем нет.

./gsminfo -l /dev/ttyUSB1
signal strength: -93 dBm [Normal]
network registration: registered, home network
network name: «Beeline»
SIM card status: «PIN code not required»

pascal ★★★
() автор топика
Ответ на: комментарий от pascal

Перепробовал с десятью разными USB модмами, все вроде работает. Обновил исходники.

pascal ★★★
() автор топика

Перед тестированием надо выключить pppd

Пхех.

Мне бы модульный демон, который умеет подымать соединение и при этом можно к нему писать дёргающие AT (можно через абстракцию) плагинчики/команды, давать колбэк на результаты с нужной меткой из выхлопа, вот это всё. Оно и на ноуте со свистком не помешало бы, а для самодельного смартфона ой как нужно будет.

contra_sperm_spero
()
Ответ на: комментарий от contra_sperm_spero

ModemManager давно сделан и работает. С плагинчиками, etc. Штатный mmcli не то чтобы образец cli, но слать/читать sms и глядеть инфу про оператора, sim, и прочее можно. NetworkManager использует его DBus API для организации Mobile WWAN, с полосочками сигнала в трее который.

UPD: выше уже кидали собственно выхлоп mmcli

d_a ★★★★★
()
Последнее исправление: d_a (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.