Long and double keypress IR requirements
Moderator: Moderators
-
Nils_Ekberg
- Expert
- Posts: 1689
- Joined: Sat Aug 02, 2003 2:08 pm
- Location: Near Albany, NY
Long and double keypress IR requirements
While debugging a situation with the standalone version of LDKP protocol I noticed that the keymove gets created wrong for the standalone version in the SP tab.
The standalone version keymove uses only 3 hex values:
First # - Left digit is 1 for long and 2 for double keypress option. Right digit is the duration.
Second - Hex value of the button of the short or single action
Third - Hex value of the button for the long or double action
The extender version uses up to 14 hex values:
First - Left digit is the duration. Right is length of short key sequence or length of single press key sequence plus 8 to indicate double keypress option
The remainder are the key sequences.
So, we have 3 options.
1) Add a choice on the SP tab for whether it is the extender protocol or the standalone protocol and build the SP keymove accordingly.
2) Re-write the standalone protocols.
3) Don't let standalone users enter the keymove on the SP tab.
The standalone version keymove uses only 3 hex values:
First # - Left digit is 1 for long and 2 for double keypress option. Right digit is the duration.
Second - Hex value of the button of the short or single action
Third - Hex value of the button for the long or double action
The extender version uses up to 14 hex values:
First - Left digit is the duration. Right is length of short key sequence or length of single press key sequence plus 8 to indicate double keypress option
The remainder are the key sequences.
So, we have 3 options.
1) Add a choice on the SP tab for whether it is the extender protocol or the standalone protocol and build the SP keymove accordingly.
2) Re-write the standalone protocols.
3) Don't let standalone users enter the keymove on the SP tab.
-
Nils_Ekberg
- Expert
- Posts: 1689
- Joined: Sat Aug 02, 2003 2:08 pm
- Location: Near Albany, NY
By the way, the only way to get the standalone versions to work correctly is to either:
1 - Enter them manually on the keymove tab
Or
2 - create them in the IR SP tab with just a LKP and a duration of 1. This option only allows you to do long keypress for a very short duration. Using Double keypress is out of the question using the IR SP tab.
1 - Enter them manually on the keymove tab
Or
2 - create them in the IR SP tab with just a LKP and a duration of 1. This option only allows you to do long keypress for a very short duration. Using Double keypress is out of the question using the IR SP tab.
-
Nils_Ekberg
- Expert
- Posts: 1689
- Joined: Sat Aug 02, 2003 2:08 pm
- Location: Near Albany, NY
That was my first thought but realized that the problem is even bigger than that.e34m5 wrote:I vote for number 2
If we re-write the protocols the people that already have the old installed will be impacted since IR will grab the old keymove and make it necessary for the user to modify it to make it work if updated in the SP tab. I looked at the standalone versions and believe they are written the way they are because to make it work like the extended version requires extender functions like nested macros etc..
Even if I just reverse the parms in the first hex value IR will still have a problem with the LKP vs DKP function since IR wants to add 8 to the second half for DKP when the protocol is expecting a 2 for DKP. Either way IR would still need to be modified to only allow one parm for short/single and one parm for long/double for the standalone version
In other words I don't think option 2 will be viable so we are down to options 1 and 3. Personally I like option 1 but option 3 is easiest since all I have to do is take the LDKP protocol out of the non-extender RDF's to force it back to a manual 3 byte keymove. Also will need to make it clear in the standalone docs not to add the SP to the RDF and do it manually.
THere are different entries in the special protocols section of the RDF file for extender LDKP (LDKP) and the standalone LDKP (ULDKP). It seems to me IR is supposed to differentiate between the 2, and therefore has the information necessary to provide a UI that correctly shows the user what can be done, and correctly generates the keymove.
I'm sure you did, but I'll ask you anyway, Nils. In your testing, did you have the ULDKP entry in the RDF, or the LDKP entry?
I'm sure you did, but I'll ask you anyway, Nils. In your testing, did you have the ULDKP entry in the RDF, or the LDKP entry?
Last edited by gfb107 on Tue Feb 15, 2005 2:16 pm, edited 1 time in total.
-- Greg
Original RemoteMaster developer
JP1 How-To's and Software Tools
The #1 Code Search FAQ and it's answer (PLEASE READ FIRST)
Original RemoteMaster developer
JP1 How-To's and Software Tools
The #1 Code Search FAQ and it's answer (PLEASE READ FIRST)
-
Nils_Ekberg
- Expert
- Posts: 1689
- Joined: Sat Aug 02, 2003 2:08 pm
- Location: Near Albany, NY
-
Nils_Ekberg
- Expert
- Posts: 1689
- Joined: Sat Aug 02, 2003 2:08 pm
- Location: Near Albany, NY
-
ElizabethD
- Advanced Member
- Posts: 2348
- Joined: Mon Feb 09, 2004 12:07 pm
Is this thread about IR6.00? I so assume since IR date is January.
I probably don't understand the issue.
I just put this into the 8910 unextended RDF1[1]18 (oops! looks like I should get the update):
[SpecialProtocols]
DSM=01FC
LDKP+DSM=01F9
Pause=01FB
In IR, the standalone, unextended, LDKP+DSM protocol comes up on the Special functions tab (Misc:1106), but entering key names is not an option. The entire bottom section is greyed out. Only hex is allowed. That's consistent with what Nils is suggesting above, I think. I also checked Raw data. It is identical to what I entered.
So perhaps it's all fixed? Or is it at some other point that the bits get changed, like when it's all pushed to the remote? Just trying to understand
I probably don't understand the issue.
I just put this into the 8910 unextended RDF1[1]18 (oops! looks like I should get the update):
[SpecialProtocols]
DSM=01FC
LDKP+DSM=01F9
Pause=01FB
In IR, the standalone, unextended, LDKP+DSM protocol comes up on the Special functions tab (Misc:1106), but entering key names is not an option. The entire bottom section is greyed out. Only hex is allowed. That's consistent with what Nils is suggesting above, I think. I also checked Raw data. It is identical to what I entered.
So perhaps it's all fixed? Or is it at some other point that the bits get changed, like when it's all pushed to the remote? Just trying to understand
I tried ULDKP just out of curiosity. It looks like implemented.
Add "ULDKP=01F9" under the [SpecialProtocols] section in the RDF, add the standalone LDKP and the device upgrade then IR 6.00 shows you DSM, LKP and DKP on the "Spcl Prot Fns" tab. It even knows you can have only one key stroke in each side.
Use "UDSM=1FC" for the standalone DSM.
Hal
Add "ULDKP=01F9" under the [SpecialProtocols] section in the RDF, add the standalone LDKP and the device upgrade then IR 6.00 shows you DSM, LKP and DKP on the "Spcl Prot Fns" tab. It even knows you can have only one key stroke in each side.
Use "UDSM=1FC" for the standalone DSM.
Hal
-
ElizabethD
- Advanced Member
- Posts: 2348
- Joined: Mon Feb 09, 2004 12:07 pm
IR6 with RDF120 is fabulous for the combined L/DKP+DSM.mtakahar wrote:Add "ULDKP=01F9" under the [SpecialProtocols] section in the RDF, add the standalone LDKP and the device upgrade then IR 6.00 shows you DSM, LKP and DKP on the "Spcl Prot Fns" tab. It even knows you can have only one key stroke in each side.
Not only IR presents all 3 options and restricts the keys, it even lists the macro contents in the L/DKP/DSM keymove definitions. Cute
I noticed that the keymoves for this protocol are now all the same length. The DSM part had 1 less byte before. Now it has a final 00 byte. The change is transparent to the user.