Author Topic: Remote (gyration) not repeating commands  (Read 459 times)

Esperanto

  • Guru
  • ****
  • Posts: 265
    • View Profile
Remote (gyration) not repeating commands
« on: March 27, 2014, 10:11:05 am »
I have a gyration 3101 remote which gets detected by the GO Cordless GC1005M #1812 template. According to its configuration string it need to repeat the volume up and down keys when they are being pressed:
Code: [Select]
voldn,122,R
VolUp,123,R
However while the orbiter receives a lot of key presses DCE router and so the general serial device that should use it do not, they only receive 2 of them and then stop while the orbiter still receives them. Anyone knows why this might be the case?

tail -f /var/log/pluto/21_LaunchOrbiter.sh.log | grep "GenericHIDInterface"
Code: [Select]
01      03/27/14 10:01:56.614           GenericHIDInterface::DecodeEventInFD() Successful read of 48 bytes from fd 18 <0xb09ffb40>
01      03/27/14 10:01:56.846           GenericHIDInterface::DecodeEventInFD() Successful read of 48 bytes from fd 18 <0xb09ffb40>
01      03/27/14 10:01:57.742           GenericHIDInterface::DecodeEventInFD() Successful read of 48 bytes from fd 18 <0xb09ffb40>
01      03/27/14 10:01:57.993           GenericHIDInterface::DecodeEventInFD() Successful read of 32 bytes from fd 18 <0xb09ffb40>
01      03/27/14 10:01:58.029           GenericHIDInterface::DecodeEventInFD() Successful read of 32 bytes from fd 18 <0xb09ffb40>
01      03/27/14 10:01:58.065           GenericHIDInterface::DecodeEventInFD() Successful read of 32 bytes from fd 18 <0xb09ffb40>
01      03/27/14 10:01:58.101           GenericHIDInterface::DecodeEventInFD() Successful read of 32 bytes from fd 18 <0xb09ffb40>
01      03/27/14 10:01:58.137           GenericHIDInterface::DecodeEventInFD() Successful read of 32 bytes from fd 18 <0xb09ffb40>
01      03/27/14 10:01:58.173           GenericHIDInterface::DecodeEventInFD() Successful read of 32 bytes from fd 18 <0xb09ffb40>
01      03/27/14 10:01:58.182           GenericHIDInterface::DecodeEventInFD() Successful read of 48 bytes from fd 18 <0xb09ffb40>
tail -f /var/log/pluto/DCERouter.log
Code: [Select]
08      03/27/14 10:01:56.616           Received Message from 21 (OnScreen Orbiter / Living Room) to 10 (Media Plug-in / Living Room), type 1 id 90 Command:Vol Down, retry none, parameters: <0x5ebf7b40>
08      03/27/14 10:01:56.617           Received Message from 21 (OnScreen Orbiter / Living Room) to 20 (The core/hybrid / Living Room), type 1 id 90 Command:Vol Down, retry none, parameters: <0x9bda0b40>
08      03/27/14 10:01:56.617           Forwarding 90 Command:Vol Down up pipe to 98 (AVC-A1SRA (RS232)) <0xb61f8b40>
05      03/27/14 10:01:56.618           The target device 20 (routed to 20) has not registered. <0xb61f8b40>
08      03/27/14 10:01:57.743           Received Message from 21 (OnScreen Orbiter / Living Room) to 10 (Media Plug-in / Living Room), type 1 id 90 Command:Vol Down, retry none, parameters: <0x5ebf7b40>
08      03/27/14 10:01:57.745           Received Message from 21 (OnScreen Orbiter / Living Room) to 20 (The core/hybrid / Living Room), type 1 id 90 Command:Vol Down, retry none, parameters: <0x9bda0b40>
08      03/27/14 10:01:57.745           Forwarding 90 Command:Vol Down up pipe to 98 (AVC-A1SRA (RS232)) <0xb61f8b40>
05      03/27/14 10:01:57.745           The target device 20 (routed to 20) has not registered. <0xb61f8b40>
tail -f /var/log/pluto/98_Generic_Serial_Device.log
Code: [Select]
05      03/27/14 10:01:56.618           GSDMessageTranslator isCmdImplemented = true <0xb54ffb40>
05      03/27/14 10:01:56.618           #### Pre-Process Queue = 1 <0xb54ffb40>
05      03/27/14 10:01:56.660           _QueueProc Pre - 90 : 0 <0xb6e3eb40>
05      03/27/14 10:01:56.660           GSD-Sleep Pre 90 : 0 <0xb6e3eb40>
05      03/27/14 10:01:56.660           Process Queue = 1 <0xb6e3eb40>
05      03/27/14 10:01:56.660           Parameter:  <0xb4affb40>
05      03/27/14 10:01:56.680           GSD-Sleep Post 90 : 0 <0xb6e3eb40>
05      03/27/14 10:01:56.680           _QueueProc Post - 90 : 0 <0xb6e3eb40>
05      03/27/14 10:01:57.745           GSDMessageTranslator isCmdImplemented = true <0xb54ffb40>
05      03/27/14 10:01:57.745           #### Pre-Process Queue = 1 <0xb54ffb40>
05      03/27/14 10:01:57.782           _QueueProc Pre - 90 : 0 <0xb6e3eb40>
05      03/27/14 10:01:57.782           GSD-Sleep Pre 90 : 0 <0xb6e3eb40>
05      03/27/14 10:01:57.782           Process Queue = 1 <0xb6e3eb40>
05      03/27/14 10:01:57.782           Parameter:  <0xb4affb40>
05      03/27/14 10:01:57.804           GSD-Sleep Post 90 : 0 <0xb6e3eb40>
05      03/27/14 10:01:57.804           _QueueProc Post - 90 : 0 <0xb6e3eb40>


tschak909

  • LinuxMCE God
  • ****
  • Posts: 5501
  • DOES work for LinuxMCE.
    • View Profile
Re: Remote (gyration) not repeating commands
« Reply #1 on: March 30, 2014, 08:34:39 pm »
It took me a while to remember the situation with the Gyration remote, as this was during the summer of 2009. I've slept since then...

If you were to look at the key press events coming in from the Gyration, you'd find that roughly 50 milliseconds after pressing a key down, it subsequently sends a key up.

This happens even when the key is held down. It is the result of the firmware on the remote itself, and it is literally what the linux kernel receives.

What this means essentially, is that there is NO way, to distinguish between a key that is toggled, or held, and thus, no way to handle either held keys or repeats.

Nothing that can be done about it. Sorry. Not our fault(tm). Blame Gyration.

-Thom