|
JP1 Remotes
|
View previous topic :: View next topic |
Author |
Message |
vickyg2003 Site Admin
Joined: 20 Mar 2004 Posts: 7073 Location: Florida |
Posted: Tue Aug 28, 2012 10:16 am Post subject: RMIR: Advanced Handling of Learned Signals |
|
|
Split from here:
http://www.hifi-remote.com/forums/viewtopic.php?t=14213
Vyro, as long as you are looking at the learns, keep in mind that we have an item on the WISH list about the learns. We'd really like the rounding and biphase analysis and timing summary report something like IR has for those unrecognized protocols.
PS. The current BETA is NOT the current BETA. Graham and I have exchanged 60-some emails about the crosstalk issue, and RMIR has gone through 10 versions, getting ready to bring the next BETA out. |
|
Back to top |
|
|
Vyrolan
Joined: 24 Aug 2012 Posts: 168 Location: Chicago, IL |
Posted: Tue Aug 28, 2012 10:59 am Post subject: |
|
|
vickyg2003 wrote: | Gee, as long as you are looking at the learns, keep in mind that we have an item on the WISH list about the learns. We'd really like the rounding and biphase analysis and timing summary report something like IR has for those unrecognized protocols. |
I agree that IR does it better, but I don't know what you mean by "timing summary report". Can you be more specific?
It doesn't look like that should be too hard to do some of that...certainly rounding is very easy. From a quick glance into the IR code and some other docs, it doesn't seem like giving a Yes/No for "is this bi-phase" would be too hard, but I would need more information (or more time with the IR code) to determine how it makes the Even/Odd determination.
vickyg2003 wrote: |
PS. The current BETA is NOT the current BETA. Graham and I have exchanged 60-some emails about the crosstalk issue, and RMIR has gone through 10 versions, getting ready to bring the next BETA out. |
I grabbed the latest svn and am keeping it in a git repo (<3 git)...I should be able to easily grab the latest of your changes and rebase mine off of that. |
|
Back to top |
|
|
Vyrolan
Joined: 24 Aug 2012 Posts: 168 Location: Chicago, IL |
Posted: Tue Aug 28, 2012 12:15 pm Post subject: |
|
|
Vyrolan wrote: | vickyg2003 wrote: | Gee, as long as you are looking at the learns, keep in mind that we have an item on the WISH list about the learns. We'd really like the rounding... |
It doesn't look like that should be too hard to do some of that...certainly rounding is very easy. |
Indeed it was...
Also uploaded RemoteMaster.jar with this capability: http://www.hifi-remote.com/forums/dload.php?action=file&file_id=11268 (Edit: This file has been updated to include improvements to the learned signal dialog seen in a later post.)
The rounding is purely cosmetic. It just changes the display, but you can then of course copy-paste the rounded values somewhere else.
Last edited by Vyrolan on Tue Aug 28, 2012 2:31 pm; edited 1 time in total |
|
Back to top |
|
|
Vyrolan
Joined: 24 Aug 2012 Posts: 168 Location: Chicago, IL |
Posted: Tue Aug 28, 2012 2:28 pm Post subject: |
|
|
Vyrolan wrote: | vickyg2003 wrote: | Gee, as long as you are looking at the learns, keep in mind that we have an item on the WISH list about the learns. We'd really like the rounding and biphase analysis and timing summary report something like IR has for those unrecognized protocols. |
I agree that IR does it better, but I don't know what you mean by "timing summary report". Can you be more specific?
|
Nevermind...I didn't have the option enabled to see those buttons. It should be easy to produce that summary report out of RMIR.
Also, I've changed RMIR around to make the Learned Signal Dialog more friendly. First off, I've shrunk the size of the decode list since it rarely if ever needs to be very big. I'm also breaking up the timings into "sent once", "sent repeatedly", and "sent on release" like IR does. The boxes for those are hidden if not needed (if signal is nothing but repeat, then sent once and sent on release do nto even appear) and they are also dynamically sized to hold all the timings in the without scrolling of wasted space. It looks like this:
(Note: I updated the file at http://www.hifi-remote.com/forums/dload.php?action=file&file_id=11268 to include these changes.) |
|
Back to top |
|
|
Vyrolan
Joined: 24 Aug 2012 Posts: 168 Location: Chicago, IL |
Posted: Tue Aug 28, 2012 3:52 pm Post subject: |
|
|
Vyrolan wrote: | Vyrolan wrote: | vickyg2003 wrote: | Gee, as long as you are looking at the learns, keep in mind that we have an item on the WISH list about the learns. We'd really like the rounding and biphase analysis and timing summary report something like IR has for those unrecognized protocols. |
I agree that IR does it better, but I don't know what you mean by "timing summary report". Can you be more specific?
|
Nevermind...I didn't have the option enabled to see those buttons. It should be easy to produce that summary report out of RMIR.
|
So I've reproduced part of the timing summary... I can provide the "LEARNED RAW DATA" part of it... IR uses another dll (ExchangeIR?) to produce the IRP notation of the signals...I don't think RMIR has that in it yet so I can't reproduce that part. I've just made it pop up a dialog with the summary...it doesn't save it to a file yet (you can copy-paste it to anything to save though).
I've again updated my file at http://www.hifi-remote.com/forums/dload.php?action=file&file_id=11268 to include this change. No screenshot this time since it's literally just a big text area and an ok button in the dialog. The "Timing Summary" button is at the button of the Learned Signals tab as expected. |
|
Back to top |
|
|
The Robman Site Owner
Joined: 01 Aug 2003 Posts: 21234 Location: Chicago, IL |
Posted: Wed Aug 29, 2012 7:05 pm Post subject: |
|
|
Vyrolan, it's looking good, however the rounding time doesn't persist. When we enter a rounding time in IR.exe it affects what gets included in the Timing Summary sheet. The idea is, when you have to manually decode a new signal, you enter a rounding time and then you cut & paste the data from the Summary sheet over to Notepad so you can convert the pairs into binary. _________________ Rob
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help! |
|
Back to top |
|
|
Vyrolan
Joined: 24 Aug 2012 Posts: 168 Location: Chicago, IL |
Posted: Wed Aug 29, 2012 7:59 pm Post subject: |
|
|
The Robman wrote: | Vyrolan, it's looking good, however the rounding time doesn't persist. When we enter a rounding time in IR.exe it affects what gets included in the Timing Summary sheet. The idea is, when you have to manually decode a new signal, you enter a rounding time and then you cut & paste the data from the Summary sheet over to Notepad so you can convert the pairs into binary. |
Easily fixed...I added the "Round To" box to the timing summary window...so you can dynamically adjust right there and the summary text is updated on the fly.
Updated RemoteMaster.jar at http://www.hifi-remote.com/forums/dload.php?action=file&file_id=11268. |
|
Back to top |
|
|
vickyg2003 Site Admin
Joined: 20 Mar 2004 Posts: 7073 Location: Florida |
Posted: Wed Aug 29, 2012 8:07 pm Post subject: |
|
|
That looks really nice.
Are we going to do the biphase, odd even stuff too?
I'm not sure what the odd/even part does, but the biphase is for signals that switch -1,+1; +1.-1 instead of +1,-1, -1-3
Do you need a biphase example ir file to see what goes on? _________________ Remember to provide feedback to let us know how the problem was solved and share your upgrades.
Tip: When creating an upgrade, always include ALL functions from the oem remote, even if you never plan on assigning them to a button. Complete function lists makes an upgrade more helpful to others.
|
|
Back to top |
|
|
Vyrolan
Joined: 24 Aug 2012 Posts: 168 Location: Chicago, IL |
Posted: Wed Aug 29, 2012 8:35 pm Post subject: |
|
|
vickyg2003 wrote: | Are we going to do the biphase, odd even stuff too?
Do you need a biphase example ir file to see what goes on? |
Yes. Yes. Looking through the IR code I'm pretty sure I understand what it's trying to do, but to have an example to see and replicate would be nice. |
|
Back to top |
|
|
The Robman Site Owner
Joined: 01 Aug 2003 Posts: 21234 Location: Chicago, IL |
Posted: Wed Aug 29, 2012 9:10 pm Post subject: |
|
|
Don't take so long to respond next time, that was almost an hour!
Seriously though, it's looking good. As for the bi-phase thing, I forget all the conversation that went into us coming up with the odd/even thing, but basically, a bi-phase signal is made up of 1="+n -n" and 0="-n +n" pairs, and it's possible that the first pair could be a 0, so the string would be starting with a negative time, which of course could easily blend in with the off time of the lead-in pair, so something like this...
+2000 -1000 -500 +500 -500 +500 ...
which would end up looking like
+2000 -1500 +500 -500 +500 ...
Normally when you manually convert timing data into binary all the pairs start with a positive pair, so it's easy, but it's not so straight forward with bi-phase, so that's why each pair ends with a delimiter (we used a semi-colon).
We also needed to add logic to allow for the leadout time, or that could cause the pairs to get reversed on the next repeat of the signal. In IR.exe the minimum leadout time is hard coded and I have worked with examples where it wasn't sufficient, so it would be nice to be able to reduce that if needed.
As for examples, if you open the FromRob.ir file that is always distributed with IR.exe, all of the Replay signals are bi-phase, but be aware that the Replay protocol has a double wide pair near the beginning, so don't be alarmed when you can find an odd/even setting that just gives you good legal pairs.
Also, if you have a learning remote, you could learn any RC5 signal as that's bi-phase too, like TV/0054 _________________ Rob
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help! |
|
Back to top |
|
|
Vyrolan
Joined: 24 Aug 2012 Posts: 168 Location: Chicago, IL |
Posted: Wed Aug 29, 2012 10:08 pm Post subject: |
|
|
Thanks Rob/Vicky for the info. I've read about the bi-phase signals, but I don't really see what IR does that's so special?
Take this example found in the FromRob.ir, rounded to 50:
Code: |
+2650 -900 +450 -450 +450 -450 +450 -900 +450 -900 +900 -450 +450 -450 +450 -450 +450 -450 +450 -450 +450 -450 +450 -450 +900 -900 +450 -450 +450 -450 +450 -450 +450 -450 +450 -450 +450 -450 +900 -900 +450 -450 +450 -450 +450 -450 +900 -450 +450 -900 +900 -109200
|
It's clearly bi-phase with (+450,-450) and (-450,+450) as the two logical pairs... But the Bi-Phase dropdown in IR doesn't seem to have any effect on it...if I set it to ODD, it shows:
Code: |
+2650; -900 +450; -450 +450; -450 +450; -900 +450; -900 +900; -450 +450; -450 +450; -450 +450; -450 +450; -450 +450; -450 +450; -450 +900; -900 +450; -450 +450; -450 +450; -450 +450; -450 +450; -450 +450; -450 +900; -900 +450; -450 +450; -450 +450; -450 +900; -450 +450; -900 +900; -109200
|
With EVEN it shows:
Code: |
+2650 -900; +450 -450; +450 -450; +450 -900; +450 -900; +900 -450; +450 -450; +450 -450; +450 -450; +450 -450; +450 -450; +450 -450; +900 -900; +450 -450; +450 -450; +450 -450; +450 -450; +450 -450; +450 -450; +900 -900; +450 -450; +450 -450; +450 -450; +900 -450; +450 -900; +900 -109200;
|
So basically it's just inserting semicolons at either the odd or even positions...how does that really help? I'd much rather detect that it is bi-phase and show it like this:
Code: |
+2650 -900; +450 -450; +450 -450; +450 -450; -450 +450; -900 +900; -450 +450; -450 +450; -450 +450; -450 +450; -450 +450; -450 +450; -450 +450; +450 -450; -450 +450; -450 +450; -450 +450; -450 +450; -450 +450; -450 +450; -450 +450; +450 -450; -450 +450; -450 +450; -450 +450; -450 +450; +450 -450; +450 -450; -450 +450; +450 -450; -108750
|
Basically I would parse it in one on/off at a time with some basic rules...Here are the rules:
Code: |
Definitions:
() represents the next logical pair being built.
+1 and -1 represent a single on or off burst of the bi-phase time.
+N and -N represent a burst that is N times the length of a +1 or -1.
+(N-1) and -(N-1) represent a burst that is (N-1) times the length of a +1 or -1.
Bi-Phase Rules:
() +1 ==> ( +1, ??? )
() -1 ==> ( -1, ??? )
( +1, ??? ) -1 ==> ( +1, -1 )
( -1, ??? ) +1 ==> ( -1, -1 )
( +1, ? ) -N ==> ( +1, -1 ) ( -(N-1), ??? )
( -1, ? ) +N ==> ( -1, +1 ) ( +(N-1), ??? )
( -N, ??? ) +N ==> ( -N, +N )
( +N, ??? ) -N ==> ( +N, -N )
() +N ==> ( +N, ??? )
() -N ==> ( -N, ??? )
|
Anything that doesn't match those rules fails the bi-phase parsing. So then we just need to account for the lead-in and lead-out, and I would do it by just trying all possibilities.
To look at this one as an example:
Code: |
Lead-in: +2650 -900
Remaining Input = +450 -450 +450 -450 +450 -900 +450 -900 +900 -450 +450 -450 +450 -450 +450 -450 +450 -450 +450 -450 +450 -450 +900 -900 +450 -450 +450 -450 +450 -450 +450 -450 +450 -450 +450 -450 +900 -900 +450 -450 +450 -450 +450 -450 +900 -450 +450 -900 +900 -109200
Parse Bi-Phase:
( +450, ??? ) ...consume +1 to start a pair.
( +450, -450 ) ...consume -1 to finish a pair.
( +450, -450 ) ( +450, ??? ) ...consume +1 to start a pair.
( +450, -450 ) ( +450, -450 ) ...consume -1 to finish a pair.
( +450, -450 ) ( +450, -450 ) ( +450, ??? ) ...consume +1 to start a pair
( +450, -450 ) ( +450, -450 ) ( +450, -450 ) ( -450, ??? ) ...we have ( +1, ??? ) -N so it yields ( +1, -1 ) ( -(N-1), ??? ).
( +450, -450 ) ( +450, -450 ) ( +450, -450 ) ( -450, +450 ) ...consume +1 to finish a pair.
( +450, -450 ) ( +450, -450 ) ( +450, -450 ) ( -450, +450 ) ( -900, ??? ) ...consume -2 to start a pair.
( +450, -450 ) ( +450, -450 ) ( +450, -450 ) ( -450, +450 ) ( -900, +900 ) ...consume +2 to finish a pair.
...
...skipping to the end...
...
( ...bunch of logical pairs... ) ( +450, ??? ) ...up next is lead-out off time.
( ...bunch of logical pairs... ) ( +450, -450 ) ...finish our logical pair by taking -1 from lead-out.
Lead-out = -109200 - (-450) =-108750
|
Now, the other possibility is that we should have split up the off time of the lead-in time instead of finishing our last pair by taking from the lead-out... However, that way would have ended with an error...let's check it out:
Code: |
Lead-in: +2650 -450 (took a -450 to start our first pair)
Remaining Input = -450 +450 -450 +450 -450 +450 -900 +450 -900 +900 -450 +450 -450 +450 -450 +450 -450 +450 -450 +450 -450 +450 -450 +900 -900 +450 -450 +450 -450 +450 -450 +450 -450 +450 -450 +450 -450 +900 -900 +450 -450 +450 -450 +450 -450 +900 -450 +450 -900 +900 -109200
Parse Bi-Phase:
( -450, ??? ) ...starting with the -1 from the lead-in.
( -450, +450 ) ...consume +1 to finish a pair.
( -450, +450 ) ( -450, ??? ) ...consume -1 to start a pair.
( +450, -450 ) ( +450, +450 ) ...consume +1 to finish a pair.
( +450, -450 ) ( +450, +450 ) ( -450, ??? ) ...consume -1 to start a pair.
( +450, -450 ) ( +450, +450 ) ( -450, +450 ) ...consume +1 to finish a pair.
( +450, -450 ) ( +450, +450 ) ( -450, +450 ) ( -900, ??? ) ...consume a -2 to start a pair.
( +450, -450 ) ( +450, +450 ) ( -450, +450 ) ( -900, ??? ) ...we have ( -2, ??? ) with +1 next which is not in our rules (needed to be +2 or higher).
ERROR
|
So the only way to parse it was the first way, leaving the lead-in as ( +2650, -900 ) and finishing our last logical pair using some of the off-time of the lead-out.
I'm pretty sure I could do all of this automated within RMIR...so you wouldn't even have to pick an even/odd...it would figure it out automatically. I'm also fairly certain it could figure out if it's bi-phase automatically and so automatically applying the above bi-phase parsing (still with the option to uncheck it though and see raw times). What do you think? |
|
Back to top |
|
|
vickyg2003 Site Admin
Joined: 20 Mar 2004 Posts: 7073 Location: Florida |
|
Back to top |
|
|
The Robman Site Owner
Joined: 01 Aug 2003 Posts: 21234 Location: Chicago, IL |
Posted: Wed Aug 29, 2012 10:22 pm Post subject: |
|
|
Vyrolan wrote: | But the Bi-Phase dropdown in IR doesn't seem to have any effect on it... |
for bi-phase, you need to enter a rounding time that is equal to one unit, so in this case you should enter 450
So, using the P&P/REW button, we start with this...
+2700 -900 +450 -450 +450 -450 +450 -900 +450 -900 +900 -450 +450 -450 +450 -450 +450 -450 +450 -450 +450 -450 +450 -450 +900 -900 +450 -450 +450 -450 +450 -450 +450 -450 +450 -450 +450 -450 +900 -900 +450 -450 +450 -450 +450 -450 +900 -450 +450 -900 +900 -109350
you can see the double wide pair that I mentioned in red, so counting back from there, I would determine that the first -900 that you see is part of a "+2700 -900" leadin pair, and the first bi-phase pair is the "+450 -450" that follows.
If I select EVEN, that first -900 pair is split between two pairs, so that's not the right option. When I select ODD, I get this...
+2700; -450 -450; +450 -450; +450 -450; +450 -450; -450 +450; -450 -450; +450 +450; -450 +450; -450 +450; -450 +450; -450 +450; -450 +450; -450 +450; -450 +450; +450 -450; -450 +450; -450 +450; -450 +450; -450 +450; -450 +450; -450 +450; -450 +450; +450 -450; -450 +450; -450 +450; -450 +450; -450 +450; +450 -450; +450 -450; -450 +450; +450 -109350;
next, I would fix the leadin and the double wide pairs manually to get this...
+2700 -900; +450 -450; +450 -450; +450 -450; -450 +450; -900 +900; -450 +450; -450 +450; -450 +450; -450 +450; -450 +450; -450 +450; -450 +450; +450 -450; -450 +450; -450 +450; -450 +450; -450 +450; -450 +450; -450 +450; -450 +450; +450 -450; -450 +450; -450 +450; -450 +450; -450 +450; +450 -450; +450 -450; -450 +450; +450 -109350;
and that can easily be converted into binary, like so...
+2700 -900; 1110 -900 +900; 00000001000000010000110 +450 -109350; _________________ Rob
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help! |
|
Back to top |
|
|
The Robman Site Owner
Joined: 01 Aug 2003 Posts: 21234 Location: Chicago, IL |
Posted: Wed Aug 29, 2012 10:25 pm Post subject: |
|
|
Vyrolan wrote: | I'm pretty sure I could do all of this automated within RMIR...so you wouldn't even have to pick an even/odd...it would figure it out automatically. I'm also fairly certain it could figure out if it's bi-phase automatically and so automatically applying the above bi-phase parsing (still with the option to uncheck it though and see raw times). What do you think? |
Give it a whirl, though I'd be curious to see how an automated approach would deal with the double wide pair that's in the RC6 (Replay) signal, but if you think it would work, I'd certainly like to see it. _________________ Rob
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help! |
|
Back to top |
|
|
Vyrolan
Joined: 24 Aug 2012 Posts: 168 Location: Chicago, IL |
Posted: Wed Aug 29, 2012 10:41 pm Post subject: |
|
|
Aha...thanks Vicky I'll give it a whirl.
The Robman wrote: | Vyrolan wrote: | I'm pretty sure I could do all of this automated within RMIR...so you wouldn't even have to pick an even/odd...it would figure it out automatically. I'm also fairly certain it could figure out if it's bi-phase automatically and so automatically applying the above bi-phase parsing (still with the option to uncheck it though and see raw times). What do you think? |
Give it a whirl, though I'd be curious to see how an automated approach would deal with the double wide pair that's in the RC6 (Replay) signal, but if you think it would work, I'd certainly like to see it. |
I show detecting and properly parsing a double pair in my example above! |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|