Page 4 of 9 FirstFirst ... 23456 ... LastLast
Results 46 to 60 of 121

Thread: Подключение USB мыши и клавиатуры к роутеру

  1. #46
    Join Date
    Apr 2009
    Location
    г. Ангарск, Иркутская обл.
    Posts
    267
    Quote Originally Posted by LnrMn View Post
    Красивая табличка!
    FF XX - кнопка нажата
    FF 00 - кнопка отжата
    Чего бы не поймать-то?
    Алгоритм подскажите пожалуйста как это написать.
    DIR-320 / WL-500gPv2 / O'Play R1

  2. #47
    Join Date
    Jan 2009
    Location
    Kazan, Russia
    Posts
    1,163
    Я бы посадил на прерывание от /dev/usb/hid/hiddev0 обработчик...
    К сожалению не знаю, пока, как это сделать...

    Может плеер и так кнопки от /dev/usb/hid/hiddev0 понимает? надо только в конфиге поковырять...
    Last edited by LnrMn; 06-07-2009 at 19:15.
    Asus RT-AC66U, Xerox Phaser 3160B, on the shelf RT-N16 (Killed by lightning)
    WL-500gPv1 128MB, WL-500W 300MHz/128M, LCD 40x4, DIR-320 8Mb/64MB
    WL-700g 128MB, MNV25E2+ and more and more devices. provod.beeline.ru

    -------------------------------------------
    Computers. Since 1984. First one - "МИР-1"

  3. #48
    Join Date
    Jan 2009
    Location
    Искитим, Новосибирской области
    Posts
    168
    Ого у меня тоже такой пульт есть от P5W DH Deluxe.
    На работе всё равно им не пользуюсь, так что "прихватезирую" его домой.
    DIR320-1.9.2.7-d-r2627M

  4. #49
    Join Date
    Apr 2009
    Location
    г. Ангарск, Иркутская обл.
    Posts
    267
    Quote Originally Posted by Dimcho View Post
    Ого у меня тоже такой пульт есть от P5W DH Deluxe.
    На работе всё равно им не пользуюсь, так что "прихватезирую" его домой.
    Ну давай п...й может общими усилиями что-то придумаем как его заставить работать на благое дело.
    DIR-320 / WL-500gPv2 / O'Play R1

  5. #50
    Quote Originally Posted by andr128 View Post
    Ну давай п...й может общими усилиями что-то придумаем как его заставить работать на благое дело.
    http://www.google.com/search?q=Linux...ия+кнопок+мыши

    apt-cache search mouse
    ...
    Package: btnx
    Description: daemon for rerouting mouse button events
    btnx is a daemon that can be configured to send keyboard and mouse button
    combination events when a mouse button is pressed. It can also execute
    commands. It provides an easy and quick way to configure mouse buttons to
    your liking.


    Собирайте.
    Или собирайте gpm + libgpm2, и пишите свое приложение для обработки событий gpm.
    Вообще, примеров кода для обработки events - масса. Вы искать-то пробовали? Думаю, что нет.
    Вот, как пример, близкая к вашей задача:
    http://www.linux.org.ru/view-message.jsp?msgid=804527
    Вот чуть теории (там же есть масса примеров):
    http://www.frogmouth.net/hid-doco/p13.html

    Все, что нужно - написать минимальный код, который будет читать из устройства, и писАть на STDOUT/STDERR, и скомпилировать его под платформу (об этом тут есть темы).
    Можно и без компиляции - все можно сделать на Perl.
    Примеры ищите сами, это не проблема.
    © 2008-2013 ABATAPA WL-500gP/128M / Asus RT-N16 / USB Flash / VLAN / PPPoE / VoIP / nShaper / NAS: iStor is607, Sarotech NAS-20, QNap 109 Pro / NFS / Принтер / etc

  6. #51
    Join Date
    Apr 2009
    Location
    г. Ангарск, Иркутская обл.
    Posts
    267
    ABATAPA спасибо!
    Искать пробовал, но видимо для меня это пока не по "зубам". Знаний не хватает. Пока есть только желание.
    Еще раз спfсибо что откликнулись и указали направление.
    С Linux, Shell ... сталкнулся первый раз при покупке роутера
    Видимо эта затея затянется..
    DIR-320 / WL-500gPv2 / O'Play R1

  7. #52

    Уменя что-то подобное...

    Мне необходимо некое управление девайсами подключенными к роутеру. Т.е. один из девайсов - колонки, и надо чтобы через них по требованию/событию (например нажатию на кнопку) проигрывался звук.

    Так вот, я взял обычную usb клаву, добавил модули на роутер (evdev.o, hid.o, input.o), написал на "с" прототип небольшой проги которая отслеживает нажатия клавиш через "/dev/input/event0" и выполняет необходимые функции/действия.


    Если это то что интересует - могу помочь!!!

    p.s. Программу отработал на debian, осталось перести на роутер. На днях должен сделать!

  8. #53
    Join Date
    Apr 2009
    Location
    г. Ангарск, Иркутская обл.
    Posts
    267
    Quote Originally Posted by samroid View Post

    Уменя что-то подобное...

    Мне необходимо некое управление девайсами подключенными к роутеру. Т.е. один из девайсов - колонки, и надо чтобы через них по требованию/событию (например нажатию на кнопку) проигрывался звук.

    Так вот, я взял обычную usb клаву, добавил модули на роутер (evdev.o, hid.o, input.o), написал на "с" прототип небольшой проги которая отслеживает нажатия клавиш через "/dev/input/event0" и выполняет необходимые функции/действия.


    Если это то что интересует - могу помочь!!!

    p.s. Программу отработал на debian, осталось перести на роутер. На днях должен сделать!
    Спасибо! было бы очень интересно !!
    про колонки если можно по подробнее...

    Я тоже не сидел сложа руки почитал немного про Perl и вот набросал
    не большую прогу тестовую:

    Code:
    #!/opt/bin/perl -w
    
    $fdev="/dev/usb/hid/hiddev0"; # IR Remote (ASUS)
    #$fdev="/dev/input/event0";    # Mouse
    #$fdev="/opt/usr/mybin";       # My test file
    
    
    open(REMOTE,$fdev) || die "!Error open file: $!\n";
    binmode(REMOTE);
    begin:
      $df='';                                    
      $result = sysread(REMOTE, $df, 64);  # $result - real read byte
      $ascii = unpack("H*",$df);           # convert bytes to view hex string
      print "Read bytes: $result\n";
      print "        df: $ascii\n";
    goto begin;
    close(REMOTE);
    выдает вот это для анализа:
    Code:
    Read bytes: 8
            df: 000000ff06000000 - нажатие
    Read bytes: 8
            df: 000000ff00000000 - отпускание
    Что интересно мышка может выдавать 16,32 и 48 байт.
    последнее значение - это когда водишь мышкой и не останавливая нажимаешь кнопки.

    вот пример от мышки:
    Code:
    Read bytes: 16
            df: de46574a39c60e000200000004000000
    Read bytes: 32
            df: de46574a75e50e000200000001000000de46574a80e50e0002000100ffffffff
    Read bytes: 32
            df: de46574af8230f000200000001000000de46574a03240f000200010001000000
    Read bytes: 48
            df: df46574a763f00000100110101000000df46574a873f000002000000ffffffffdf46574a8a3f00000200010001000000
    Read bytes: 32
            df: df46574a75bc000002000000ffffffffdf46574a80bc00000200010001000000
    Read bytes: 32
            df: df46574a7b39010002000000ffffffffdf46574a863901000200010001000000
    Read bytes: 32
            df: df46574ab658010002000000ffffffffdf46574ac25801000200010001000000
    Read bytes: 32
            df: df46574a3697010002000000ffffffffdf46574a409701000200010001000000
    Read bytes: 16
            df: df46574a753302000100110100000000
    DIR-320 / WL-500gPv2 / O'Play R1

  9. #54
    Join Date
    Apr 2009
    Location
    г. Ангарск, Иркутская обл.
    Posts
    267

    Exclamation Ну вот добился своего

    Управление с помощью пульта.

    Code:
    #!/opt/bin/perl
    
    $k01 = pack("H*","000000ff01000000"); # power
    $k02 = pack("H*","000000ff06000000"); # key full screen
    $k03 = pack("H*","000000ff03000000"); # key cpu
    $k04 = pack("H*","000000ff04000000"); # key zoom
    $k05 = pack("H*","000000ff0c000000"); # ap-1 trigger
    $k06 = pack("H*","000000ff0d000000"); # ap-2 trigger
    $k07 = pack("H*","000000ff05000000"); # ap-3 menu
    $k08 = pack("H*","000000ff07000000"); # key "+"
    $k09 = pack("H*","000000ff08000000"); # key <<
    $k10 = pack("H*","000000ff09000000"); # key >||
    $k11 = pack("H*","000000ff0a000000"); # key >>
    $k12 = pack("H*","000000ff0b000000"); # key "-"
    
    
    $fdev="/dev/usb/hid/hiddev0"; # IR Remote (ASUS)
    #$fdev="/dev/input/event0";    # Mouse
    #$fdev="/opt/usr/mybin";       # My test file
    
    
    open(REMOTE,$fdev) || die "!Error open file: $!\n";
    binmode(REMOTE);
    begin:
      $df='';
      sysread(REMOTE, $df, 64);                                   
      SWITCH:
    	{
    	if ($df eq $k01 ) { print " k01\n"; system "ez-setup"; last SWITCH; } # здесь вызов внешней команды (исполняемого скрипта) и т. п.
    	if ($df eq $k02 ) { print " k02\n"; last SWITCH; }
    	if ($df eq $k03 ) { print " k03\n"; last SWITCH; }
    	if ($df eq $k04 ) { print " k04\n"; last SWITCH; }
    	if ($df eq $k05 ) { print " k05\n"; last SWITCH; }
    	if ($df eq $k06 ) { print " k06\n"; last SWITCH; }
    	if ($df eq $k07 ) { print " k07\n"; last SWITCH; }
    	if ($df eq $k08 ) { print " k08\n"; last SWITCH; }
    	if ($df eq $k09 ) { print " k09\n"; last SWITCH; }
    	if ($df eq $k10 ) { print " k10\n"; last SWITCH; }
    	if ($df eq $k11 ) { print " k11\n"; last SWITCH; }
    	if ($df eq $k12 ) { print " k12\n"; last SWITCH; }
    	}
    goto begin;
    close(REMOTE);
    Здесь конечно еще сыровато, но уже работает.
    Кнопкой K1 я вызываю для примера внешний скрипт EZ-SETUP,
    в котором у меня прописано переключение между USB модемом и WAN.

    После того как все отлажено можно подправить post-mount
    ....
    # установка драйверов
    insmod /opt/modules/input.o
    insmod /opt/modules/evdev.o
    insmod /opt/modules/hid.o
    # загрузка программы управления
    /opt/../remote.pl - путь к этому файлу

    flashfs save && flashfs commit && flashfs enable
    reboot

    Все работает, Ура!!!

    Еще раз большое спасибо ABATAPA !

    з.ы.
    PERL оказывается не плохой язык!
    можно чудесные вещи писать.
    DIR-320 / WL-500gPv2 / O'Play R1

  10. #55
    Quote Originally Posted by andr128 View Post
    Еще раз большое спасибо ABATAPA !
    Я рад, что смог помочь.
    Еще более приятно, что Вам хватило только наводки - как правило, многие люди не желают ничего делать сами. Так держать!


    Quote Originally Posted by andr128 View Post
    з.ы.
    PERL оказывается не плохой язык!
    можно чудесные вещи писать.
    Просто отличный!
    © 2008-2013 ABATAPA WL-500gP/128M / Asus RT-N16 / USB Flash / VLAN / PPPoE / VoIP / nShaper / NAS: iStor is607, Sarotech NAS-20, QNap 109 Pro / NFS / Принтер / etc

  11. #56

    Управление USB клавиатурой

    Подключил USB клавиатуру к роутеру. Установил драйвер

    http://wl500g.googlecode.com/files/modules-1.9.2.7-d-r381.tgz

    Как зажечь/потушить NumLook, CapsLook, Scrooll на клаве?

    Code:
    insmod /opt/input.o 
    insmod /opt/evdev.o
    insmod /opt/hid.o
    Читать нажатия кнопок получается
    Code:
    cat /dev/input/event0

  12. #57
    Join Date
    Mar 2009
    Location
    Russia, Moscow
    Posts
    2,119
    Blog Entries
    33
    Здесь народ ещё и пульт д/у от Asus'a подключал ...
    Да, а если поставить ещё и маленький дисплей-
    монитор, то получится мини-комп на линухе ...

  13. #58
    Видел, вот тут http://wl500g.info/showthread.php?t=20307
    Но меня интересует именно управление лампочками - что бы управлять чем-нибудь. В написании USB драйвера на линукс для своего устройства не силен, поэтому и использую плату клавиутары.
    ASUS 500 gP V1 1.9.2.7-10

  14. #59
    Join Date
    Jan 2009
    Location
    Kazan, Russia
    Posts
    1,163
    Quote Originally Posted by krasaval View Post
    Видел, вот тут http://wl500g.info/showthread.php?t=20307
    Но меня интересует именно управление лампочками - что бы управлять чем-нибудь. В написании USB драйвера на линукс для своего устройства не силен, поэтому и использую плату клавиутары.
    Интересный подход.... хм... Управлять всего тремя лампочками на плате клавиатуры. А чего так мало??
    А вообще мне попадалось... Надо погуглить команды клавиатуры.

    Code:
    ED 	 Set status LED's - This command can be used to turn on and off the Num Lock, Caps Lock & Scroll Lock LED's. After sending ED, keyboard will reply with ACK (FA) and wait for another byte which determines their status. Bit 0 controls the Scroll Lock, bit 1 the Num Lock and bit 2 the Caps lock. Bits 3 to 7 are ignored.
    EE 	Echo - upon sending an echo command to the keyboard, the keyboard should reply with an echo (EE).
    F0 	Set scan code set. Upon sending F0, keyboard will reply with ACK (FA) and wait for another byte, 01-03 which determines the scan code used. Sending 00 as the second byte will return the scan code set currently in use.
    F3 	Set typematic repeat rate. Keyboard will acknowledge command with FA and wait for a second byte, which determines the typematic repeat rate.
    F4 	Keyboard enable - clears the keyboard's output buffer, enables keyboard scanning and returns an acknowledgment.
    F5 	Keyboard disable - resets the keyboard, disables keyboard scanning and returns an acknowledgment.
    FE 	Resend - upon receipt of the re-send command, the keyboard will re-transmit the last byte sent.
    FF 	Reset - resets the keyboard.
    Last edited by LnrMn; 04-08-2009 at 20:01.
    Asus RT-AC66U, Xerox Phaser 3160B, on the shelf RT-N16 (Killed by lightning)
    WL-500gPv1 128MB, WL-500W 300MHz/128M, LCD 40x4, DIR-320 8Mb/64MB
    WL-700g 128MB, MNV25E2+ and more and more devices. provod.beeline.ru

    -------------------------------------------
    Computers. Since 1984. First one - "МИР-1"

  15. #60
    включение Num Lock
    echo -en '\0000\0000\0000\0000\0000\0000\0000\0000\0021\000 0\0000\0000\0001\0000\0000\0000' > /dev/input/event0
    включение Caps Lock
    echo -en '\0000\0000\0000\0000\0000\0000\0000\0000\0021\000 0\0001\0000\0001\0000\0000\0000' > /dev/input/event0
    включение Scroll Lock
    echo -en '\0000\0000\0000\0000\0000\0000\0000\0000\0021\000 0\0002\0000\0001\0000\0000\0000' > /dev/input/event0
    выключение Num Lock
    echo -en '\0000\0000\0000\0000\0000\0000\0000\0000\0021\000 0\0000\0000\0000\0000\0000\0000' > /dev/input/event0
    выключение Caps Lock
    echo -en '\0000\0000\0000\0000\0000\0000\0000\0000\0021\000 0\0001\0000\0000\0000\0000\0000' > /dev/input/event0
    выключение Scroll Lock
    echo -en '\0000\0000\0000\0000\0000\0000\0000\0000\0021\000 0\0002\0000\0000\0000\0000\0000' > /dev/input/event0

    форумный движек вставил пробел между нулями, этот пробел надо в команде удалить

Page 4 of 9 FirstFirst ... 23456 ... LastLast

Similar Threads

  1. Подключаем USB HDD к роутеру
    By Hornet in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 3172
    Last Post: 31-08-2011, 12:03
  2. Unstable boot from USB
    By Tamadite in forum WL-500g Q&A
    Replies: 6
    Last Post: 20-08-2008, 15:19
  3. Problem mit Printer und HD am Usb Hub...
    By Sidd in forum German Discussion - Deutsch (DE)
    Replies: 4
    Last Post: 29-03-2006, 17:53
  4. Multiple USB disks and their order on /dev/discs/discX
    By cunami in forum WL-500g Custom Development
    Replies: 2
    Last Post: 20-01-2006, 14:17

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
  •