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

IrScrutinizer: capturing, generating, analyzing, import, exp
Goto page Previous  1, 2, 3 ... 20, 21, 22, 23, 24  Next
 
Post new topic   Reply to topic    JP1 Remotes Forum Index -> JP1 - Software
View previous topic :: View next topic  
Author Message
mathdon
Expert


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

PostPosted: Fri Jun 05, 2020 4:42 am    Post subject: Reply with quote

Barf wrote:
An empty <irp:parameter name="..."> removes an existing parameter, while a non-empty appends an existing parameters. What happens if you have one empty and one non-empty is ... undefined (at least for now).

This was IrpTransmogrifier issue #160, which I understood to be fixed.
_________________
Graham
Back to top
View user's profile Send private message
Barf
Expert


Joined: 24 Oct 2008
Posts: 1186

PostPosted: Fri Jun 05, 2020 9:46 am    Post subject: Reply with quote

You are right! It was late...

However, what you cannot do is <irp:parameter/>, (i.e. with empty name), it will not have the desired effect, You must do
Code:

   <irp:parameter name="uei-executor"/>
   <irp:parameter name="prefer-over"/>

to achieve what I think you want to achieve.

However, irp:parameter-s without names should be considered erroneous; will provide better possibilities to check this.
Back to top
View user's profile Send private message Send e-mail Visit poster's website
mathdon
Expert


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

PostPosted: Sat Jun 06, 2020 9:59 am    Post subject: Reply with quote

I have made progress with the Girr export facility. I haven't broached the issue of actually creating the Girr file, but instead at this stage am merely printing out the functions as converted from executor to protocols. Here is an excerpt of the result from importing your Denon file to the Denon/Denon-K Combo executor and then exporting the device upgrade it created. Only an excerpt as it is 268 signals, but they all converted:
Code:

zone3_tuner Denon D=2 F=72
zone3_phono Denon D=2 F=73
zone3_cd Denon D=2 F=74
zone3_dvd Denon D=2 F=78
zone3_bluray Denon D=2 F=79
zone3_tv Denon D=2 F=82
zone3_sat_cbl Denon D=2 F=83
zone3_game Denon D=2 F=84
zone3_dvr Denon D=2 F=85
zone3_video_aux Denon-K D=4 S=5 F=729
zone2_toggle Denon-K D=4 S=4 F=5
zone3_volume_down Denon D=2 F=101
zone3_volume_up Denon D=2 F=102
pure_direct Denon D=2 F=106
...
dolby_pl_ii_cinema Denon D=4 F=143
dolby_pl_ii_music Denon D=4 F=144
dolby_pl Denon D=4 F=145
cinema_mode Denon D=4 F=149
music_mode Denon D=4 F=150
game_mode Denon D=4 F=151
room_eq Denon D=4 F=157
input_mode_auto Denon D=4 F=179
input_mode_ext_in Denon D=12 F=181
left Denon D=12 F=127
bass_down Denon D=12 F=128
surround_back Denon D=12 F=130
...
audyssey_dyn_vol_eq_on Denon-K D=4 S=1 F=745
audyssey_dyn_eq_on Denon-K D=4 S=1 F=746
audyssey_dyn_vol_eq_off Denon-K D=4 S=1 F=747
audyssey_dyn_volume_midnight Denon-K D=4 S=1 F=748
audyssey_dyn_volume_evening Denon-K D=4 S=1 F=749
audyssey_dyn_volume_day Denon-K D=4 S=1 F=750
repeat Denon-K D=2 S=3 F=16
shuffle Denon-K D=2 S=3 F=17
usb_direct_play Denon-K D=4 S=1 F=958
...
shuffle_songs Denon-K D=2 S=3 F=64
shuffle_albums Denon-K D=2 S=3 F=65
shuffle_off Denon-K D=2 S=3 F=66
repeat_one Denon-K D=2 S=3 F=67
repeat_all Denon-K D=2 S=3 F=68
repeat_off Denon-K D=2 S=3 F=69

I have only done spot checks but they seem to be correct. When you spot ones that appear to be wrong, check for a duplicate command with the same name. I think there are 12 instances of this, the first being zone3_video_aux where you see a Denon-K signal but expect a Denon one. It is correct, but for the second occurrence of this command name.
_________________
Graham
Back to top
View user's profile Send private message
Barf
Expert


Joined: 24 Oct 2008
Posts: 1186

PostPosted: Sun Jun 07, 2020 1:52 pm    Post subject: Reply with quote

Barf wrote:
However, irp:parameter-s without names should be considered erroneous;

This has been implemented as making the "name" attribute mandatory in the schema.

Quote:
will provide better possibilities to check this.

A --validate option has been implemented. So by calling the command line program with this option (or from API, IrpDatabase.setValidating(true)) the program will check all IrpProcol files for validity, and throw appropriate *Exceptions if validation errors are found.

I have to say that it is a bit disappointing if import of the Yamaha-fiile "semi fails", in the sense of offering the (for us useless) 005A. If it takes some time -- who cares as long as it is not minutes? A similar remark applies for the Philips VCR.

Quote:
I have made progress with the Girr export facility. I haven't broached the issue of actually creating the Girr file, but instead at this stage am merely printing out the functions as converted from executor to protocols.

Ok, good luck with generating the Girr file. I think the documentations should be at least usable -- let me know if not.

Quote:
check for a duplicate command with the same name. I think there are 12 instances of this,
Would it be possible to check this during import, and treat it in a "well defined" way, like complaining to the user and keeping the last (first?) one?
Back to top
View user's profile Send private message Send e-mail Visit poster's website
n8nagel



Joined: 03 Jun 2018
Posts: 91

PostPosted: Sun Jun 07, 2020 4:18 pm    Post subject: Reply with quote

I think I have found a small issue with the latest version.

When I try to select File, Import, Import as a set of raw signals, RMDU, the file browser is looking for a .xcf file not .rmdu

Also, I can't remember how to check my JP1 (Xsight Color) learns and turn them into real signals; most of them work OK in RM but I'm trying to program an upgrade for an old Samsung DVD player and I'm getting a few buttons that just will not seem to give me good protocol/device/OBC info within RM. some of my learns say **None** and some say **Multiple** for protocol. I'm assuming that this is because there's probably two different protocols that can generate very similar IR signals? Anyway I remember that I went through this a few years ago, but it's been long enough that I do not remember which device it was, or how to properly drive the software (assuming it hasn't changed since then anyway)

Unfortunately I don't have e.g. SACDs handy so I can't just try brute force programming in soft keys for every OBC that I don't already know and doing it that way (although I just did that for a Sharp BDP last weekend and actually found discrete power codes for it...)

Anyway just thought I would make you aware of the menu issue above, and if there's a handy tutorial for what I'm trying to do, I'd appreciate a link.

thanks!
Back to top
View user's profile Send private message
Barf
Expert


Joined: 24 Oct 2008
Posts: 1186

PostPosted: Mon Jun 08, 2020 3:01 am    Post subject: Reply with quote

n8nagel wrote:

When I try to select File, Import, Import as a set of raw signals, RMDU, the file browser is looking for a .xcf file not .rmdu

You are right, thankyou. Issue. Fixed versiion available in the CI build.

Quote:
Also, I can't remember how to check my JP1 (Xsight Color) learns and turn them into real signals; most of them work OK in RM but I'm trying to program an upgrade for an old Samsung DVD player and I'm getting a few buttons that just will not seem to give me good protocol/device/OBC info within RM. some of my learns say **None** and some say **Multiple** for protocol. I'm assuming that this is because there's probably two different protocols that can generate very similar IR signals?


Since you do not provide details, cannot give detailed help. Generally speaking, an IR signal can have no, one, or many decodes. In practice, if most signals decode sanely, then the offending ones are almost surely bad learns; just relearn them.

Quote:

Unfortunately I don't have e.g. SACDs handy so I can't just try brute force programming in soft keys for every OBC that I don't already know and doing it that way (although I just did that for a Sharp BDP last weekend and actually found discrete power codes for it...)

Super Audio CD??? I do not understand Confused

Quote:
... if there's a handy tutorial for what I'm trying to do, I'd appreciate a link.

Watch my upcoming Youtube channel!
Back to top
View user's profile Send private message Send e-mail Visit poster's website
mathdon
Expert


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

PostPosted: Mon Jun 08, 2020 4:05 am    Post subject: Reply with quote

Barf wrote:
Quote:
check for a duplicate command with the same name. I think there are 12 instances of this,
Would it be possible to check this during import, and treat it in a "well defined" way, like complaining to the user and keeping the last (first?) one?

It is your function, Remote.getCommands(), that returns a Map< String, Command > so that a duplicate command name overwrites the entry for the previous occurrence.
_________________
Graham
Back to top
View user's profile Send private message
mathdon
Expert


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

PostPosted: Tue Jun 16, 2020 9:44 am    Post subject: Reply with quote

I have now uploaded RMIR with Girr export to the SVN. As with Girr import, it is in RM on the File menu and in RMIR on the Device Upgrade tab as a button and also in the popup menu. I have found it much easier to test using RMIR, as there are .rmir files with many device upgrades rather than loading one at a time into RM.

The rmProtocols.xml file that is included has entries of several types:
    (a) Correction of errors that are nothing to do with Girr export but discovered during testing. These include corrections of all uei-executor entries that have parameters such as F>63, as I had misunderstood the use of such parameters when creating those entries in the first place.

    (b) Additional prefer-over entries to ensure that Girr export uses the most appropriate protocol, such as NEC1 rather than NEC-f16 for an NEC1 signal.

    (c) Tweaks to ensure the invertability of certain parameter expressions, such as changing (OEM1<<8)+OEM2 to (OEM1<<8)+OEM2:8 as the former cannot be inverted without knowing that OEM2 does not have more than 8 bits.
I have also made a change to the IRP of RC6-6-20 to change T from an automatic parameter to a specifiable one, as the 0020:2 executor has T as a device parameter. The notes say that this is commonly used by Sky and Sky+ remotes and the executor notes say that Sky does not toggle T.
_________________
Graham
Back to top
View user's profile Send private message
mathdon
Expert


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

PostPosted: Tue Jun 23, 2020 6:22 am    Post subject: Reply with quote

This is from the CI build of 1 June, so apologies if this has been fixed. There are oddities in the behaviour on selecting Export dir on the Export tab. If I make a selection and then press Open, the directory that opens is the previously selected one, not the current one, and the selection appears to have no effect on the folder offered for entering a filename when exporting (with Automatic file names turned off).
_________________
Graham
Back to top
View user's profile Send private message
Barf
Expert


Joined: 24 Oct 2008
Posts: 1186

PostPosted: Tue Jun 23, 2020 3:12 pm    Post subject: Reply with quote

mathdon wrote:
This is from the CI build of 1 June, so apologies if this has been fixed. There are oddities in the behaviour on selecting Export dir on the Export tab. If I make a selection and then press Open, the directory that opens is the previously selected one, not the current one,...

Every fileselector. identified by its title, has its own remembered saved directory. When a file (or directory) is selected, the current directory of the fileselector is saved. Exampe: if you select a directory C:\foo\bar as export directory, the saved directory is C:\foo, since it is the directory in which you select bar. The saved directory is used as start directory for subsequent invocations of the same fileselector. (These saved directories are even saved persistently.) This answers the first question.

Quote:
... and the selection appears to have no effect on the folder offered for entering a filename when exporting (with Automatic file names turned off).

The exportdir is not used for non-automatic file names.

So in both cases the behavior is the desired one. Wink
Back to top
View user's profile Send private message Send e-mail Visit poster's website
mathdon
Expert


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

PostPosted: Wed Jun 24, 2020 5:05 am    Post subject: Reply with quote

Barf wrote:
So in both cases the behavior is the desired one.

Well, that's all right then. The behaviour is totally counter-intuitive and confusing, but if it is what is intended, so be it.
_________________
Graham
Back to top
View user's profile Send private message
Barf
Expert


Joined: 24 Oct 2008
Posts: 1186

PostPosted: Mon Jun 29, 2020 6:09 am    Post subject: Github presently down! Reply with quote

Github is presently down. If this is not fixed in a few hours, and someone has a dire need to download IrScrutinizer, please let me know.
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Barf
Expert


Joined: 24 Oct 2008
Posts: 1186

PostPosted: Mon Jun 29, 2020 8:04 am    Post subject: Reply with quote

Github is supposed to be fixed.
Back to top
View user's profile Send private message Send e-mail Visit poster's website
mathdon
Expert


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

PostPosted: Wed Jul 01, 2020 8:14 am    Post subject: Reply with quote

A strange problem seems to have arisen suddenly, possibly a result of a recent Windows 10 update. At least, I cannot think of any other cause. The effect is that I can no longer open RemoteMaster or IrScrutinizer by double-clicking the jar file. I suspect the cause is the same for both apps, but I do not know how to find an error file for IrScrutinizer so can only speak for RemoteMaster. Here is the relevant extract from rmaster.err:
Code:
java.lang.NullPointerException
   at org.antlr.v4.runtime.CharStreams.fromString(CharStreams.java:222)
   at org.antlr.v4.runtime.CharStreams.fromString(CharStreams.java:212)
   at org.harctoolbox.irp.ParserDriver.<init>(ParserDriver.java:33)
   at org.harctoolbox.irp.Protocol.<init>(Protocol.java:135)
   at org.harctoolbox.irp.NamedProtocol.<init>(NamedProtocol.java:94)
   at org.harctoolbox.irp.IrpDatabase$UnparsedProtocol.toNamedProtocol(IrpDatabase.java:949)
   at org.harctoolbox.irp.IrpDatabase$UnparsedProtocol.access$600(IrpDatabase.java:748)
   at org.harctoolbox.irp.IrpDatabase.getNamedProtocol(IrpDatabase.java:557)
   at org.harctoolbox.irp.Decoder.lambda$new$0(Decoder.java:127)
   at java.util.LinkedHashMap$LinkedKeySet.forEach(Unknown Source)
   at org.harctoolbox.irp.Decoder.<init>(Decoder.java:125)
   at org.harctoolbox.irp.Decoder.<init>(Decoder.java:99)
   at com.hifiremote.jp1.LearnedSignal.getTmDecoder(LearnedSignal.java:541)

Line 541 of LearnedSignal.java, which triggers the error, is:
Code:
tmDecoder = new Decoder( tmDatabase );

The problem affects older issues of IrScrutinizer as well as the current CI build, so it is not a result of a recent update to it. Opening RemoteMaster from a shortcut is OK, but a command line
Code:
javaw.exe -jar RemoteMaster.jar

issued in the RMIR install directory fails with this error. Any help or diagnosis would be welcome.
_________________
Graham
Back to top
View user's profile Send private message
mathdon
Expert


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

PostPosted: Wed Jul 01, 2020 8:59 am    Post subject: Reply with quote

Earlier in this thread I wrote:
mathdon wrote:
I have also made a change to the IRP of RC6-6-20 to change T from an automatic parameter to a specifiable one, as the 0020:2 executor has T as a device parameter. The notes say that this is commonly used by Sky and Sky+ remotes and the executor notes say that Sky does not toggle T.

I have since realized that this is not an isolated issue. There are nine RC6-M-N executors in protocols.ini for various values of M and N. Of these, T does not toggle in five of them and three of the remaining four select between toggle and no-toggle with a device parameter. The only one in which T always toggles is 0058:2, the RC-6 executor that is also the RC6-M-16 executor. So some means needs to be found to incorporate into irpProtocols.xml those executors that provide a choice between toggling and non-toggling behaviour.

A first thought might be to have two entries, such as RC6-6-20 and RC6-6-20n with the latter being non-toggling. These would have different IRPs, reflecting their T behaviour. However, as far as I can see, IrpTransmogrifier and IrScrutinizer behave identically, despite the difference in IRP. On decode, the value of T is shown in both cases, and on generate, T is specified and repeated generation keeps the same T value rather than toggling with one and not with the other. Every decode would result in both protocols being identified, and if one were set to prefer over the other, the non-preferred one would be essentially redundant.

Apart from the IRP (and possibly documentation), the only difference would be in the uei-executor entries. In the case of RC6-6-20 (toggle version) there would be none, as all three executors in protocols.ini are non-toggling only. I suggest that the best solution is to accept a mismatch in toggle behaviour between the IRP and the executor. So in the RC6-6-20 case there would be one protocol, with the IRP showing toggle behaviour but the executors being non-toggling, and the documentation entry pointing out this difference. In the case of executors allowing the non-toggling T value to be specified, the uei-executor would leave it unspecified so that it would take its default value. As an example, the RC6-6-20 entries would be
Code:
        <irp:parameter name="uei-executor">0020[6,D,S;F]</irp:parameter>
        <irp:parameter name="uei-executor">0020:2[6,D,S;F]</irp:parameter>

even though the 0020:2 executor has T as a fourth device parameter.

This could result in a decode showing T=1 but on conversion to a device upgrade, the upgrade would send T=0. There are, however, other device parameters that may need manual adjustment after conversion to a device upgrade, whose value cannot be deduced from a single signal, so I do not see this as a problem.
_________________
Graham
Back to top
View user's profile Send private message
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 ... 20, 21, 22, 23, 24  Next
Page 21 of 24

 
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
Get Smart! the band's official homepage Rockabilly Central