Подстройка трансподеров по частоте на максимум каналов...

  • Привет всем,
    уважаемые просмотрел по форуму и но так и не нашел, как обойти следующие грабли:
    1) При сканировании транспондеров при помощи scan, не всегда и не все каналы прописываются.
    2) При плохих условиях приема (погода, деревья и прочее) сигнал на определенных частотах скачет.


    Потому такой вопрос такой - встречал ли кто какие либо скрипты которые бы проходились по списку транспондеров и подбирали бы частоты чтобы добиться наилучших результатов при поиске каналов, а затем найденные каналы подбирались бы по частоте для поиска наилучшего сигнала в текущих условиях?

  • Привет всем еще раз,
    вижу никто не встретил таких скриптов, потому потратив несколько дней на изучение шела, я решил написать их сам. Итак, описание:


    Набор скриптов позволяет
    1) Скачать последние данные транспондеров из интернета для всех позиций спутников которые обозначены в файле в diseqc.conf
    2) Провести подгонку частот транспондеров в указанном вами диапазоне и с заданным вами шагом по каждому спутнику. (У меня вместо 40 каналов после сканирования прописалось 160 каналов, правда дублированные).
    3) Выбирать из всего отсканированного на втором шаге списка каналов лучшие по качеству сигнала на текущий момент времени, опять же с заданным шагом и в заданном диапазоне.
    4) Сортировать и убирать дубликаты каналов.
    5) Конвертировать полученный файл в UTF-8, для правильного отображения EPG и названия каналов на телике.


    На выходе после сканирования транспондеров и настройки всех каналов вы получаете channels.conf файл, который и содержит отсортированный по имени список всех обработанных каналов.
    Файл channels.all находящийся в текущей папке содержит список всех найденных каналов на шаге 2.


    Если кто заинтересовался данными скриптами, просьба написать в этом топике о пожеланиях и ошибках.
    З.Ы. У меня к сожалению только одна тарелка на плюсы потому протестировать поведение скриптов при наличии нескольких спутников не могу.
    ------------------------------------------------------------------
    Как пользоваться:
    ------------------------------------------------------------------
    1) Распаковываем архив в отдельную папку конандой tar -xf scabAll.gz /папка.
    2) Устанавливаем права доступа на все файлы равные 755, т.е даем команду chmode +x ./*
    3)Запускаем файл scanAll.sh далее следуем инструкциям на экране.
    Сразу предупреждаю, что ожидание окончания скрипта может затянуться на очень долгий срок в зависимости от того какие параметры сканирования вы задали. Примерные сроки ожидания появляются на экране на каждом шаге сканирования.


    Архив содержит несколько файлов и папок.
    Папка tmp служит для промежуточных временных файлов, сделал это для того чтобы они не путались с результатами в случае аварии.
    Папка transponders- говорит сама за себя, сюда скачиваются файлы из инета в формате утилиты scan.


    Файл scanAll.sh - является основным файлом запуска. Он предназначен для того чтобы скачать файл транспондеров и узнать данные по интервалам и шагам.


    Файл scanTrans.sh - отвечает за сканирование транспондеров из входного файла. В случае если вы захотите использовать скарипт отдельно сам по себе, то аргументы у него следующие:
    $1 - имя файла с транспондерами в формате scan.
    $2- интервал сканирования транспондеров, по умолчанию 150 Мгц (т.е. в одну сторону от исходной частоты на -150 и в другую сторону на +150, т.е. всего 300 Мгц)
    $3 - шаг сканирования, по умолчанию 50Мгц
    $4 - булево значение false или true, устанавливает флаг сканирования частот только с круговой поляризацией (актуально для тех у кого только плюсы и нет другой головы)


    Пример запуска скрипта scanTrans.sh 0360.ini 300 12 true


    Файл scanFreq.sh производит сортировку и фильтрует дубликаты и призводит точную настройку по наилучшему качеству сигнала из входного файла config.all . Его так же можно запускать отдельно. Аргументы следующие:
    $1 - файл содержащий полный список частот которые необходимо проверить в формате channels.conf
    $2 - интервал сканирования, по умолчанию 50 Мгц
    $3 - шаг сканирования, по умолчанию 5Мгц


    Пример запуска скрипта scanFreq.sh ./channels.all 100 10

    Файлы

    • scanAll.gz

      (30.72 kB, скачали 36 раз, последнее скачивание: )

    Сообщение было отредактировано 1 раз, последнее редактирование пользователем Kross ().

  • Неплохая идея =)


    Надо будет обязательно попробывать.


    Тут кстати родилась идея Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу. и если есть желание, то милости просим :).



    Я щас как раз бъюсь над проблемой скана ...... он не находит иногда NID-TID, у тебя таких граблей не было?

  • Kross
    а ты не допустил "стандартную" ошибку связанную с нестандартной частотой
    гетеродина на +++ головке LNB?
    бьюсь об заклад что в результате у тебя частоты транспондеров оказались сдвинуты на +150 мегагерц )))


    проверь в diseqc.conf установки для нтвшной головы - например
    если она на 4 входе десика и спутник называется S35.9

    Исходный код
    # S35.9 only cyrcular pol. NTV+ etc. - input B/B
    S35.9E  12750 V 10750 W15 t [E0 10 38 FD] W200 T v
    S35.9E  12750 H 10750 W15 t [E0 10 38 FF] W200 T V


    если ж голова единственная то частота гетеродина в установках
    вдр ставится на 10750


  • Не совсем понимаю о чем ты говоришь, я писал выше что у меня только одна голова с круговой поляризацией, потому расширенный вариант я не рассматривал в принципе, просто не на чем. Во вторых, скрипты не занимаются правкой diseqc.conf, речь идет о том, что этот файл изначально корректно настроен. У меня в diseqc.conf стоят везде 10750, вот он сам:


    Исходный код
    # Ewtelsat w4 LNB 7
    S36.0E 00000 V 10750 t v W15 [E0 10 39 F6] [E1 10 39 F6] W15 t
    S36.0E 99999 V 10750 t v W15 [E0 10 39 F6] [E1 10 39 F6] W15 T
    S36.0E 00000 H 10750 t V W15 [E0 10 39 F6] [E1 10 39 F6] W15 t
    S36.0E 99999 H 10750 t V W15 [E0 10 39 F6] [E1 10 39 F6] W15 T

    Если не сложно разжуй вопрос как для ламера коим я и являюсь пока в vdr. Потому как я некоторые тонкости могу просто не просекать в силу того что просто не все, точнее, немногое знаю об этой теме.
    Но я быстро учусь... S.


  • Просмотрел, готов подписаться, но неустраивает изначально одно, НО.
    Все здорово и идея вроде замечательная, но я думаю, что фтп сервер это не совсем надежно, точнее совсем не надежно, потому как сегодня ты за ним следишь, завтра нет. Лучше всего будет если будет одна универсальная прога, которая позволит:


    Для каждого проекта (DVB-S and DVB-S2) подготовить а затем объеденить следующие пункты:
    1) обработать выбранные спутники и формировать корректно diseqc.conf.
    2) Подбирать транспондеры с заданными параметрами (интервал и шаг.)
    3) Сортировать, убирать лишние и прочяя обработка, в том числе и распределение по заданным группам.
    4) Подгонять уже готовый список к конкретным условиям приема (сканирование в заданном диапазоне и с шагом для получения лучшего сигнала)
    5) И наконец, заливать его в вместо стандартного списка и произвести все действия для его последующей иницилизации и правильной работы.


    Все бы ничего но к сожалению с "С" или его аналогами я не дружу очень давно, потому могу предложить свою помощь лишь в написании отдельной группы скриптов (и то в ограниченном объеме потому как весь шел изучить я пока не смог, потому эффективность написанных мною прог под большим вопросом).
    Если вы согласны то думаю есть тема для того чтобы обсудить и приняться за работу.

  • Прошу прощения но нашел ошибочку небольшую потому публикую следующую версию с исправлениями. В том числе проставил опцию -n в scan. Посмотрим может поможет. :)

    Файлы

    • scanAll_ver_02.gz

      (30.72 kB, скачали 19 раз, последнее скачивание: )

    Сообщение было отредактировано 1 раз, последнее редактирование пользователем Kross ().

  • Однако нашел еще одну ошибочку - стал просматривать логи и увидел что сканирование ведется не по пакетам а по каналам, т.е если в разных пакетах есть один и тот же канал то скрипт выберет из них лучший по сигналу и оставит в списке остальное все уберет. :(
    Потому как только исправлю скрипт выложу следующую версию...

  • Kross
    для правильной установки частоты в приемнике на частоту транспондера
    приемник должен знать какая частота гетеродина используется в LNB


    делается это для Ку диапазона простым вычитанием Fif=Ftr - Fget
    предположим надо настроится на Ftr=12207 МГц и мы задали правильную
    частоту для +++ LNB Fget=10750 МГц
    подается команда на приемник настроится на Fif=1457 МГц


    ты же оставил стандартную частоту = 10600 МГц и команда пошла на настройку
    на частоту Fif=1607 МГц на которой принимается транспондер (1607+10750=12357)


    т.е. вместо того чтобы настроится на транспондер 12207 из-за неправильной установки
    гетеродина ты настраиваешся совершенно на другой транспондер 12357 )))


    а затем ты пытаешься подобрать частоту транспондера вместо того чтобы установить
    правильную частоту гетеродина LNB


    поставь в вдр правильную частоту гетеродина и не понадобится никакой алхимии со
    сдвигом частоты транспондеров - достаточно сдвинуть частоту гетеродина )))


    для вдр - сам diseqc.conf у тебя смахивает на правильный только используется
    ли он у тебя - проверь в setup.conf DiSEqC = 1 - если там стоит нуль то
    частота гетеродина берется из setup.conf LnbFrequHi = 10600 - а не из diseqc.conf
    и ты мажешь на те самые 150 МГц


    а для scan добавь опцию -l 10750
    -l low[,high[,switch]] in Mhz
    и будет тебе счастье - при сканировании по списку транспондеров команды на
    установку частоты будут выдаваться правильно - и ты сразу найдешь все каналы )))


    сдвиг частоты или транспондера или гетеродина в пределах 1-2 мегагерц
    бывает имеет смысл на узкополосных каналах для более устойчивой лочки
    транспондера ;)

  • Пробовал скрипт от Kross для настройки каналов НТВ+. У меня вываливается ошибка. Вот логи работы скрипта scanAll.sh


    Исходный код
    Enter a range of scanning for transponders.  
    By default is 150 MHz :  
    Enter a step of scanning for transponders.  
    By default is 50 MHz :  
    Enter a range of scanning for frequencies  
    By default is 50 MHz :  
    Enter a step of scanning for frequencies:  
    By default is 5 MHz :  
    ./scanAll.sh: line 51: 3600-#PO: syntax error: operand expected (error token is "#PO")


    А вот ошибка которая вылетает после работы скрипта scanTrans.sh (запуск со следующими параметрами ./scanTrans.sh S36.0E.ini 300 12 true)



    Теперь о моей конфигурации: стоит мотоподвес с дисек-свитчем. На тарелке две башки. Вторую недавно добавил - специально для НТВ с круговой поляризацией. Теперь бьюсь с настройкой каналов для НТВ+ (не думал что это так гемморойно), поэтому в diceq.conf оставил только параметры переключения на НТВ-шный спутник.
    вот мой diseq.conf

    Исходный код
    S36.0E 11700 V 10750 t v W15 [E0 31 6B 0C] W1 [E0 31 6B 0C] W15 [E0 10 38 F4] W15 t  
    S36.0E 99999 V 10750 t v W15 [E0 31 6B 0C] W1 [E0 31 6B 0C] W15 [E0 10 38 F5] W15 T  
    S36.0E 11700 H 10750 t V W15 [E0 31 6B 0C] W1 [E0 31 6B 0C] W15 [E0 10 38 F6] W15 t  
    S36.0E 99999 H 10750 t V W15 [E0 31 6B 0C] W1 [E0 31 6B 0C] W15 [E0 10 38 F7] W15 T


    Вот ини файл с данными трансподеров спутника 36 Е


    Кладу его в папку откуда запускаю скрипт. В итоге после работы скрипта это файл остается полностью пустым - все строки из него программой затираются.
    Пробовал вручную запускать программу scan
    Для этого останавливал ВДР. Через /etc/init.d/dvb load подгружал драйвера карточки.
    Затем запускал скан:
    scan -o vdr S36.0E.ini -l 10750 -s 2 > channels36E.conf
    вот логи работы скана:



    И так по всем частотам. При этом тарелка настроена на спутник НТВ+ нормально. ВДР показывает инфоканал, ТВ3, Первый автомобильный, О2ТВ Причем эти каналы ввел вручную для настройки на спутник.
    Подскажите в чем проблема? Два дня уже бьюсь с настройкой каналов и все впустую.

  • 1) Дай пожалeйста результаты команды
    cat ./tmp/satTable.out если он пуст проверь доступ к инету.
    2) При запуске скрипта скорее всего отсутствует папка tmp

  • Цитата

    1) Дай пожалeйста результаты команды cat ./tmp/satTable.out


    #PO
    36.0E

    Цитата

    При запуске скрипта скорее всего отсутствует папка tmp


    Папка есть. Вот результат команды ls:
    channels.all S36.0E.ini scanAll.sh scanAll_ver_02.gz scanTrans.sh tmp transponders tuneFreq.sh

    Цитата

    проверь доступ к инету.


    Доступ есть т.к. обновлялся через инет, только что установил через apt-get пакет ntp/

    Сообщение было отредактировано 1 раз, последнее редактирование пользователем andrsen ().

  • Kross
    Может скините свой файл настроек каналов, полученный с помощью вашего скрипта. А то у меня не все каналы идут.

  • Ты неверно указал свой файл diseq.conf
    Потому как с написанным тобой здесь файлом diseq.conf у меня все идет на ура.
    ошибка в строчке #PO - от куда она появилась? ее физически там не должно быть если ты не правил скрипт руками сам.


    Дать свои файлы не могу - временно этой темой не занимаюсь - комп с картой далеко стоит.

  • Цитата

    Со слов пользователя Kross
    Ты неверно указал свой файл diseq.conf


    Я, когда запускал скрипт не указывал путь к diseq.conf. Я удалил из файла /etc/vdr/diseq.conf все сторчки кроме, тех которые касались S36.0E

    Цитата


    ошибка в строчке #PO - от куда она появилась? ее физически там не должно быть если ты не правил скрипт руками сам.


    Ничего не правил и откуда взялась не знаю.
    Вот результат команды ls -l
    ========================
    -rw-r--r-- 1 root root 0 2008-07-29 12:11 channels.all
    -rw-r--r-- 1 root root 0 2008-07-29 12:11 S36.0E.ini
    -rwxr-xr-x 1 root root 2626 2008-04-10 16:18 scanAll.sh
    -rwxr--r-- 1 arvdr users 30720 2008-07-29 11:43 scanAll_ver_02.gz
    -rwxr-xr-x 1 root root 8665 2008-04-11 10:41 scanTrans.sh
    drwxr-xr-x 2 root root 4096 2008-07-29 12:11 tmp
    drwxr-xr-x 2 root root 4096 2008-04-11 10:37 transponders
    -rwxr-xr-x 1 root root 9356 2008-04-10 15:39 tuneFreq.sh
    ==========================
    Посмотри по дате и размеру все ли нормально?

  • Я тоже не знаю, проверь еще раз diseq.conf
    или создай новый с теми строчками по 36 спутнику. и повтори операцию снова.


  • Исходный код
    ./scan -o vdr -s1 -l 10750,10750,10750 S36.0E.ini > ~/channels.conf


    мне эта строчка помогла просканировать 36е с круговой поляризацией (на входе АВ дайсека сидит LNB с круговой поляризацией)