Сайт | Скачать | Видео | Wiki

Автор Тема: 3G-модем.  (Прочитано 38102 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: 3G-модем.
« Ответ #90 : 05 Ноябрь 2016, 08:49:06 »
 На сегодняшний день есть два варианта tray3Gcsq и tray3Grssi. У них один и тот же недостаток - зависание, как выяснилось по вине модема. Модем, особенно старый, не всегда своевременно отвечает на посланную команду. Если не уложился в интервал - висяк. Второй минус - постоянно занят управляющий порт модема. Обойти можно отказавшись от постоянной индикации силы сигнала. Например запрашивать через меню по ПКМ. Запуск и остановка wvdial - клик по значку. Так устроит?
Если найду приемлемый декодер USSD, можно добавить запрос баланса и прочего.
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: 3G-модем.
« Ответ #91 : 05 Ноябрь 2016, 09:54:28 »
tray3Gcsq и tray3Grssi. У них один и тот же недостаток - зависание, как выяснилось по вине модема.
В NM ведь не зависает
Модем, особенно старый, не всегда своевременно отвечает на посланную команду
Я в своем traygsm подставил костыль - не уложился - оставляем прошлое значение. Висяков не было
Второй минус - постоянно занят управляющий порт модема
Если туда отправлять echo - это занят или что Вы под "занят" понимаете?
Чем плохо что занят?
Обойти можно отказавшись от постоянной индикации силы сигнала. Например запрашивать через меню по ПКМ. Запуск и остановка wvdial - клик по значку. Так устроит?
Как-то не очень
Мой traygsm у Вас точно не работает?
сли найду приемлемый декодер USSD, можно добавить запрос баланса и прочего.
Вот это очень интересно

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: 3G-модем.
« Ответ #92 : 05 Ноябрь 2016, 12:19:27 »
В NM ведь не зависает
Точно точно? Никогда никогда? ;)
Мой traygsm у Вас точно не работает?
Код
# ./traygsm
./traygsm: line 4: pgrep: not found
cp: can't stat '/usr/share/pixmaps/nm-signal-0.png': No such file or directory
# ./traygsm: line 9: ntf: not found
Кроме того, это из пушки по воробьям и видит только уже действующее соединение.
Вот это очень интересно
Код
# ./ussd /dev/ttyUSB2 *105# y
OCTATOK 15.65 p. *111*29# - популярная психология (3руб/день)
К сожалению исходник потерян :(
« Последнее редактирование: 05 Ноябрь 2016, 12:28:00 от DdShurick »
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: 3G-модем.
« Ответ #93 : 05 Ноябрь 2016, 21:23:11 »
 Сделал "ожидалку иксов". Требует два аргумента, из которых после запуска иксов формирует команду "prog arg &". Заточена под запуск GUI udev-ом.
Исходник:
Код
/* Waitx - ожидание загрузки X. GPL v2, DdShurick */

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

FILE *fd;
char cmd[32]="";
int n=0;

int main(int argc, char **argv) {

if (argc<3) { printf("usage: waitx comand device\n"); exit(1); }
//формируем команду
strcat(cmd,argv[1]);
strcat(cmd," ");
strcat(cmd,argv[2]);
strcat(cmd," &");
//ожидаем иксы
while((fd=fopen("/tmp/.X0-lock","r"))==NULL) {
sleep(1);
if(n==32) exit(1); //через полминуты самоликвидируемся
n = n + 1;
}
fclose(fd);
system("export DISPLAY=:0");
system(cmd);//запускаем указанную в argv[1] программу
exit(0);
}
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: 3G-модем.
« Ответ #94 : 05 Ноябрь 2016, 21:50:09 »

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: 3G-модем.
« Ответ #95 : 05 Ноябрь 2016, 22:12:55 »
Это ?
Нет, этот на Gambas :(
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: 3G-модем.
« Ответ #96 : 02 Декабрь 2016, 21:38:12 »
 Удалось победить нестабильность tray3Gcsq. Оказалось "собака порылась" совсем не там, где искал. Во всех инструкциях написано "echo AT\r\n", а оказалось, что перевод каретки "\r" лишний. Убрал - заработало, а до этого модем периодически возвращал "ERROR" и программа висла.
 Не всегда можно верить тому, что написано. :)
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: 3G-модем.
« Ответ #97 : 04 Декабрь 2016, 09:39:03 »
 Какие иконки лучше поставить? Смотреть здесь.
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: 3G-модем.
« Ответ #98 : 05 Декабрь 2016, 09:08:29 »
Какие иконки лучше поставить?
cell_*.svg из пупи и пра (070*pfs pixmaps)

Я написал на yad аналог network_tray. Через fifo заряжаю туда демоном любую иконку и тултип
Выложить?
« Последнее редактирование: 05 Декабрь 2016, 09:10:01 от sfs »

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: 3G-модем.
« Ответ #99 : 05 Декабрь 2016, 10:09:50 »
Выложить?
Не надо, Yad меня давно уже не интересует.
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: 3G-модем.
« Ответ #100 : 05 Декабрь 2016, 10:11:19 »
Yad меня давно уже не интересует.
чем не угодил?

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: 3G-модем.
« Ответ #101 : 05 Декабрь 2016, 10:24:01 »
чем не угодил?
Не помню, давно это было. Он тогда ещё Zenity назывался.
А чем плох "simple systray applet example by Rodrigo De Castro"?
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: 3G-модем.
« Ответ #102 : 05 Декабрь 2016, 10:32:27 »
Он тогда ещё Zenity назывался.
yad с ним частично совместим, но автор другой, размер меньше, функционал больше
чем плох "simple systray applet example by Rodrigo De Castro"?
СИ? Не универсально
Умеет
Через fifo заряжаю туда демоном любую иконку и тултип
?

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: 3G-модем.
« Ответ #103 : 07 Декабрь 2016, 22:21:48 »
 Sfs, не "забалтывай" тему. Вернёмся к нашим баранам.
Методом гугления и тыка сделал свой декодер ussd, сильно дефективный. Но работает. Запрос забит *105# (баланс tele2).
Код
#include <string.h>
#include <stdio.h>
#include <stdlib.h>

int main(void) {

FILE *fd;
char str[11];
int c;
//открываем порт модема на чтение + запись
if ((fd = fopen("/dev/ttyUSB2","r+"))==NULL) exit(1);
//отправляем ussd запрос *105# преобразованный в hexdump
fputs("AT+CUSD=1,AA18AC3602,15\n",fd);
//сочетание ",72" всегда стоит в конце ответа на ussd запрос, читаем до него по 10 знаков + перенос строки
    while ((strstr(str,",72"))==NULL) {
fgets(str,11,fd);
//"+CUSD:" - начало ответа, с этого места читаем подробнее, по 4 знака + перенос строки
if ((strstr(str,"+CUSD:"))!=NULL) {
while ((strstr(str,",72"))==NULL) {
fgets(str,5,fd);
//преобразуем строку (char str) в шестнадцатеричное число и выводим его в виде знака
sscanf(str,"%x", &c);
putchar(c);
}
}
}
//прикрываем лавочку
fclose(fd);
printf("\n");
return 0;
}
Код
# ./ussd
OCTATOK 14.09 p. #A;C30 '15I0==K9 ?;0B56'. =D: *122# 8;8 6377
Кириллицу не понимает, это надо ещё решать.
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: 3G-модем.
« Ответ #104 : 08 Декабрь 2016, 09:20:41 »
сильно дефективный.
Чем?
баланс tele2
А как для прочих?
Кириллицу не понимает
Т.е. ответ по русски крякозябрами?