Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Индикатор сигнала 3G модема в dB а не в палочках  (Прочитано 9550 раз)

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

Оффлайн Pl7ofit

  • Автор темы
  • Активист
  • *
  • Сообщений: 299
  • U18.04,Ryzen 5 1600,GTX 1050,8GB-DDR4
    • Просмотр профиля
    • vk.com/pl7ofit
Есть ли программа или что то что показывает сигнал 3G модема в dB а не в палочках? в dB показывает прога 3gmm на винду..
Добавляйтесь! Steam nick: pl7ofit

Линус над нами.Визин в кармане.Под ногами андроиды.Вперед Линуксоиды!

Оффлайн zhenya0007

  • Активист
  • *
  • Сообщений: 763
    • Просмотр профиля
Есть ли программа или что то что показывает сигнал 3G модема в dB а не в палочках? в dB показывает прога 3gmm на винду..

Если есть вывод в Fs этого параметра , то FS + CONKY, если нет, то зависимости сигнала от децибелов + CONKY.

Оффлайн Pl7ofit

  • Автор темы
  • Активист
  • *
  • Сообщений: 299
  • U18.04,Ryzen 5 1600,GTX 1050,8GB-DDR4
    • Просмотр профиля
    • vk.com/pl7ofit
zhenya0007, как это можно осуществить?
Добавляйтесь! Steam nick: pl7ofit

Линус над нами.Визин в кармане.Под ногами андроиды.Вперед Линуксоиды!

Оффлайн zhenya0007

  • Активист
  • *
  • Сообщений: 763
    • Просмотр профиля
zhenya0007, как это можно осуществить?

Описание Conky на сайте или в интернете + описание файловой системы + описание /dev/ttyusb(xxx) параметров модема.

Я думаю что то типа, только порт правильно подставляй



#!/usr/bin/python
# -*- coding: utf-8 -*-


import time
import io

def openSerialPort(device):
    try:
        p = io.open(device, 'w+b', 0)  # открываем устройство
    except Exception, e:               # в случае ошибки
        raise e                        # вызываем ошибку
    return p                           # возвращаем открытое устройство

if __name__ == '__main__':
    p = openSerialPort('/dev/ttyUSB1') # ! укажите ваше устройство !
    p.write('AT+CSQ' + '\r\n')         # отправляем команду
    time.sleep(0.1)                    # немножко ждем пока дойдет
    for ln in p:                       # перебираем вывод с устройства
        if ln.startswith('+CSQ'):      # когда находим ответ на наш запрос
            data         = ln[6:ln.rfind('"')].split(",") # вырываем оттуда данные
            signal_level = int(data[0]) # отделяем уровень сигнала
            error_level  = int(data[1]) # отделяем уровень ошибок
            signal_in_db = (signal_level * 2) - 113 # вычисляем значение в dB
            print "%idB" % signal_in_db # выводим полученное значение
            break
    p.close()                          # закрываем устройство
 


« Последнее редактирование: 27 Мая 2012, 17:18:45 от zhenya0007 »

Оффлайн Pl7ofit

  • Автор темы
  • Активист
  • *
  • Сообщений: 299
  • U18.04,Ryzen 5 1600,GTX 1050,8GB-DDR4
    • Просмотр профиля
    • vk.com/pl7ofit
А как узнать правильный порт?..  :-\

 File "/home/profit/db-3g", line 11
SyntaxError: Non-ASCII character '\xd0' in file /home/profit/db-3g on line 11, but no encoding declared
Добавляйтесь! Steam nick: pl7ofit

Линус над нами.Визин в кармане.Под ногами андроиды.Вперед Линуксоиды!

Оффлайн gobi

  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
Интересный и полезный скрипт, но
Цитировать
Traceback (most recent call last):
  File "./sig", line 19, in <module>
    for ln in p:                       # перебираем вывод с устройства
IOError: read() should have returned a bytes object, not 'NoneType'

Нужна корректировка скрипта!
« Последнее редактирование: 28 Мая 2012, 16:16:49 от gobi »
Я купил компьютер. И что, я теперь еще должен что-то читать?

Оффлайн zhenya0007

  • Активист
  • *
  • Сообщений: 763
    • Просмотр профиля
А как узнать правильный порт?..  :-\

 File "/home/profit/db-3g", line 11
SyntaxError: Non-ASCII character '\xd0' in file /home/profit/db-3g on line 11, but no encoding declared

Порт обычно цепляется в /dev/tty(xxx), глянь может он у тебя, как USB подключается, по lsusb

Оффлайн Pl7ofit

  • Автор темы
  • Активист
  • *
  • Сообщений: 299
  • U18.04,Ryzen 5 1600,GTX 1050,8GB-DDR4
    • Просмотр профиля
    • vk.com/pl7ofit
SyntaxError: Non-ASCII character '\xd0' in file /home/profit/db-3g on line 11, but no encoding declared;

что то не так на 11 строчке...


11 строка:
        p = io.open(device, 'w+b', 0)

что тут не так?

Пользователь решил продолжить мысль 29 Мая 2012, 00:42:59:
Убрал первую пустую строку =)

profit@profit-K53SC:~$ python ~/db-3g
Traceback (most recent call last):
  File "/home/profit/db-3g", line 16, in <module>
    p = openSerialPort('/dev/ttyUSB09') # ! укажите ваше устройство !
  File "/home/profit/db-3g", line 12, in openSerialPort
    raise e                        # вызываем ошибку
IOError: [Errno 13] Permission denied: '/dev/ttyUSB09'


что не так?

profit@profit-K53SC:~$ lsusb

Bus 002 Device 009: ID 19d2:0031 ZTE WCDMA Technologies MSM MF110/MF627/MF636

вот моё устройство, где тут порт?
« Последнее редактирование: 29 Мая 2012, 00:42:59 от Pr0f1t »
Добавляйтесь! Steam nick: pl7ofit

Линус над нами.Визин в кармане.Под ногами андроиды.Вперед Линуксоиды!

Оффлайн zhenya0007

  • Активист
  • *
  • Сообщений: 763
    • Просмотр профиля
Ничего, там удалять не нужно, нужно правильно порт указать и запустить под правами администратора, все там работает. Он же тебе написал Permissino Denied, догадаться сложно ?

Модем я вижу в списке есть, тогда посмотри ls /dev/tty*

Там три ссылки будет, если USB модем, то  ttyUSB* , один из них, у меня на некоторых модемах средний из них, на других первый.   
« Последнее редактирование: 29 Мая 2012, 10:37:06 от zhenya0007 »

Оффлайн sersoftin

  • Любитель
  • *
  • Сообщений: 59
  • Понять, простить)
    • Просмотр профиля
    • sersoftin
а тупо прогу gnokii не вариант поставить?.
sudo apt-get install gnokiiпотом вводишь команду(предварительно его настроив)
gnokii --monitor once
там сигнал будет в поле RFLevel

Пользователь решил продолжить мысль 29 Мая 2012, 14:27:27:
zhenya0007, как это можно осуществить?
.....
#!/usr/bin/python
# -*- coding: utf-8 -*-


import time
import io

def openSerialPort(device):
    try:
        p = io.open(device, 'w+b', 0)  # открываем устройство
    except Exception, e:               # в случае ошибки
        raise e                        # вызываем ошибку
    return p                           # возвращаем открытое устройство

if __name__ == '__main__':
    p = openSerialPort('/dev/ttyUSB1') # ! укажите ваше устройство !
    p.write('AT+CSQ' + '\r\n')         # отправляем команду
    time.sleep(0.1)                    # немножко ждем пока дойдет
    for ln in p:                       # перебираем вывод с устройства
        if ln.startswith('+CSQ'):      # когда находим ответ на наш запрос
            data         = ln[6:ln.rfind('"')].split(",") # вырываем оттуда данные
            signal_level = int(data[0]) # отделяем уровень сигнала
            error_level  = int(data[1]) # отделяем уровень ошибок
            signal_in_db = (signal_level * 2) - 113 # вычисляем значение в dB
            print "%idB" % signal_in_db # выводим полученное значение
            break
    p.close()                          # закрываем устройство
 



если убрать 2 посделние строчки то пишет в терминале -85dB если не убирать то окно терминала появляется и пропадает сразу

Пользователь решил продолжить мысль 29 Мая 2012, 14:31:02:
а что такое дб?
« Последнее редактирование: 29 Мая 2012, 14:31:02 от sersoftin »
Я не трус..я просто знаю,что дело кончится задницей......

Оффлайн zhenya0007

  • Активист
  • *
  • Сообщений: 763
    • Просмотр профиля
дБ -   логарифмическая единица уровней, затуханий и усилений.
Не нужно ничего там удалять,  просто в параметрах установить, не закрывать после выполнения.

Оффлайн sersoftin

  • Любитель
  • *
  • Сообщений: 59
  • Понять, простить)
    • Просмотр профиля
    • sersoftin
а можно ли как нибудь выразить сигнал модема в %?
Я не трус..я просто знаю,что дело кончится задницей......

Оффлайн belobog1

  • Активист
  • *
  • Сообщений: 768
    • Просмотр профиля
а можно ли как нибудь выразить сигнал модема в %?
конечно, прими значение 113 Db как 0%, а 64 Db как 100%
загони всё в математическую формулу и будет тебе счастье.
ubuntu_windows_mac os x_open solaris_чтоб ещё впихнуть в железку

Оффлайн sersoftin

  • Любитель
  • *
  • Сообщений: 59
  • Понять, простить)
    • Просмотр профиля
    • sersoftin
то есть по моим может быть не правильным подсчётам у если дб 85 то сигнал модема в % = 57%?
Я не трус..я просто знаю,что дело кончится задницей......

Оффлайн zhenya0007

  • Активист
  • *
  • Сообщений: 763
    • Просмотр профиля
Насколько я понимаю, уровень приема сигнала нельзя сравнивать с db , так, как уровень приема сигнала обратно пропорционален db, чем дальше сота, тем хуже сигнал между аппаратами и тем выше сигнал в DB, для того чтобы преодолеть большее расстояние или преграду.

 

Страница сгенерирована за 0.048 секунд. Запросов: 25.