Jump to content
Flirc Forums

key-handeling.


ldc

Recommended Posts

There seems to be a few issues in regards to input management for the remote.

B1,B2 here are 2 different keys on the remote.

1. press B1

2. after releasing B1 press B2 in fast succession.

This results in B2 being ignored (blocking for keyrepeat?). Here it should detect a switch between 2 keys and not be blocking.

1. Press B1

2. release B1 for 0.5 seconds

3. Press B1

This results in B1 the same as above. This is usually an issue when manually scrolling in a list by clicking multiple times..

The correct procedure for handeling this would be:

1. detect signal.

2. decode signal for B1.

3. detect that no signal is present for 100ms (should be configurable for better protocol support)

4. detect signal.

5. decode signal for B1.

if done correctly this should enable up to 5-8 manual key-presses per second depending on the IR protocol.

When working with XMP based remotes there are a few more things that can be used like the bit for key-repeat etc. that can be used to make the communication even more reliable.

Also there seems to be an issue with the "stickiness" of buttons. The following 3 options would be nice to have.

- Delay between key-press and start of key-repeat.

- Keyrepeat rate

- Min interval between keys to allow for faster key-input. (ie time it should be in "no-signal detected or different signal detected state")

Link to comment
Share on other sites

That's what i'm running with at the moment so it's working, but it could be working better... ;)

Higher results in very sticky (too long time between allowed keypresses) and lower results in 2 input events/delay/keyrepeat start..

I work as a developer and have access to quite a few different remotes and have tested RC5/RC6/XMP/NEC protocols so far, currently running with RC5 since that seems to be the most stable one at the moment..

Would love if XMP was working a bit more stable, got a really nice spare RCU that i would love if i could use..

Link to comment
Share on other sites

tried finding a public link where you could get some information for the remote i have but could not find anything. And ofcourse the docuents i have about the protocol is under NDA so no luck there eiter ;/

LIRC do have some information about the protocol so that would be a good source.

Short description on XMP.. There are a number of variants on XMP (XMP-1 / XMP-R and so on). The protocol has a few nice features like including key-down / key-repeat among other things in each frame it sends. In it's extended version it also have things like feedback to the remotecontrol to ACK the transmission etc.

But most "cheap" remotes only implement the basic things like key-repeat etc.

each frame looks something like (writing from memory)

<vendor>|<rcu-id>|<protocol-bits like keyrepeat>|<keycode>

Parsing this in the most simple form would be to look for vendor/rcu-id and then parse the protocol-bitfield for keyrepeat and then keycode.

So to handle this you would always look for the packages with the repeat-bit not set in them and always send those to the actual UI. If a frame with key-repeat is detected without a key-down has been recieved for the last 50-100ms then it should be enterpreted as a key down.

So as a comparison on a RC5 remote you would get <vendor><rcu><keycode> so here we would have to take care of detecting when an actual key is a key-down and when it's a repeat and then have some type of statemachine that detects the time between frames to allow for missing frames in the transmission.

If i would be able to put the FLIRC in raw mode i could record some data for you :)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...