IrScrutinizer: capturing, generating, analyzing, import, exp

Discussion forum for JP1 software tools currently in use, or being developed, such as IR, KM, RemoteMaster, and other misc apps/tools.

Moderator: Moderators

mathdon
Expert
Posts: 4731
Joined: Tue Jul 22, 2008 8:53 am
Location: Cambridge, UK

Post by mathdon »

Two minor questions on the "Scrutinize remote" panel: (a) why does the column headed Date show a time, not a date? I thought it might really be "Date and time" and was just named Date for short, but I can find no way of extracting a date from it, and (b) what is the "Ver" column checkbox for? I can find no explanation of what Ver means.

Also a comment on Export. I find it confusing that Export is spread over two panes. I pressed the Export button on the "Scrutinize remote" panel and got a message asking if I wanted to create a folder with some obscure path that meant nothing to me. I found that I needed to go to the separate Export panel to set the path and export type, and although there are various export buttons on that panel, if I wanted to see what I was exporting, I needed to go back to the "Scrutinize remote" panel. Then on pressing Export, apparently nothing happened. I had to use File Explorer to check that it had actually created a file. It would be nice if pressing Export gave a confirmation message with the file path and name. On further experimentation I found that by right-clicking, I could do what I really wanted to do in the first place, which was export only a selection of signals. There is no button that I can see for "Export selection".

I appreciate the great flexibility of the export process and can think of no suggestions on how to make it clearer, but I did find this rather tortuous.

Edit: I see on looking further that the console panel at the bottom gives a message about the export file being written successfully, so you should ignore that part of the comment. That on the process being tortuous remains, though.
Graham
Barf
Expert
Posts: 1525
Joined: Fri Oct 24, 2008 1:54 pm
Location: Munich, Germany
Contact:

Post by Barf »

mathdon wrote:... It is that panel in Import > Wave display which says "No remotes loaded" and which, when you load the test file, changes to a tree structure with a top node of "Remotes" that made me think it might be able to do something with an RMIR wave file. I am unclear what that panel is for, if the wave files are simply one IR signal converted to a .wav file.
A wav file is (by necessity) only one IrSequence. (Trying to export "parametric remote" as wav gives a error.) All importers (to the extent possible) have the same GUI (reducing the learning effort), therefore the single IR command is represented as a dummy remote with a single command. I do not see this is not a problem.
It might be helpful if the Wiki entry on importing wave files included the link you gave in your previous reply.
Agree in principle (but recall that a tutorial is a tutorial, and just adding to it is not the way to make it more valuable), but the linked thread is not pedagogically very well written, and does not live up to my requirements. I may come up with something... :wink:
Barf
Expert
Posts: 1525
Joined: Fri Oct 24, 2008 1:54 pm
Location: Munich, Germany
Contact:

Post by Barf »

The Robman wrote:... here is a summary of the instructions to translate the REM signals currently:

1. Select the Import pane, then select the "IrTrans" subpan
2. presss either "Load File/Url" or "Load from clipboard".
3. press "Import all/raw".
4. Select OK
5. Go to pane "Export", and select for example "Text".
6. Select "Raw" and "Pronto Hex".
7. Press "Export raw remote"
8. Select "Open last file".
When you are, say, using Excel to convert a comma separated values (CSV) file to a tab-separated file, you,

* open importer,
* a preview comes up which you either accept, or not; in the latter case you go back and adjust some of the import parameters,
* click ok in the preview, which takes you to an Excel table. There you can do desired fixes.
* Start the exporter; selecting its parameters.

As you can see, this is almost exactly the same procedure.
Here's how I would prefer it worked:

1. Copy/paste text into open box
2. Click "Decode"
In the "tree" you have the decodes (if decoding succeded), just that you have to hover the mouse to see them. So I do not see anything really new.

However, I have been considering having an "Export" shortcut (button) on the "Import" pane -- would save the visit to "Scrutinize remote". (And there is plenty of screen space on that pane.) But keep in mind that allowing alternative paths of execution in the program may be considered confusing by some. Opinions?
Please take this ass constructive criticism,
I do. Thank you for the feedback, helping making the program better.
Barf
Expert
Posts: 1525
Joined: Fri Oct 24, 2008 1:54 pm
Location: Munich, Germany
Contact:

Post by Barf »

mathdon wrote:Two minor questions on the "Scrutinize remote" panel: (a) why does the column headed Date show a time, not a date? I thought it might really be "Date and time" and was just named Date for short, but I can find no way of extracting a date from it,
It is date and time. I defend myself by saying that in modern IT, "Date" often denotes date & time, for example the Unix command "date" and the Java class java.util.Date.
I see no reason to change.
(b) what is the "Ver" column checkbox for? I can find no explanation of what Ver means.
I see that I forgot to metion it even in the manual :oops: It has no semantics. The user can use it any way he or she likes. ("Ver." is supposed to mean Verified.) The idea is that a set of imported signals (say from Global Cache), the individual signals can be marked as verified, if they happen to work. Possibly I should hide that column? Unless the user turns on some obsure option?
I find it confusing that Export is spread over two panes.
It is not really spread over two panes. The real exporter is the "Export" pane, the "export" button is just a shortcut to "Export param. remote" on the Export pane. But possibly there is a better way to explain?
I pressed the Export button on the "Scrutinize remote" panel and got a message asking if I wanted to create a folder with some obscure path that meant nothing to me. I found that I needed to go to the separate Export panel to set the path
default is the subdirectory export of Java's system property java.io.tmpdir, which is set by the operating system vendor. However the user can change it as "Export dir.". Changes are persistent. It it does not exist, the program offers to create it. Can it be better?
I found that by right-clicking, I could do what I really wanted to do in the first place, which was export only a selection of signals. There is no button that I can see for "Export selection".
Right mouse button; "export selected" pretty much in the middle of the menu.
Edit: I see on looking further that the console panel at the bottom gives a message about the export file being written successfully
...and I consider this infinitely much better than the standard Windows behavior: a (modal) popup comes up, "file blahblah written", forcing you to grab the mouse and kill that silly popup. And --- woops ---now the information on the file name is gone!! And, often, it was not even copyable on the popup... And the name is also rememered in "Open last file".
The Robman
Site Owner
Posts: 21988
Joined: Fri Aug 01, 2003 9:37 am
Location: Chicago, IL
Contact:

Post by The Robman »

Barf wrote:However, I have been considering having an "Export" shortcut (button) on the "Import" pane -- would save the visit to "Scrutinize remote". (And there is plenty of screen space on that pane.) But keep in mind that allowing alternative paths of execution in the program may be considered confusing by some. Opinions?
It's hard for to advise much at this point because, for the most part, I don't know what any of your programs do, but if you want to work together, I'd be happy to help. I'd need to know all of what each program can do, then I could give advice on what the GUI should be. I worked with Mark Pauker like this when we developed IR.exe and most folks found that program pretty easy to operate.
Rob
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help!
mathdon
Expert
Posts: 4731
Joined: Tue Jul 22, 2008 8:53 am
Location: Cambridge, UK

Post by mathdon »

Barf wrote:It is date and time.
Please explain how "23:42:56" is a date and time.
All importers (to the extent possible) have the same GUI (reducing the learning effort), therefore the single IR command is represented as a dummy remote with a single command. I do not see this is not a problem.
I am gradually getting used to the fact that "Remote" means "set of IR signals" rather than a shorthand for "Remote control", and that there are panels, buttons and settings that remain active but which need to be ignored, like the dummy remote you mention. To users trying to get to grips with it, who are learning by experimenting and who do not yet fully understand its many functions, these things are confusing.
Graham
mathdon
Expert
Posts: 4731
Joined: Tue Jul 22, 2008 8:53 am
Location: Cambridge, UK

Post by mathdon »

As far as possible, I will try to accompany further comments with suggestions. Here are some backlog suggestions.

1. You say that the default Export directory is Java's system property java.io.tmpdir, which appears to me to be a directory intended for temporary files used only by the application, not for files created for the user. I suggest that the default directory should be "null" and that when a user presses the Export button while the value is still null, a pop-up should tell the user that Export settings need to be set in the Export pane before the Export button is used.

2. For "Export selection" you say "Right mouse button; "export selected" pretty much in the middle of the menu." True, if you think of looking there when there are buttons named "Export" prominently placed that do not have this option. I suggest a checkbox on the "Scrutinize remote" panel near the Export button that is labelled "selected only", and perhaps the same on the Export panel. This would be much more user-friendly.

3. Disable or hide panels, buttons and so on that are irrelevant to selected options. You do this to some extent, but I return to the import of Wave files. Select Wave on the import button and you are faced prominently with "No remotes loaded". My first reaction was "what does this mean, am I expected to load a remote before doing anything else?". Better to disable or hide this panel. The same goes for the middle panel, the one with four tabs, on the Export pane. These appear to be related to four of the options on the Export Format drop-down. Why keep the four tabs permanently visible? It would seem better just to display the appropriate content when the corresponding option is selected on the drop-down.

4. Back to the Capturing and Transmitting hardware options on the Options menu. As you have agreed that these do not complete the setup data required for the selected items, I suggest removing these items from that menu and letting the user go directly to the corresponding tabs where the full setup can be done.
Graham
Barf
Expert
Posts: 1525
Joined: Fri Oct 24, 2008 1:54 pm
Location: Munich, Germany
Contact:

Post by Barf »

mathdon wrote:1. You say that the default Export directory is Java's system property java.io.tmpdir, which appears to me to be a directory intended for temporary files used only by the application, not for files created for the user. I suggest that the default directory should be "null" and that when a user presses the Export button while the value is still null, a pop-up should tell the user that Export settings need to be set in the Export pane before the Export button is used.
If I intended to keep the files, I turn off "Automatic file names" and save the files using a (hand entered) sensible name in a sensible directory (not the same for all saves). So it is temportary files, likely to be nuked by the next system start. Yes, I know that you hate Windows' \Users\<user>\AppData\Local\Temp, (and you probably will not take it as argument to migrate to Linux, where it is /tmp). Recall that you can change it very easily, changes take effect immediately (Hi 3FG!), and changes are persistant. So I do not really understand your discomfort.

You are suggesting that I set an unusable default. That is not my idea of user friendliness. There are times when a software designed does this, for example with personal information, or to protecting from something potentially dangerous. This does not apply here. It is my opinion that this suggestion would decrease the program's usability and ease of use.
2. For "Export selection" you say "Right mouse button; "export selected" pretty much in the middle of the menu." True, if you think of looking there when there are buttons named "Export" prominently placed that do not have this option. I suggest a checkbox on the "Scrutinize remote" panel near the Export button that is labelled "selected only", and perhaps the same on the Export panel. This would be much more user-friendly.
Disagree. Most people will not need or use it, and for those it will be just another hurdle. It will generate "What is this doing?" questions. User friendliness decreases. A better possibility would be to turn "Export" to invoking a pull-down menu: If there is a selection, there are the choices "All" and "Selected", if there is no selection, this should be as transparently as possibly hidden from the user. Like Thunderbirds "Get Messages". Opinions?
3. ... The same goes for the middle panel, the one with four tabs, on the Export pane. These appear to be related to four of the options on the Export Format drop-down. Why keep the four tabs permanently visible? It would seem better just to display the appropriate content when the corresponding option is selected on the drop-down.
Agree. This is already planned. Also, "extra" export formats should be able to have their own user settable parameters.
4. Back to the Capturing and Transmitting hardware options on the Options menu. As you have agreed that these do not complete the setup data required for the selected items, I suggest removing these items from that menu and letting the user go directly to the corresponding tabs where the full setup can be done.
Planned, See (and comment on) this issue.
mathdon
Expert
Posts: 4731
Joined: Tue Jul 22, 2008 8:53 am
Location: Cambridge, UK

Post by mathdon »

1. On default export directory, we must beg to differ on user-friendliness. Can I at least persuade you to change the message from "xxx does not exist. Create it?" to "The default export directory xxx does not exist. Create it?" or, better still, "No export directory has been set in the Export tab. The default of xxx does not exist. Create it?". Either of these will give the user a better idea of what is being asked.

2. On Export selected, your suggestion is better than mine.

3. On the Date column again, I don't really understand the point of having this column. In Windows it certainly only displays as a time even if in the Java source its type is Date (which I know implicitly is both date and time). I ask again, how is the displayed 11:57:54 a date as well as a time?
Graham
mathdon
Expert
Posts: 4731
Joined: Tue Jul 22, 2008 8:53 am
Location: Cambridge, UK

Post by mathdon »

Here are some comments arising from my experimenting with Dyson AM05 fan heater signals.

1. On the "Scrutinize remote" tab, the keyboard shortcuts for the right-click menu do not work. This is a particular problem with "Move up/down", an action one may want to repeat many times if the table of signals is long (as mine was).

2. "Move up/down" does not have the effect I expected. The line number moves with the signal, while I would expect the numbering to reflect the new ordering. As it is, if I move a signal and then use the sorter, I have no way of returning to the ordering following the move. If I finally sort by number, I have to do the moving all over again.

3. The only way I found around item 2 was to export the reordered signals as a .girr file and re-import it, which does do the renumbering. But I found an oddity with this. When you export to a .girr file, it lets you set metadata. When I re-import it, add further signals and re-export it, it has not preserved the metadata, the fields are all blank again. In fact, I can see no way of recovering the metadata in a saved .girr file.

4. After several re-imports through the Import tab, which is a multi-step process and rather tedious, I spotted the tooltip that you can simply drag and drop a .girr file to the "Scrutinize remote" panel. It would be nice to have an item "Load girr file" on the File menu.

5. The "Power" and "Oscillate" buttons both send exactly two frames, separated by 400ms for "Power" and 100ms for "Oscillate". I had to use IRScope to determine the gap size for Power, as I cannot stop IrScrutinizer from regarding this as two separate signals. I found a workaround for Oscillate, as using "Scrutinize signal" gives a lead-out of 65535, but capturing it with "Scrutinize remote" records it as a single signal and scrutinizing the signal gives 104000. This does not work for Power, where "Scrutinize remote" records two separate signals. I have set "Ending silence" to 1000ms and "Max capture length" to 3000ms, which I assumed meant that it would regard what it received as a single signal until either 3000ms elapsed or a gap of 1000ms was encountered, whichever occurred first. On that basis the two Power frames should be a single signal, but they are not treated as such.

6. First a thank-you for Options > IRP protocol database > Select, which has enabled me to test various forms of Dyson IRP. My final IRP for my AM05 signals was pretty complicated, so I am very impressed with the ability of IrScrutinizer to generate and transmit from it. But there is an issue on the Generate tab that I consider to be a bug. The Dyson protocol uses a 2-bit toggle (and is not the only protocol to do so), in my case with a range 0..2. I have T@:0..2=0 in the range section of the IRP and presumed that the T parameter on the Generate tab would allow me to choose between 0,1,2. It actually offers -,0,1,*. I don't know what - or * mean and I don't get the option of 2.

7. I've just looked in Help > Program Documentation to see if I could find anything about T in the section on Generate, and seem to have found a bug in the documentation. The hyperlinks in the contents table that include quotation marks don't work.


I look forward to your responses.
Graham
mathdon
Expert
Posts: 4731
Joined: Tue Jul 22, 2008 8:53 am
Location: Cambridge, UK

Post by mathdon »

I have just done some further testing, transmitting the Dyson signals with IrScrutinizer and capturing them with IRScope on a second PC. Although they work on the actual fan heater, I find that they do not fully represent the IRP from which they are generated. If I use the Generate button on the Generate tab with raw timing output, the lead-out between the two full frames is as set in the IRP, which is 400ms for Power (F=0) and 100ms for the other signals. However, if I use the Transmit button to send IR, that lead-out is 65.5ms in all cases. I also find that the ditto frames show (once) in the raw timing data but are never generated in the IR signal. Ideally I would like to be able to specify the number of repeats to transmit, for the repeating part of the signal.
Graham
Barf
Expert
Posts: 1525
Joined: Fri Oct 24, 2008 1:54 pm
Location: Munich, Germany
Contact:

Post by Barf »

mathdon wrote:1. On default export directory, we must beg to differ on user-friendliness. Can I at least persuade you to change the message from "xxx does not exist. Create it?" to "The default export directory xxx does not exist. Create it?" or, better still, "No export directory has been set in the Export tab. The default of xxx does not exist. Create it?". Either of these will give the user a better idea of what is being asked.
The initial value of export dir has been changed to $HOME/Documents/IrScrutinizer (%HOME%\Documents\IrScrutinizer). Related: minor bug if automatic filenames not selected.
3. On the Date column again, I don't really understand the point of having this column. In Windows it certainly only displays as a time even if in the Java source its type is Date (which I know implicitly is both date and time). I ask again, how is the displayed 11:57:54 a date as well as a time?
The column has been renamed to "Timestamp". Note that it can be hidden (although not persistently) by selecting the column, RMB -> Hide selected column. If still not satisfied, present a good argument for allowing the user to hide it persistently.
Barf
Expert
Posts: 1525
Joined: Fri Oct 24, 2008 1:54 pm
Location: Munich, Germany
Contact:

Post by Barf »

mathdon wrote:I have just done some further testing, transmitting the Dyson signals with IrScrutinizer and capturing them with IRScope on a second PC. Although they work on the actual fan heater, I find that they do not fully represent the IRP from which they are generated. If I use the Generate button on the Generate tab with raw timing output, the lead-out between the two full frames is as set in the IRP, which is 400ms for Power (F=0) and 100ms for the other signals. However, if I use the Transmit button to send IR, that lead-out is 65.5ms in all cases.
It is not a problem with IrScrutinizer, it is a limitation in the AGirs/Infrared4Arduino firmware. Unfortunately there is no simple fix, so there have to be a complicated fix. :wink:
I also find that the ditto frames show (once) in the raw timing data but are never generated in the IR signal. Ideally I would like to be able to specify the number of repeats to transmit, for the repeating part of the signal.
Sending hw -> Count. Semantik: number of repeats is, if intro is empty, equals to count, otherwise count - 1.
Barf
Expert
Posts: 1525
Joined: Fri Oct 24, 2008 1:54 pm
Location: Munich, Germany
Contact:

Post by Barf »

mathdon wrote:1. On the "Scrutinize remote" tab, the keyboard shortcuts for the right-click menu do not work. This is a particular problem with "Move up/down", an action one may want to repeat many times if the table of signals is long (as mine was).
If the menu is visible, the shortcuts work. But I agree, it would be desirable to use CTRL-Up (etc) directly ("accelerator"). Unfortunately I do not know Swing (the Java GUI toolkit) that well. If you can show me how to do it...
2. "Move up/down" does not have the effect I expected. The line number moves with the signal, while I would expect the numbering to reflect the new ordering. As it is, if I move a signal and then use the sorter, I have no way of returning to the ordering following the move. If I finally sort by number, I have to do the moving all over again.
There is a misunderstanding here: The numbers in the left column are not line numbers, they are a numbers that are assigned by the creation, and cannot be changed. So reassign them is neither possible nor meaningful.

The table models contain a particular ordering of their rows. Turning on the sorter only displays the content differently.
3. ... When you export to a .girr file, it lets you set metadata. When I re-import it, add further signals and re-export it, it has not preserved the metadata, the fields are all blank again. In fact, I can see no way of recovering the metadata in a saved .girr file.
This is an issue already on the to-do list.
4. After several re-imports through the Import tab, which is a multi-step process and rather tedious, I spotted the tooltip that you can simply drag and drop a .girr file to the "Scrutinize remote" panel. It would be nice to have an item "Load girr file" on the File menu.
You can also drop Girr files on the icon, and give them as arguments to the program. Load from the File menu can be achieved as File -> Import -> Import as ... (several versions) -> Girr.
6. First a thank-you for Options > IRP protocol database > Select, which has enabled me to test various forms of Dyson IRP. My final IRP for my AM05 signals was pretty complicated, so I am very impressed with the ability of IrScrutinizer to generate and transmit from it. But there is an issue on the Generate tab that I consider to be a bug. The Dyson protocol uses a 2-bit toggle (and is not the only protocol to do so), in my case with a range 0..2. I have T@:0..2=0 in the range section of the IRP and presumed that the T parameter on the Generate tab would allow me to choose between 0,1,2. It actually offers -,0,1,*. I don't know what - or * mean and I don't get the option of 2.
"-" means don't specify, but rely on default; "*" means generate all, for example in export. Agreed, you cannot select a (normal) value != 0,1. Possibly best to replace it with just a text field?
7. I've just looked in Help > Program Documentation to see if I could find anything about T in the section on Generate, and seem to have found a bug in the documentation. The hyperlinks in the contents table that include quotation marks don't work.
Can you tell me exactly where?
mathdon
Expert
Posts: 4731
Joined: Tue Jul 22, 2008 8:53 am
Location: Cambridge, UK

Post by mathdon »

Many thanks for all the responses.

1. The change of default export directory probably resolves my issue. I'll know better when I try it.

2. The change of Date to Timestamp solves my issue, which was purely terminology.

3. Pity about the maximum lead-out on the Arduino device. Is there any chance of the complicated fix??

4. I will try hw -> count, thanks.

5. Keyboard shortcuts in Swing. I have just copied code that Greg wrote, when I need it, without a deep understanding but it works and I will try to extract some examples for you.

6. Move up/down. Strange, I presumed they were line numbers just as they are on the tables in RMIR, which behave the way I described when you move the lines. I know how the sorter works, as that is used also in RMIR. The line numbers stay with their entries when you sort, so it means that you can return to the pre-sort order by sorting on line number, but that pre-sort order can be the result of moving up and down.

7. Glad to hear the metadata is an outstanding issue.

8. File > Import > Import as > Girr meets my need. I didn't think of looking beyond "Import as".

9. On the T dropdown on Generate tab, I would prefer a dropdown that reflects the value range in the range specifier of the IRP. However, I see on trying it that there is no range checking on D, S and F values either, so a text field for T would be in keeping with that.

10. If I do Help > Program Documentation and click on any of the first three items under "GUI Elements walk through", which are those for "Scrutinize signal" pane, "Scrutinize remote" pane and "Generate" pane, they do not work.


One further question: why have you stuck to the mis-spelling "Dysan"? You say somewhere that it is from 3FG. I presume it is a typo on his behalf.
Graham
Post Reply