JP1 Remotes Forum Index JP1 Remotes


FAQFAQ SearchSearch 7 days of topics7 Days MemberlistMemberlist UsergroupsUsergroups RegisterRegister
ProfileProfile Log in to check your private messagesLog in to check your private messages Log inLog in

RMIR/IR.exe feature request - importing XML files
Goto page Previous  1, 2, 3, 4  Next
 
Post new topic   Reply to topic    JP1 Remotes Forum Index -> JP1 - Software
View previous topic :: View next topic  
Author Message
The Robman
Site Owner


Joined: 01 Aug 2003
Posts: 21238
Location: Chicago, IL

                    
PostPosted: Mon Aug 23, 2010 5:13 am    Post subject: Reply with quote

I think he's looking ahead to when these learned signals can be imported directly into RM, so he would want to delete the gap decodes first.
_________________
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
View user's profile Send private message Visit poster's website
gfb107
Expert


Joined: 03 Aug 2003
Posts: 3411
Location: Cary, NC

                    
PostPosted: Mon Aug 23, 2010 7:57 am    Post subject: Reply with quote

The problem here is an apparent inconsistency in the syntax of the isTested attribute of learntremotekey elements in Sling Learned Signal XML files. In the "Sony" file linked above, I saw the following:
Code:

<learntremotekey
    code="33"
    dataLength="34"
    name="Menu"
    isTested="0"
    command="21101F00C704012A195004AA012F0255012D012A012C951223223332322233233200" />


based on that sample, I assumed isTested was a numeric field, where 0 meant false and non-zero meant true.

But in the Lexus and Dreambox files I see:
Code:
<learntremotekey
  code="40"
  name="Left"
  command="28102A00D1050112500E117308C011730466011203470112011A24143444444344
333333344444444333333020"
  dataLength="45"
  isTested="false
"
>
</learntremotekey>

<learntremotekey
  code="44"
  name="Page down"
  command="2C103C00D1070112FEED0112BA990112500C117308BF11730466011203470112011A
3836566666656655555556666566655556524141414141414036566660"
  dataLength="63"
  isTested="true
"
>
</learntremotekey>

Not only is the value for isTested not numeric, it includes a newline!

Obviously this is easy to code around, it was just unexpected, and very sloppy.

I have fixed this in v2.00-preview2
eferz wrote:

If I open the "Lexus" file, https://secure.sling.com/irservices/rest/v1/learntremote/29a614a1-b5e0-4158-a295-20df7cc15755.xml, then nothing happens. There's no data propagated in either the "General" or "Learned Signals" tabs.

If I open the "Dreambox" file, https://secure.sling.com/irservices/rest/v1/learntremote/03de0c6f-b508-43f9-b7ef-fb1d3ff70d48.xml, then only the "General" tab is propagated with data while the "Learned Signals" tab remains blank.

I retested both of these files with v1.99c-preview2 and they opened as expected. Any ideas or suggestions for v2.00-previe1?

_________________
-- Greg
Original RemoteMaster developer
JP1 How-To's and Software Tools
The #1 Code Search FAQ and it's answer (PLEASE READ FIRST)
Back to top
View user's profile Send private message Visit poster's website
eferz
Expert


Joined: 03 Jun 2010
Posts: 1078
Location: Austin, Texas

                    
PostPosted: Mon Aug 23, 2010 5:00 pm    Post subject: Reply with quote

mathdon wrote:
The signal doesn't actually contain multiple protocols. They occur because the decoder, DecodeIR.dll, cannot determine which protocol is correct. It sees the patterns of more than one protocol within the learned signal. So it does not make sense to ask to delete any of the protocols - they are not actually there.
The Robman wrote:
I think he's looking ahead to when these learned signals can be imported directly into RM, so he would want to delete the gap decodes first.

Thanks, you're both right. I misinterpreted the information presented in the window. And, I was asking in reference to xnappo's support of importing the learned signals into RM.

If I can make a UI suggestion for the future import feature, I'd recommend using a combination of checkboxes and radio buttons. Ideally to one that can toggle all checked or all unchecked in the main window, and to be able to toggle each iteration. If a checkbox is marked for a multiple protocols then provide the user with radio buttons to select the appropriate protocol.


gfb107 wrote:
Not only is the value for isTested not numeric, it includes a newline!

Obviously this is easy to code around, it was just unexpected, and very sloppy.

I have fixed this in v2.00-preview2

Agree, very sloppy indeed. However, your new update works like a charm. I see you added the bound key section to the Learned Signal Details for the "Edit" and "Clone" buttons. Also noticed the "New" button has been removed. This answers my previous question in regards to the "new", "edit", and "clone" buttons.



Uploaded with ImageShack.us



Uploaded with ImageShack.us
Back to top
View user's profile Send private message
gfb107
Expert


Joined: 03 Aug 2003
Posts: 3411
Location: Cary, NC

                    
PostPosted: Tue Aug 24, 2010 2:16 pm    Post subject: Reply with quote

Rob,

I've been thinking about how (Slingbox) users are going to create device upgrades based on learned signals loaded from XML files.

xnappo is experimenting with a sort of wizard to help the user pick a set of signals and build an upgrade. Another approach is to copy'n'paste information from the learned signal tab into the devices tab.

Either will require a second RM/RMIR instance running because we've defined the XMLLEARN RDF to have no upgrade memory, only learning memory.

Maybe it makes sense to add learning memory to the other Sling RDFs instead of using an XMLLEARN RDF. That way the same RDF can be used for the entire process of loading the XML learned signals, creating a device upgrade, exporting to BIN, and saving as an RMDU file.

The process would be slightly different, because first the user would do a File > New selecting the RDF that matches their Slingbox and then use File > Open to load the XML files.

Note that this would also allow loading XML learned signals into other remotes that support learned signals, although the key assignments would get scrambled because the keycodes wouldn't match. But if we use
_________________
-- Greg
Original RemoteMaster developer
JP1 How-To's and Software Tools
The #1 Code Search FAQ and it's answer (PLEASE READ FIRST)
Back to top
View user's profile Send private message Visit poster's website
The Robman
Site Owner


Joined: 01 Aug 2003
Posts: 21238
Location: Chicago, IL

                    
PostPosted: Tue Aug 24, 2010 3:24 pm    Post subject: Reply with quote

I don't really have a major preference either way, regarding whether we should add learning to the Sling RDFs or add upgrades to the XML RDF, but if I were to lean in either direction, I think I'd rather add upgrades to the XML RDF as I think that makes it easier to make the process of importing XML files more universal. After all, like you suggested, it might be a regular remote user who's using the XML file to create an upgrade for his remote, rather than for a Slingbox.

As for the whole process of converting the learned signals into an upgrade, it would be ideal if that process were also universal because then people could use it for the signals that they learned using their remote, rather than a Slingbox.

Normally, creating an upgrade requires some user involvement because the protocol displayed for a single learned signal is not always the one that you would select in RM, I'm thinking of the various combo protocols of course.

If all the learns just happen to have the same protocol and device code(s), then the process could go ahead and make the right entries in RM, but otherwise I think the process should require the user to complete the Setup tab in RM first (ie, select a protocol and enter any device codes), then it should just copy over learned functions that meet the profile established in the Setup tab. For example, if the user selects "NEC 4DEV COMBO" as the protocol and enters 255.1, 256.2 and 257.3 as the device codes, then they try to import all of their learned signals, the only signals that should be imported are the ones which use the NEC protocol with a device code of 255.1, 256.2 or 257.3. In this case, the import process should not only populate the EFC/OBC columns, but also the Dev.Sub and Style columns.
_________________
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
View user's profile Send private message Visit poster's website
gfb107
Expert


Joined: 03 Aug 2003
Posts: 3411
Location: Cary, NC

                    
PostPosted: Tue Aug 24, 2010 4:25 pm    Post subject: Reply with quote

We'll see how xnappo does with the learned-signal-to-device-upgrade wizard.

At the moment I'm more concerned with how a user does this today (or the near future).

That process would be mostly copy-n-paste from the learned signal tab to a Device Upgrade Editor window. It really wouldn't matter if the signals got there by download from a remote or import from a Sling XML file.

I'm thinking the user would go the Devices tab, click the New button to start a Device Upgrade editor button (which would be non-modal so that's another change needed), or open an already installed device upgrade to which functions are to be added. The user would then switch back to the Learned Signals tab and go through the manual process of entering data in the Device Upgrade Editor's Setup tab. The user would choose the protocol from the drop-down list, but might be able to copy-n-paste all protocol parameters. Then the user would switch to the Device Upgrade Editor's Function tab, and copy'n'paste the functions.

I've enabled multi-cell selection and copy-to-clipboard in the learned signal tab to facilitate that, and I'm experimenting with a way for the user to flag decodes to be ignored for the duration of an editing session (or to flag one particular decode as the "correct" one to use), so that in some cases the user can turn ***Multiple*** decodes into a single decode for copy-n-paste purposes. I might enable column reordering to facilitate copy'n'paste as well.

I've built RMIR v2.00-preview3 with a bunch of changes related to learned signals and creating device ugrades from those signals.
_________________
-- Greg
Original RemoteMaster developer
JP1 How-To's and Software Tools
The #1 Code Search FAQ and it's answer (PLEASE READ FIRST)
Back to top
View user's profile Send private message Visit poster's website
The Robman
Site Owner


Joined: 01 Aug 2003
Posts: 21238
Location: Chicago, IL

                    
PostPosted: Tue Aug 24, 2010 5:29 pm    Post subject: Reply with quote

If RMIR is using the XML to display the learns, can the user still select a different remote when the RM editor is displayed? If so, I think what you're proposing is fine. If they can't, then we should add some upgrade memory to the XML RDF.

And yes, it would be a very good idea to let them sort the learns, if they can't do so already.
_________________
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
View user's profile Send private message Visit poster's website
eferz
Expert


Joined: 03 Jun 2010
Posts: 1078
Location: Austin, Texas

                    
PostPosted: Tue Aug 24, 2010 7:09 pm    Post subject: Reply with quote

I hate to sound nick-picky, but would you consider only showing the "(untested)" flags for respective learns in the Notes column. I was playing around with a few xml files and realized that it was easy to overlook them if one was more prevalent than the other. I think it would be more pronounced if it only shows up for the ones which were flagged as untested.

For example, in the above screenshot, the "Left" and "Right" keys are untested but its easy to miss them.
Back to top
View user's profile Send private message
eferz
Expert


Joined: 03 Jun 2010
Posts: 1078
Location: Austin, Texas

                    
PostPosted: Wed Aug 25, 2010 5:39 pm    Post subject: Reply with quote

Greg and Graham, I can't begin to express how grateful I am for all your time and effort into this request. It looks awesome! Thank you very much.

XML are easy to open, untested learns are more pronounced, and I can filter out multiple protocol matches. Pics for Proof!



Uploaded with ImageShack.us



Uploaded with ImageShack.us
Back to top
View user's profile Send private message
gfb107
Expert


Joined: 03 Aug 2003
Posts: 3411
Location: Cary, NC

                    
PostPosted: Wed Aug 25, 2010 8:03 pm    Post subject: Reply with quote

eferz wrote:
XML are easy to open, untested learns are more pronounced, and I can filter out multiple protocol matches. Pics for Proof!


Did you read the Wiki entry and see how spurious decode filtering, row sorting, column reordering, and multicell copy-n-paste speed up the process of creating a device upgrade from the learned signals?

Another small thing that may have gone unnoticed is that when the XML is parsed I take the brand, device type index and model number and build a description that is placed in the General Notes, perfect for copy-n-pasting into the description of the new device upgrade.
_________________
-- Greg
Original RemoteMaster developer
JP1 How-To's and Software Tools
The #1 Code Search FAQ and it's answer (PLEASE READ FIRST)
Back to top
View user's profile Send private message Visit poster's website
eferz
Expert


Joined: 03 Jun 2010
Posts: 1078
Location: Austin, Texas

                    
PostPosted: Wed Aug 25, 2010 8:38 pm    Post subject: Reply with quote

gfb107 wrote:
Did you read the Wiki entry and see how spurious decode filtering, row sorting, column reordering, and multicell copy-n-paste speed up the process of creating a device upgrade from the learned signals?

Another small thing that may have gone unnoticed is that when the XML is parsed I take the brand, device type index and model number and build a description that is placed in the General Notes, perfect for copy-n-pasting into the description of the new device upgrade.


I did notice, and its awesome!

I didn't realize you guys had a wiki for your tools. I was going to create a wiki guide for each of the JP1 tools on http://slingbox.wikia.com like the one I did for betaremotes http://slingbox.wikia.com/wiki/How_to_use_Betaremotes_website. That way if someone wanted to read a "manual" then a "living document" would be available.
Back to top
View user's profile Send private message
mathdon
Expert


Joined: 22 Jul 2008
Posts: 4523
Location: Cambridge, UK

                    
PostPosted: Tue Aug 31, 2010 12:05 pm    Post subject: Reply with quote

eferz wrote:
Here's something that's odd, this is "ENTER" whose protocol comes up as "** None **"



Uploaded with ImageShack.us

If you juxtapose it with a manual import with DecodeIR, it didn't show the other protocols.



Uploaded with ImageShack.us


I have looked into this, as promised. The learned signal is not properly structured. There are 10 distinct bursts in the signal, as shown in the upper panel of the upper image. The durations in the lower panel of that image are actually encoded in the learned signal as a list of index values (zero based) into the list of bursts. So in the signal, the first line of that duration panel was encoded as 7, 3, 7, 7, 2, 4, 4, 4.

In the decoding process in RMIR, all was well until it reached the index values for the last three durations. In the signal, these were 14, 3, 2. But there is no burst 14. It therefore stopped decoding at that point and reported each burst as empty, i.e. +0 -0, which shows up as 00. Hence the last three values in that panel.

I take it that you pasted or otherwise copied that list of durations into IR.exe to get your lower image. It therefore saw something slightly different from that seen by RMIR and it resulted in a different error, the one about the signal having too many sections. IR.exe expects at most three sections in a signal. It ignored the surplus sections and passed the others to DecodeIR, which returned a value. RMIR, on the other hand, took the burst index of 14 as invalidating the signal. A different error, different behaviour.

RMIR doesn't impose the limit of 3 on the number of sections. There is no logical reason for a signal to have more than three (they are a section sent once only, a section repeated while the key is held, and possibly a section sent once when the key is released) but it can handle more than three. It would not have been seen as an error. But an invalid burst index is an error.

One can argue that the better behaviour would be to attempt to decode the bursts that preceded the erroneous value, but I don't like that approach. It isn't merely a bad learn (a validly structured learn with corrupted data), it is an invalid learn that learning software should not be able to produce, whatever the data. So I believe RMIR takes the right course of action and rejects it completely.
_________________
Graham
Back to top
View user's profile Send private message
The Robman
Site Owner


Joined: 01 Aug 2003
Posts: 21238
Location: Chicago, IL

                    
PostPosted: Tue Aug 31, 2010 12:11 pm    Post subject: Reply with quote

mathdon wrote:
One can argue that the better behaviour would be to attempt to decode the bursts that preceded the erroneous value, but I don't like that approach. It isn't merely a bad learn (a validly structured learn with corrupted data), it is an invalid learn that learning software should not be able to produce, whatever the data. So I believe RMIR takes the right course of action and rejects it completely.

I'm always an advocate of more info, rather than less, so my vote would be to decode the signal as best as you can, and report the error, rather than doing nothing as soon as an unexpected value is encountered.
_________________
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
View user's profile Send private message Visit poster's website
eferz
Expert


Joined: 03 Jun 2010
Posts: 1078
Location: Austin, Texas

                    
PostPosted: Tue Aug 31, 2010 9:44 pm    Post subject: Reply with quote

mathdon wrote:
One can argue that the better behaviour would be to attempt to decode the bursts that preceded the erroneous value, but I don't like that approach. It isn't merely a bad learn (a validly structured learn with corrupted data), it is an invalid learn that learning software should not be able to produce, whatever the data. So I believe RMIR takes the right course of action and rejects it completely.

I appreciate you explaining the process; however, I'm not well enough versed in the technical linguistics of remotes to understand the function.

Here is how I differentiate between the type of learns.
  • Invalid Learn: A learn that fails to initiate the respective function on the device.
  • Dirty Learn: A learn which initiate the respective function but shows up with multiple matches in the JP1 tools.
  • Clean Learn: A learn which initiate the respective function and shows as a single protocol in the JP1 tools.
I would definitely agree with your statement if your definition of "invalid learns" were the same as mine. However, I believe your intimacy with technical aspect of remotes draws a portion of "dirty learns" into the "invalid learn" category. I hope my naivety of the subject doesn't automatically invalidate my disagreement.

Here is the background information of these situations. I'm not able to convince the respective user to relearn the keys because they no longer have the resources to do so. Furthermore, each of them has confirmed the functionality of the learn. This would lead me to believe the IR codes is hidden somewhere within the UEI learned signal. If RMIR labels the learn as "None" then I'm forced to go through the tedious process of feeding the string into IR to see the different matches.

mathdon wrote:
I take it that you pasted or otherwise copied that list of durations into IR.exe to get your lower image. It therefore saw something slightly different from that seen by RMIR and it resulted in a different error, the one about the signal having too many sections. IR.exe expects at most three sections in a signal. It ignored the surplus sections and passed the others to DecodeIR, which returned a value. RMIR, on the other hand, took the burst index of 14 as invalidating the signal. A different error, different behaviour.


I'm not sure if there's an easier way to do this, but this is how I've had to do it for each learn which is marked as "none"

1. Copy the UEI learned string from the XML file.
2. Paste the string into Learned Command window of IR
3. Separate each two characters with a space.
4. Review the Learned tab within IR after its decoded.


Uploaded with ImageShack.us


Uploaded with ImageShack.us

The process isn't so bad if I have to do it for one or two learns. However, it becomes increasing annoying with each one that fails. As i said earlier, I'm not trying to coerce anyone to resolve the differences between IR and RMIR. I willing to agree to disagree in the difference.

My only request is if this is how its going to be handled where RMIR marks the learn as "None" or "Invalid", then can there at least be an option to copy the UEI Learn with the appropriate spacing. This will allow it to be pasted into IR without requiring the tedium of adding the spaces manually.
Back to top
View user's profile Send private message
The Robman
Site Owner


Joined: 01 Aug 2003
Posts: 21238
Location: Chicago, IL

                    
PostPosted: Tue Aug 31, 2010 10:06 pm    Post subject: Reply with quote

eferz wrote:
This will allow it to be pasted into IR without requiring the tedium of adding the spaces manually.

In the meantime, I would recommend creating a spreadsheet with formula that inserts the spaces for you.
_________________
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
View user's profile Send private message Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic       JP1 Remotes Forum Index -> JP1 - Software All times are GMT - 5 Hours
Goto page Previous  1, 2, 3, 4  Next
Page 3 of 4

 
Jump to:  
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
Top 7 Advantages of Playing Online Slots The Evolution of Remote Control