Rotor ticker

  • rotorticker vdr патч


    == назначение ==
    вводится ротор тикер - показывается на время поворота ротора тикер следущего содержания
    Rotor turn to S13.0Е. Arrive after 16/20 seconds
    время показа тикера расчитывается исходя из предыдущей позиции и позиции куда надо повернуть
    ротор и скорости поворота ротора
    все это оформлено в виде патча на исходные вдр


    == установка ==
    - скопировать vdr-1.5.12-rotorticker_0.0.1.diff в директорию с исходными вдр и


    проверка

    Исходный код
    # patch -p1 --dry-run < vdr-1.5.12-rotorticker_0.0.1.diff


    реальное наложение и сборка

    Исходный код
    # patch -p1 < vdr-1.5.12-rotorticker_0.0.1.diff
    # make clean
    # make


    заменить старый vdr на вновь собранный файл vdr


    == настройка ==
    настройка производится изменением параметров в setup.conf - после первого запуска вдр
    в нем прописываются параметры по умолчанию


    - для включения ротор тикера достаточно исправить RotorInUse= 0 на RotorInUse = 1


    - установка скоростей вращения ротора - при переключении на разных поляризациях скорость
    вращения разная - поэтому два рараметра

    Исходный код
    RotorSpeed_H = 12
    RotorSpeed_V = 16


    формат такой - в секундах на поворот на 10 градусов - на гориз поляр (18 вольт) скорость выше -
    около 12 секунд на 10 градусов - при верт поляризации (13 вольт) - ниже - около 16 секунд на 10
    градусов - надо подобрать скорости для твоей поворотки


    - для выключения ротор тикера при переключении на/c фиксированных антенн есть блок параметров
    RotorNoNeedTurn - в них прописать на какие спутники настроены фиксированные антенны -
    чтобы при переключении на них и с них тикер не показывается -
    позиции пишутся в формате внутреннего представления в вдр
    например по умолчанию прописаны такие позиции


    Исходный код
    RotorNoNeedTurn1       = 34946; // Hotbird S13E
    RotorNoNeedTurn2       = 34864; // Sirius S4.8E
    RotorNoNeedTurn3       = 35175; // Eutelsat W4 S35.9E (NTV+)
    RotorNoNeedTurn4       = 35008; // Astra S19.2E


    т.е. для восточных спутников (E) это 34816+POS*10 а для западных (W) 32768+POS*10
    у меня одна фиксированная тарель на спутник S35.9E и моя конфигурация будет такой

    Исходный код
    RotorNoNeedTurn1 = 0
    RotorNoNeedTurn2 = 0
    RotorNoNeedTurn3 = 35175
    RotorNoNeedTurn4 = 0
    RotorNoNeedTurn5 = 0
    RotorNoNeedTurn6 = 0
    RotorNoNeedTurn7 = 0


    надеюсь моторизованным вдр-щикам этот тикер пригодится


    Courage

  • Мне такая фича тоже нужна =) Спасибо!


    Значит так, на исходные arvdr патч лёг

    и собрался ...... сегодня вечером попробую.

  • если честно - патч был написан еще осенью ))))) он даже был написан в более развернутой версии -
    с установкой параметров из меню - данный вариант несколько упрощен даже - параметры надо прописывать
    ручками - может когда нибудь подправлю код патча и верну установку - но вообще то считаю что это
    и не надо - так как достаточно один раз прописать параметры в setup.conf и забыть про них )))


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


    а по поводу длительного молчания - произошло некоторое переосмысление жизненных ориентиров - пришло
    понимание того что в выходные есть более интересные вещи чем писать код ;)


    жду тестов ротор тикера
    данную версию проверял на вдр 1.5.12 с dvb-s2 h264 довеском - но первоначально писал его на 1.4.7 -
    так что скорее всего и на стабильной ветке он должен работать


    нужна опять таки помощь в переводе и внесения этого перевода единственной фразы - понимания как сейчас
    в вдр это оформляется у меня так и нет - эта строка в коде патча на файл device.c выглядит так - как надо
    ее написать и какие изменения делать для внесения словарных пар в вдр - не знаю

    Исходный код
    asprintf(&messaga, tr("Rotor turn to %s. Arrive after %d/%d seconds"), *cSource::ToString(vdrsource_to), counter*2, switchingDelay);


    любая помощь по правильному внесению перевода фразы Rotor turn to %s. Arrive after %d/%d seconds
    в код вдр приветствуется :rolleyes:

  • Ведро собрался с патчем, только OSD падает:

    Исходный код
    Jan 22 00:35:07 arvdr vdr: [11668] ERROR: text2skin: OSD provider can't handle skin: Areas not correctly aligned

    Появляется сообщение, что оболчка слишком большая или неправильно расположена :(


    Ну а насщёт перевода меня тут трантор навёл ...... если используется 1.4.7 то добовляем в i18n.c:

    а если 1.5.Х, то в ru_RU.po:

    Исходный код
    msgid "Rotor turn to %s. Arrive after %d/%d seconds"
    msgstr "Мотоподвес движется на %s. Прибытие после %d/%d секунд"


    Сам перевод я вставил и Ведро собралось, только протестировать не смог, так как потом не работает OSD хоть с переводом, хоть без.

  • Цитата

    Ну а насчёт перевода меня тут трантор навёл


    огромное спасибо вам за идеи перевода .... правда никак не могу их реализовать сам - в
    обычных текстовых редакторах в файле ru_RU.po вижу кракозябры - основная локаль стоит utf-8 а
    в этом файле видимо используется другая кодировка - кстати какая? кто знает что надо доставить в
    систему чтобы нормально чмтались po файлы - подскажите ....


    Цитата

    Ведро собрался с патчем, только OSD падает:


    Courage in panic 8o
    никогда эту фичу не пользовал но решил попробывать поставить и разобраться
    так как сейчас пользую версию вдр 1.5.12 и нет возможности использовать вдр 147 то вроде нашел место
    где обсуждается text2skin для ветки 15х на вдр-портале
    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.


    дальнейшие мои действия к данному топику не относятся - записал их в свой блог
    сборка text2skin на вдр 1.5.12
    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.


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

  • ОК, может это как то связано с УТФ-8 патчем. У меня кстати тоже не получилось простым редактором увидеть русские буквы в по-файлах, хотя в описании стоит:

    Исходный код
    "Content-Type: text/plain; charset=ISO-8859-5\n"
    "Content-Transfer-Encoding: 8bit\n"

    Зато в Kbabel всё пучком =)

  • спасибо за наводку на 2 редактора po файлов

    Исходный код
    apt-get install poedit
    apt-get install kbabel


    саму фразу в po вставлять не надо - только перевод
    оказалось что вдр сам внес непереведенную фразу в файлы po/*.po


    Исходный код
    msgid "Rotor turn to %s. Arrive after %d/%d seconds"
    msgstr ""


    загрузил в poedit ru_RU.po и прописал перевод фразы


    надо сказать что предложенный перевод
    Мотоподвес движется на %s. Прибытие после %d/%d секунд
    несколько длинноват - посему укоротил его
    Ползем к %s. Будем через %d/%d секунд.
    сохранил отредакетированный перевод и пересобрал вдр

    Исходный код
    # make clean
    # make


    и перекинул папку locale/ru_RU в место установки вдр взамен старой
    скриншот прилагается )))
    исправленный патч - с русским переводом для 1.5.12 - coming soon ))))

  • Исходный код
    23.01.07 ver 0.0.2
    - add russian translate in patch  (in file po/ru_RU.po)


    установка
    - скопировать патч vdr-1.5.12-rotorticker_0.0.2.diff в директорию с сырцами вдр
    - проверить наложение патча

    Исходный код
    # patch -p1 --dry-run < vdr-1.5.12-rotorticker_0.0.2.diff.diff
    patching file config.c
    patching file config.h
    patching file device.c
    patching file device.h
    patching file po/ru_RU.po


    - наложить

    Исходный код
    # patch -p1 < vdr-1.5.12-rotorticker_0.0.2.diff.diff


    - пересобрать вдр

    Исходный код
    # make clean
    # make


    - скопировать вновь собранные файл vdr и директорию locale/ поверх тех что были проинсталлированы

  • Цитата

    а пока "ползем" - в это время фронтэнд пытается залочить сигнал ?


    очень сложно сказать что где происходит в таком колоссе как вдр )))


    могу сказать только то что врезка тикера сделана в функцию вдр
    bool cDevice::SwitchChannel(const cChannel *Channel, bool LiveView)
    на время работы тикера работа вдр приостанавливается - вернее та часть вдр
    которая эту функцию вызвала - но что еще в вдр происходит паралельно - неизвестно -
    по крайней мере команды на переключение десик продолжают слаться
    а уж что в фронтэнде происходит - одному Ману известно ))))


    кстати - при поиске при помощи reelchannelscan плагином ( и CRCS плагином конечно тоже)))
    каналов не с текущего спутника а с другого - поиск не запускается пока тикер не отработал


    на скриншоте - запуск поиска когда вдр стоит на 23.5Е а поиск запустил на 28.2Е