Results 1 to 15 of 101

Thread: LED mod - утилита для управления светодиодом PoWeR

Threaded View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Join Date
    Aug 2006
    Location
    Moscow, Russia
    Posts
    788

    Thumbs up LED mod - утилита для управления светодиодом PoWeR

    Тут от нечего делать, основываясь на асусовский watchdog, собрал утилитку с помощью которой можно управлять светодиодом pwr. Я думаю она может найти свое применение там, где необходимо уведомление пользователя о каком-либо событии, которое можно осуществить с помощью этого светодиода. Работать должна на WL-500gDeluxe/WL-550gE/WL-500gPremium/WL-500w и возможно на других моделях. Проверял я её на своем WL-500g Premium. Это мой первый опыт клепания программы на языке C да и к тому же под линукс да и к томуже под роутер. Так что используйте её на свой страх и риск(!).



    Установка:
    • На подключенный диск/флешку, смонтированную в /opt:
      Code:
      cd /opt/bin
      /usr/bin/wget 'http://wl500g.info/attachment.php?attachmentid=2152' -O- | /bin/tar xzv
    • Во флеш(flashfs) роутера:
      Code:
      cd /usr/local/bin
      /usr/bin/wget 'http://wl500g.info/attachment.php?attachmentid=2152' -O- | /bin/tar xzv
      flashfs save
      Т.к. на разных моделях роутеров размер раздела flashfs разный и во избежание потери информации убедитесь, что размер полученного flashfs не превышает 64К. Для этого после команды flashfs save (и до commit) обратите внимание на строку вида:
      Code:
      -rw-r--r-- 1 root root 10710 Nov 16 15:24 /tmp/flash.tar.gz
      Check saved image and type "/sbin/flashfs commit" to commit changes
      где значение, выделенное красным не должно превышать 65535. Если значение превышает максимальный размер, то откажитесь от данной затеи, НЕ делайте flashfs commit и удалите файл с помощью команды rm /usr/local/bin/pwrled

      Далее сохраните flashfs во флеш:
      Code:
      flashfs commit
      flashfs enable

    Использование:

    Code:
    
    Usage: pwrled [-fghl] [-b [-p pidile]] [-c count] [-e on_dur] 
                  [-d off_dur] [-n n_cycles] [-s sleep] [preset]
    
       -n n_cycles Количество подмигиваний.
       -e on_dur   Длительность паузы в состоянии 
                   "включено" при подмигивании.
       -d off_dur  Длительность паузы в состоянии 
                   "выключено" при подмигивании.
       -s sleep    Пауза после подмигивания.
       -g          "Негативный режим". Пауза (-s) 
                   выдерживается при погасшем светодиоде.
       -c count    Количество полных циклов светомузыки
                   0 для бесконечной светомузыки.
                   -1 без входа в цикл.
       -f          Отключить светодиод по завершении 
                   работы программы.
       -b          Фоновый режим.
       -p file     Записать PID процесса в файл file
                   Используйте "-" для вывода в stdout.
                   Опция имеет силу только при использовании
                   совместно с опцией -b.
       -l          Вывести в stdout результат совмещения 
                   предустановок (preset) и указанных вручную 
                   опций и затем выйти из программы.
       -h          Вывести справку.
    
    Доступные предустановки (preset): on off alarm0 alarm1 alarm2 
    alarm3 alarm4 alarm5 alarm6 alarm7 alarm8 alarm9
    В новой версии можно комбинировать опции согласно стандарту POSIX (например: -fbp /tmp/pid -c20 -s 10). Также сохранена обратная совместимость. Тоесть для включения или отключения светодиода можно также как и раньше использовать комманды pwrled on и pwrled off соответственно.

    Из за того, что не все консоли одинаково русифицированы мне в программе пришлось использовать ломаный английский, так что звиняйте, если что не будет понятно. В связи с этим с удовольствием приму помощь в исправлении ошибок.

    В (ba)sh скриптах теперь можно использовать как совместно с PID файлом:
    Code:
    PID="/var/run/pwrled.pid"
    # Для запуска светомузыки в режиме alarm5
    [ -r "$PID ] && kill $(cat $PID); pwrled -bp$PID alarm5
    # Для отключения светомузыки
    [ -r "$PID ] && kill $(cat $PID);
    так и по старинке:
    Code:
    # Для запуска светомузыки в режиме alarm5
    (killall pwrled 2>/dev/null; pwrled alarm5 &)
    # Для отключения светомузыки
    (killall pwrled 2>/dev/null)
    Исходник утилиты на языке C также прилагается.
    Attached Files Attached Files
    Last edited by Mam(O)n; 24-12-2007 at 14:09. Reason: v0.2.20071224-1

Similar Threads

  1. Radio Power
    By SAA in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 357
    Last Post: 16-04-2015, 11:42
  2. Программа для управления роутером
    By Vitaly_k in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 113
    Last Post: 08-12-2014, 05:34
  3. Replies: 45
    Last Post: 22-07-2013, 01:06

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •