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

Автор Тема: Скрипт для проверки и пополнения счета для модема Huawei E1550  (Прочитано 44555 раз)

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

Оффлайн rodin.s

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1179
  • Репутация: +96/-0
  • Автор темы
Также я написал простой скрипт для просмотра SMS на E1550. Иногда бывает нужно.
Еще мне дали поэкспериментировать со вторым популярным у нас модемом ZTE MF100. Я слегка переделал для него скрипты band и signal.

Оффлайн rodin.s

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1179
  • Репутация: +96/-0
  • Автор темы
Сейчас был на сайте Барри, а он сейчас вплотную занимается 3G модемами, и нашел интересную ссылку: http://www.codeproject.com/KB/IP/3G_Modem_Internet_Dialer.aspx Самая интересная часть для меня в том, что модем, когда подключен к интернету, на своем втором порте (у меня /dev/ttyUSB2) выдает информацию о времени соединения,  скорости соединения, принятых и отправленных данных. Интересно написать скрипт, который может это расшифровать.
Например мой модем сейчас выдает:
Код
# cat /dev/ttyUSB2 | grep 'DSFLOWRPT'
^DSFLOWRPT:00000144,00000000,00000000,000000000000823A,000000000001E7F9,00007D00,0001F400
^DSFLOWRPT:00000146,00000000,00000000,000000000000823A,000000000001E7F9,00007D00,0001F400
^DSFLOWRPT:00000148,00000000,00000000,000000000000823A,000000000001E7F9,00007D00,0001F400
^DSFLOWRPT:0000014A,00000000,00000000,000000000000823A,000000000001E7F9,00007D00,0001F400
^DSFLOWRPT:0000014C,00000000,00000000,000000000000823A,000000000001E7F9,00007D00,0001F400
^DSFLOWRPT:0000014E,00000000,00000000,000000000000823A,000000000001E7F9,00007D00,0001F400
^DSFLOWRPT:00000150,00000000,00000000,000000000000823A,000000000001E7F9,00007D00,0001F400
^DSFLOWRPT:00000152,00000000,00000000,000000000000823A,000000000001E7F9,00007D00,0001F400
И так далее...
Вот расшифровка (подробно по ссылке):

^DSFLOWRPT: N1, N2, N3, N4, N5, N6, N7
        N1: Connection duration in seconds
        N2: measured upload speed
        N3: measured download speed
        N4: number of sent data
        N5: number of received data 
        N6: connection, supported by the maximum upload speed
        N7: connection, supported by a maximum download speed

Нужно разделить и перевести из шестнадцатиричной системы в десятичную.

Оффлайн rodin.s

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1179
  • Репутация: +96/-0
  • Автор темы
Только, что прочитал у Барри Каулера, как добавить значок на рабочий стол при установке pet-пакета. http://bkhome.org/blog/?viewDetailed=02079 Это то, что нужно для скрипта проверки баланса. Сделал pet-пакет - значок проверки баланса будет добавлен на рабочий стол. Как пользоватья написано выше, через два поста. Также в пакет добавлены скрипты band и sms.
« Последнее редактирование: 11 Январь 2011, 16:17:11 от rodin.s »

Оффлайн rodin.s

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1179
  • Репутация: +96/-0
  • Автор темы
По этому-же принципу сделал скрипт дозвона. Заменяет PupDial и pgprs. Строка инициализации не нужна - используется записанная в модеме. Если удалось выйти в Интернет другим способом даже из Windows (теоретически) - строка инициализации должна сохраниться. Проверить можно введя в консоли:
Код
modem-stats -c 'AT+CGDCONT?' /dev/ttyUSB0
. (или другое устройство) Будет что-то типа:
Код
# modem-stats -c 'AT+CGDCONT?' /dev/ttyUSB0

+CGDCONT: 1,"IP","3g.utel.ua","0.0.0.0",0,0
+CGDCONT: 3,"IP","3g.utel.ua","0.0.0.0",0,0
OK
Если строка инициализации подходит - можно звонить.
Устройство по умолчанию - /dev/ttyUSB0. Если устройство другое нужно раскомменитировать нужное в скрипте /etc/ppp/peers/utel. Отрывок файла.
Код
#tty device (COM cable connected directly to COM1 port)
#/dev/ttyS0
#tty device (COM cable + USB to 9-pin Serial Converter)
/dev/ttyUSB0
#/dev/ttyUSB_utps_pcui
Модем должен быть переключен из режима диска в режим модема или usb-modeswitch или AT-командой.
После установки пакета ниже значка "Позвонить" появится значок "3G-модем", при нажатии на который, произойдет подключение к Интернету. У меня работает. Проверяю в Wary-5.0.
При удалении пакета значок не удалится. Не разобрался с этим. Нужно удалить вручную.
Если поставить еще и предыдущий пакет - будет два значка: один - проверка баланса, второй - подключение к Интернет.
« Последнее редактирование: 12 Январь 2011, 01:36:33 от rodin.s »

Оффлайн rodin.s

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1179
  • Репутация: +96/-0
  • Автор темы
Пакет дозвона
« Ответ #19 : 16 Январь 2011, 00:24:04 »
Доработал пакет дозвона. Сделал возможность переподключения подобно pgprs. "Нажмите r для переподключения".  Также теперь можно проверить записанную в модем точку доступа:
Код
pe1550 apn

или правой кнопкой на значок: Редактировать > Аргументы для передачи в качестве параметров и там нужно вписать: apn. Потом нажать на значок. Для дозвона удалить эту запись и нажать на значок. Можно также ввести новую точку доступа в терминале:
Код
apn 3g.utel.ua
или подобным же образом через меню значка. Проверял на Wary-5.0 и решил проверить на PuppyRus-2.0-b7r. Оказалось, что устройству /dev/ttyUSB0 соответствует /dev/ttyUSB_utps_modem, а /dev/ttyUSB2 - /dev/ttyUSB_utps_pcui. Скрипт работает с обоими типами названий - устройство исправлять теперь не нужно. Должно быть определено автоматически. Удалось подключится и на PuppyRus-2.0. В PuppyRus-2.0 кракозябры вверху окна вместо русской надписи. В Wary все в порядке. После удаления пакета значок нужно удалить вручную - все еще не разобрался.

Оффлайн rodin.s

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1179
  • Репутация: +96/-0
  • Автор темы
Я сделал грубый скрипт, который расшифровывает информацию (на три сообщения выше) на втором порте модема (/dev/ttyUSB2). Скрипт настроен на этот порт - если он другой - нужно редактировать скрипт. Пример работы скрипта:
Код
Уровнь сигнала: 6
Длит: 0h:5m:28s Cк. выгр.: 0 Ск. загр.: 0 Отпр: .1354 Мб Принято: .1524 Мб Макс. выгр: 32000 Макс. загр: 128000
Длит: 0h:5m:30s Cк. выгр.: 0 Ск. загр.: 0 Отпр: .1354 Мб Принято: .1524 Мб Макс. выгр: 32000 Макс. загр: 128000
Длит: 0h:5m:32s Cк. выгр.: 0 Ск. загр.: 0 Отпр: .1354 Мб Принято: .1524 Мб Макс. выгр: 32000 Макс. загр: 128000
Уровнь сигнала: 6
Длит: 0h:5m:34s Cк. выгр.: 0 Ск. загр.: 0 Отпр: .1354 Мб Принято: .1524 Мб Макс. выгр: 32000 Макс. загр: 128000
Длит: 0h:5m:36s Cк. выгр.: 0 Ск. загр.: 0 Отпр: .1354 Мб Принято: .1524 Мб Макс. выгр: 32000 Макс. загр: 128000
Уровнь сигнала: 6
Длит: 0h:5m:38s Cк. выгр.: 0 Ск. загр.: 0 Отпр: .1354 Мб Принято: .1524 Мб Макс. выгр: 32000 Макс. загр: 128000
Длит: 0h:5m:40s Cк. выгр.: 0 Ск. загр.: 0 Отпр: .1354 Мб Принято: .1524 Мб Макс. выгр: 32000 Макс. загр: 128000
Длит: 0h:5m:42s Cк. выгр.: 0 Ск. загр.: 0 Отпр: .1354 Мб Принято: .1524 Мб Макс. выгр: 32000 Макс. загр: 128000
Уровнь сигнала: 6
Длит: 0h:5m:44s Cк. выгр.: 0 Ск. загр.: 0 Отпр: .1354 Мб Принято: .1524 Мб Макс. выгр: 32000 Макс. загр: 128000
Длит: 0h:5m:46s Cк. выгр.: 0 Ск. загр.: 0 Отпр: .1354 Мб Принято: .1524 Мб Макс. выгр: 32000 Макс. загр: 128000
Длит: 0h:5m:48s Cк. выгр.: 0 Ск. загр.: 0 Отпр: .1354 Мб Принято: .1524 Мб Макс. выгр: 32000 Макс. загр: 128000
Уровнь сигнала: 6
Длит: 0h:5m:50s Cк. выгр.: 0 Ск. загр.: 0 Отпр: .1354 Мб Принято: .1524 Мб Макс. выгр: 32000 Макс. загр: 128000
Длит: 0h:5m:52s Cк. выгр.: 0 Ск. загр.: 0 Отпр: .1354 Мб Принято: .1524 Мб Макс. выгр: 32000 Макс. загр: 128000
Длит: 0h:5m:54s Cк. выгр.: 0 Ск. загр.: 0 Отпр: .1354 Мб Принято: .1524 Мб Макс. выгр: 32000 Макс. загр: 128000
Кроме других данных второй порт модема постоянно выдает информацию об уровне сигнала, что заменяет мой скрипт signal. Также интересуют последние параметры: максимальная скорость выгрузки и загрузки. На самом деле реальная скорость загрузки не поднимается выше 128 кб/сек. Интересно, чем это определяется. Оператором, настройками модема?



Оффлайн rodin.s

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1179
  • Репутация: +96/-0
  • Автор темы
Объединил пакеты проверки/пополнения счета и дозвона в один пакет. При установке появляются два значка на рабочем столе: баланс и 3g модем. Из консоли можно переключать диапазон - band, просматривать и удалять SMS - sms, также можно пополнять счет: balans *100*xxxxxxxxxxx#, узнать точку доступа в модеме: pe1550 apn или ввести ее туда: pe1550 apn 3g.utel.ua. Проверял на Wary-5.0. Для систем без lsusb нужно слегка отредактировать скрипт /root/my-applications/bin/init_chk. 

Оффлайн rodin.s

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1179
  • Репутация: +96/-0
  • Автор темы
Добавил возможность переподключения при разрыве соединения. Для этого нужно аргументом командной строки записать auto:
Код
pe1550 auto
или нажать правой кнопкой мыши на значок "3G-модем" > Редактировать. Слово auto вписать в окно аргументов командной строки.
Второй пакет для mf100. Такие-же скрипты дозвона как и для e1550, только другие устройства. Нет проверки баланса и смс, но есть переключение диапазонов 2G/3G - выполнить band в терминале.
« Последнее редактирование: 27 Январь 2011, 22:36:31 от rodin.s »

Оффлайн rodin.s

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1179
  • Репутация: +96/-0
  • Автор темы
Узнал, благодаря DdShurick, что мой скрипт не проверяет баланс оператора Мегафон из-за того, что не подходит алгоритм раскодировки. Я переделал свой скрипт, вставил код, который он мне прислал. Была добавлена одна строка. Строки для моего оператора (Укртелеком) просто закомментировал. Толком проверить не могу, у меня нет Мегафона. При проверке выдает квадратики.
Также в пакет включил скрипты sms и band.

Оффлайн rodin.s

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1179
  • Репутация: +96/-0
  • Автор темы
DdShurick сделал отличный пакет для подключения в этой теме: http://forum.puppyrus.org/index.php/topic,5867.msg47135.html#msg47135
Когда вставляется модем - на рабочем столе появляется значок. Для подключения на него нужно нажать. Для отключения на него нужно нажать еще раз. Ничего настраивать не нужно. Если с модема уже выходили в Интернет другими способами - он помнит точку доступа. По идее подходит и для Huawei и для ZTE. Пакет сделан для PuppyRus-2.0. Я его слегка переделал, заменил значки, для работы в Wary. Еще закомментировал проверку пин-кода - так значок на рабочем столе появляется быстрее. Для работы с этим пакетом - уберите пин-код с карточки.
« Последнее редактирование: 15 Февраль 2011, 23:02:28 от rodin.s »

Оффлайн rodin.s

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1179
  • Репутация: +96/-0
  • Автор темы
Небольшое обновление переделанного для Wary пакета подключения от DdShurick. Дело в том, что при выключении ПК с вставленным модемом и при последующем включении без модема - значок на рабочем столе остается. В новой версии это исправлено.

Оффлайн GanZ

  • Старожил
  • ****
  • Сообщений: 211
  • Репутация: +12/-1
  • Woof-Woof!
rodin.s Скрипт работает, но есть и неприятныe моменты: Значок закреплен жестко. и ни как не желает переезжать на указанное ему место, а только туда, куда сам желает.
После прописки координат по оси Y (делается в любом редакторе, 4 строки отредактировать) значок в самоволку удирать перестал, но эпизодически и бессистемно это происходит.
Без перезагрузки Х значок не появляется.
« Последнее редактирование: 19 Февраль 2011, 10:18:13 от GanZ »
Добрый фей я... Могу и нафеячить!

Оффлайн rodin.s

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1179
  • Репутация: +96/-0
  • Автор темы
Пока, что пакет расчитан на появление значка в определенном месте и его место нельзя поменять. Лучше убрать другие значки с этого места.

Оффлайн GanZ

  • Старожил
  • ****
  • Сообщений: 211
  • Репутация: +12/-1
  • Woof-Woof!
rodin.s Можно. Поставь координаты Y=662, и значок окажется точно над диском sda1 (для ноута 14'')
« Последнее редактирование: 21 Февраль 2011, 04:55:33 от GanZ »
Добрый фей я... Могу и нафеячить!

Оффлайн rodin.s

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1179
  • Репутация: +96/-0
  • Автор темы
Пока, что пакет расчитан на появление значка в определенном месте и его место нельзя поменять.
Я имел ввиду, что нельзя перетаскивать с помощью мыши и выбрать место. В скрипте перекодировать расположение можно. С Y=662 у меня спустился слишком низко, залез на значки дисков.