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

Post Reply
Barf
Expert
Posts: 1524
Joined: Fri Oct 24, 2008 1:54 pm
Location: Munich, Germany
Contact:

Bug in ICT export on Windows fixed

Post by Barf »

In this and some followin posts a bug in the ICT export on Windows was discovered. Turned out that this was very easy to fix, since that export is purely implemented as XSLT-code withing the file exportformats.xml.

To get the fix of the problem, just get as the newest version of exportformats,xml from Github.
Barf
Expert
Posts: 1524
Joined: Fri Oct 24, 2008 1:54 pm
Location: Munich, Germany
Contact:

Post by Barf »

Here is a fairly detailed DIY guide for an Arduino nano clone based board, perfect for use with IrScrutinizer for capturing and sending. The component cost is about the price of a small pizza.
Carl
Posts: 159
Joined: Thu Jan 15, 2009 7:30 pm
Location: Quebec city, Canada
Contact:

Convert codes from globalcache

Post by Carl »

Hi Barf,

Your software is great.
I was wondering if you could add some kind of tool to convert globalcache code to OBC, so it could be imported in remote master with the name of buttons and OBC code.
Right now we can only convert it by pasting it in the scrutinize signal window, but it only take one signal.


The email that globalcache is sending when you request for a a code look like this:

Code: Select all


function, code1, hexcode1, code2, hexcode2

"BLANK","sendir,1:1,1,38000,1,69,342,171,22,21,22,21,21,22,21,21,22, 63,22,63,22,21,22,21,21,64,21,64,21,64,21,64,21,21,22,21,22,63,22,63, 22,63,22,63,22,21,21,64,21,21,22,21,22,21,21,64,21,21,22,21,22,63,22, 21,22,63,22,63,22,63,22,21,21,1529,343,85,22,3656 ","0000 006D 0022 0002 0156 00AB 0016 0015 0016 0015 0015 0016 0015 0015 0016 003F 0016 003F 0016 0015 0016 0015 0015 0040 0015 0040 0015 0040 0015 0040 0015 0015 0016 0015 0016 003F 0016 003F 0016 003F 0016 003F 0016 0015 0015 0040 0015 0015 0016 0015 0016 0015 0015 0040 0015 0015 0016 0015 0016 003F 0016 0015 0016 003F 0016 003F 0016 003F 0016 0015 0015 05F9 0157 0055 0016 0E48",,

"CURSOR DOWN","sendir,1:1,1,38000,1,69,342,171,21,22,21,21,22,21,22,21,21, 64,21,64,21,21,22,21,22,63,22,63,22,63,22,63,22,21,21,21,22,63,22,63, 22,63,22,21,22,63,22,63,22,21,21,21,22,21,22,63,22,21,22,63,22,21,21, 21,22,63,22,63,22,63,22,21,22,1528,342,85,22,3652 ","0000 006D 0022 0002 0156 00AB 0015 0016 0015 0015 0016 0015 0016 0015 0015 0040 0015 0040 0015 0015 0016 0015 0016 003F 0016 003F 0016 003F 0016 003F 0016 0015 0015 0015 0016 003F 0016 003F 0016 003F 0016 0015 0016 003F 0016 003F 0016 0015 0015 0015 0016 0015 0016 003F 0016 0015 0016 003F 0016 0015 0015 0015 0016 003F 0016 003F 0016 003F 0016 0015 0016 05F8 0156 0055 0016 0E44",,

"CURSOR ENTER","sendir,1:1,1,38000,1,69,342,171,22,21,21,21,22,21,22,21,22, 63,22,63,22,21,21,21,22,63,22,63,22,63,22,63,22,21,22,21,21,64,21,64, 21,64,21,64,21,64,21,64,21,21,22,21,22,21,21,21,22,21,22,21,21,22,21, 21,22,63,22,63,22,63,22,63,22,1529,342,85,22,3656 ","0000 006D 0022 0002 0156 00AB 0016 0015 0015 0015 0016 0015 0016 0015 0016 003F 0016 003F 0016 0015 0015 0015 0016 003F 0016 003F 0016 003F 0016 003F 0016 0015 0016 0015 0015 0040 0015 0040 0015 0040 0015 0040 0015 0040 0015 0040 0015 0015 0016 0015 0016 0015 0015 0015 0016 0015 0016 0015 0015 0016 0015 0015 0016 003F 0016 003F 0016 003F 0016 003F 0016 05F9 0156 0055 0016 0E48",,

I've also ask others if they knew if such a tool exist:

http://www.hifi-remote.com/forums/viewtopic.php?t=17032
Barf
Expert
Posts: 1524
Joined: Fri Oct 24, 2008 1:54 pm
Location: Munich, Germany
Contact:

Post by Barf »

I wrote a technical answer on how to parse the mail in the other thread.

I have almost completed a nice class for import through the ControlTower API, but then I discovered that they do not allow free account to retrieve codes throught the API. Annoying... :cry:
Carl
Posts: 159
Joined: Thu Jan 15, 2009 7:30 pm
Location: Quebec city, Canada
Contact:

Post by Carl »

Ok I have successfully imported the global cache mail in the import/raw tab by renaming the mail in csv and I can see all the codes in the scrutinize remote tab.

The problem is exporting them for use in remotemaster (2.03 build 14).
Why does it produce a .tsv file? It is not recognized by remote master.
I cannot paste it either in the Functions window.
Barf
Expert
Posts: 1524
Joined: Fri Oct 24, 2008 1:54 pm
Location: Munich, Germany
Contact:

Post by Barf »

Carl
Posts: 159
Joined: Thu Jan 15, 2009 7:30 pm
Location: Quebec city, Canada
Contact:

Post by Carl »

Nice, I did a test and it seems to be working. Is there any way to make it work with future remote master release?
Barf
Expert
Posts: 1524
Joined: Fri Oct 24, 2008 1:54 pm
Location: Munich, Germany
Contact:

Post by Barf »

Actually, I have beem working on that issue just today, as well as the other direction, export. So someting may happen soon... :wink:
Barf
Expert
Posts: 1524
Joined: Fri Oct 24, 2008 1:54 pm
Location: Munich, Germany
Contact:

Post by Barf »

I just put together the new version 1.2. It contains a lot of minor improvements and bug fixes.

Release notes:
The notation #n refers to issues number n at
https://github.com/bengtmartensson/harc ... dle/issues

Version 1.2
Open Issues:
* MacOS 10.11.4: Crash in RXTX when closing serial USB device, #64.
* MacOS 10.11.4: LAF Metal on Mac OSX El Capitan broken, #119.

User visible changes:
General:
- AppImage (see http://appimage.org/) format available for 64-bit
Linux, #65.
- Misc. minor tweaks in the installation.
- The installation is now completely relocatable (#100). For this, filenames
must not be stored with absolut filenames if they are children of apphome.
- Does not assume that CWD = applicationHome any more.
- IrpMaster, as executable, noninteractive program, can now be invoked by
giving --irpmaster as the first argument on the command line to IrScrutinizer.
- Added directory contributed. This should contain "contributed" protocols etc.
- Wrong parameter spec in RECS80 fixed (#114).
- Remove unused DTD support (#94).
- irscrutinizer.sh: (wrapper) improved location of apphome.
- Added some XML files from W3C and Apache, adapted the XML catalog
in order to make the project more self contained, and to allow
validation without network access.

GUI:
- Remove text "Analyzer result unavailable" (it looks like an error),
Ditto for DecodeIR. If analyzer not enabled, clean the field "AnalyzeIR"
when scrutinizing.
- Sort export formats in the GUI alpabetically (case insensitively).
- Load Tonto early, to dispose scary looking (but irrelevant) loading errors.
- New entries in the Help menu: issues, Feedback, Git repository #115.
- An active capture on "Scrutinize remote" now disallows capture
on "Scrutinize signal" and "Capturing hw"/Test (#109).
- Store last used import format persistently in properties. #108
- Handle attempts to hide non-existing columns more gracefully.
- Middle mouse in the scrutinze-remote tables now transmits the signal
under the mouse.
- Barf on no and multiple selections in some table functions.
- Update the GUI menus after reloading export format data base (#83).
- Issue confirmation if Girr-exporting with "everything" deselected.
- Paste in the data window of "Scrutinize signal" now replaces newlines
by spaces, #75.

Girr:
- Namespaces are used consequenctly in girr files, schema file now
girr_ns.xsd. (#84). New documentation files.
- xinclude now supported in Girr files. #107.
- CommandsSet import: Fixed nasty bug in getting the protocol of children, #118.
- girr[_ns].xsd: change definition of appParameter (allow string as value).
- Girr instances now accept hexadecimal number prepended by 0x
for parameter values. Removed attribute display-name, there is already
a displayName. General cleanup in girr.xsd.
- (Girr) change name uniqueness for command names #85
Now the command names are required to be unique within the CommandSets,
not in the remote.
- Implemented multi-toggles for Girr.Command. (#104)
- Parse hexadecimal numbers (etc) as parameters in Girs import (#70).
- Girr: cleanup of command API #105.

Export:
- There is now a schema file for exportformats.xml, exportformats.xsd. (#116).
- Support xinclude in exportformats.xml #106
- New export format: Arduino Raw (#17), supports IRremote, IRLib,
Infrared4Arduino.
- New export formats Arduino/Infrared4Arduino & Arduino/IRremote, #17, #116.
- New export format RemoteMaster (#113)
- New export format IrPlus https://irplus-remote.github.io. #103
- DynamicRemoteSetExportFormat now contains main routine for command
line processing of exportformats in XSLT.
- User selectable character set for export #93 (Options -> Export
options -> Character set...)
- IctExporter is now an xslt-export.
- Fixed two bugs with Lirc export: Names with spaces were
generated; RC5: misbehavior on F > 63, #90.
- fixed bugs in ict export, erroneous line endings on Windows.
See http://www.hifi-remote.com/forums/viewt ... &&start=21
- LircExport: do not bail out for single silly signals; set explicitly
frequency for NEC1 and RC5 Lirc export.
- NPE in IrScrutinizer when exporting an exotic Pronto code #77.
- Girr: do not give up completely on non-renderable signals #69

Import:
- Improved error message for parse errors.
- Minor parse robustness improvements for raw signals.
- Import signals: if a particular command is erroneous, just ignore
*that command* instead of aborting the entrie import.
- Parser for Lirc files rewritten from scratch (#101).
- Some cleanup of Jirc API, doc fixes.
- Mode2Importer: Do not require pulses and spaces to be interleaving.
- User selectable character set for import #93 (Options -> Import
options -> Character set...)
- IrTransImport: fixed bug in raw import #95.
- IrTransImporter: Ignore keyword "RO" as junk. Cf. http://www.irtrans.de/forum/viewtopic.php?f=24&t=3970
- Now handles IRDB entries with null protocol gracefully, ignoring them.
- Improved parsing of text files with multi column names #78.
Multicolumn names may now contain small numbers (at most 2 digits),
if the names come after the parameters.

Hardware support:
- CommandFusion: Detect EOFs from device to prevent endless loop.
- Fixes for changed syntax of the GlobalCache getversion command (#117).
- AmxBeaconListener: Avoid null pointer exception.
- allow the Arduino sending/receiving to use any baud rate.
- LircMode2.java: Handle timeouts (receive() returning null) better.
...
Since the downloads are availble both from my site as well as at Github, I do not consider it necessary to make them downloadable from the file section here.

Here are direct download links:
Binary zip distribution , Windows users probably should use Windows setup.exe. There is also a Mac Os X app, finally an AppImage version for "any" 64 bit x86 Linux.

Suggestions, feedback, question as well as constrictive criticism are always welcome.
Barf
Expert
Posts: 1524
Joined: Fri Oct 24, 2008 1:54 pm
Location: Munich, Germany
Contact:

Post by Barf »

Version 1.3 of IrScrutinizer has been released: Release notes included below.

There is a large number of improvements and bug fixes.

For (my!) convenience, this release is available only on Github.

Suggestions, feedback, question as well as constrictive criticism are always welcome. And, or course, improvements to the program or its documentation.

The Guide in Wiki has not yet been updated.
Release notes wrote: The notation #n refers to issues number n at
https://github.com/bengtmartensson/harc ... dle/issues

Version 1.3

Open issues in this release:
* "Open last file" may invoke new instance of IrScrutinizer, #149.
* MacOS 10.11.4: Crash in RXTX when closing serial USB device, #64.

User visible changes:
Porting:
- Raspberry Pi (armv7 hard FP) is now supported.

GUI:
- The panes "Sending hw" and "Capturing hw" have been interchanged (also in the manual) #150.
- There is now a confirmation dialog if exiting with non-empty remote tables, #86
- Improvements on metadata inquiry for remote exports. #89
- Files to be imported can now be given as command line arguments. #112
This allows .girr files to be associated with IrScrutinizer.
- Many files can can be plotted by dropping on "Scrutinize signal"; #127
- "Paste selection" in data window on Scrutinize signal fixed #136
- Editing of timing data in Raw Remote table now implemented #144
- Alt-R(Alt-P) now accelerators for selecting raw(Pronto) output.
- Save current pane to properties. Get "Jump to last panel" fully working.
- Generate-pane: T and "Additional parameters" now saved in properties.
- (Somewhat) better error handling and error messages.

Generate:
- Selecting non-toggling protocol now resets T in Generate pane #135.
- Option "Disregard repat mins" now takes effect without program restart #138

Protocols:
- "new" protocols: NEC1-msb, NEC1-32-msb.
- Fixed protocols:-Nokia32 (now really toggles, #140)
NECx1: wrong default for S
Sony8: Crazy trailing gap
Thompson: fixed handling of F
Roku-Official: fix parameterspec (upper bound) for F.
PCTV: removed silly 0 durations.
Revox: Set frequency to 0.
G.I.4DTV: removed C from parameter spec.

Import:
- Many file types can now be imported by "dropped" on the GUI; #111
- Signals can now be imported to the parametric table even if the protocol
is empty or nonsensical, #120
- mode2-import (Lirc) now has its own subpane under Import #121
- GlobalCache Control Tower data base (http://irdb.globalcache.com/)
can now be "browsed", however not directly imported. #129
- LircClient now has its own timeout (Options -> Timeouts -> Lirc timeout)
- GirrImport is now capable to import directory hierarchies.
- IRDB import: at the initial load, load the first device too.

Export:
- Fixed problem exporting multiple irplus files #139
- Fixed unwanted case sensitivity on protocol names for Lirc export; #142.
- Replace the Java implementation of LircExporter by an XSLT-implementation in exportformats.xml.

Core:
- The repeat finder of ExchangeIR has been implemented by a own implementation,
believed to be more reliable and maintainable. #21
- Robustness improvements in parsing strings on "scrutinize signal/scrutinize; #123

Hardware support:
- "Arduino support" has been replaced by "general Girs support"; #24
- Suitable hardware may now be opened both for capturing and sending, #54
- (Linux only) Devices on /dev/lirc now supported for sending and receiving; #122
- Better timeout handling for some hardware.
mdavej
Expert
Posts: 4631
Joined: Wed Oct 08, 2003 7:08 am

Post by mdavej »

Thanks Barf. Amazing job as always.
mdavej
Expert
Posts: 4631
Joined: Wed Oct 08, 2003 7:08 am

Post by mdavej »

Barf,

I have a question about generating pronto hex. A signal like the one below decodes to protocol = NEC1-f16, device = 210, subdevice = 30, obc = 80, misc = OBC2=148

0000 006C 0022 0002 0156 00AC 0015 0016 0015 0041 0015 0016 0015 0016 0015 0041 0015 0016 0015 0041 0015 0041 0015 0016 0015 0041 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0016 0015 0041 0015 0016 0015 0016 0015 0016 0015 0041 0015 0016 0015 0041 0015 0016 0015 0016 0015 0041 0020 066F 0156 0056 0020 0E54

However, on the Generate tab, it's not possible to input the misc parameter (OBC2=148) because the Additional parameters box is disabled.
Barf
Expert
Posts: 1524
Joined: Fri Oct 24, 2008 1:54 pm
Location: Munich, Germany
Contact:

Post by Barf »

The answer is quite simple: The protocol NEC1-f16 is parametrized as

Code: Select all

{38.4k,564}<1,-1|1,-3>(16,-8,D:8,S:8,F:16,1,^108m,(16,-4,1,^108m)*) [D:0..255,S:0..255=255-D,F:0..65535]
(i.e. a 16 bit F, as is suggested by the name) while DecodeIR is using another parametrization. It is possible to enter other versions in IrpProtoocols.ini; I think you know how. ("Additional parameters" is active if and only if there are other parameters than F, S, D, and T).

It is of course not optimal that the decoding (though DecodeIR) is not "synchronized" with the generation in IrScrutinizer. This is the subject of ongoing work..

Suggestions for changes in IrpProtoocols.ini are of course also welcome.
Barf
Expert
Posts: 1524
Joined: Fri Oct 24, 2008 1:54 pm
Location: Munich, Germany
Contact:

Post by Barf »

Version 1.4 of IrScrutinizer has been released: Release notes included below.

There is a number of improvements and bug fixes.

For (my!) convenience, this release is available only on Github.

Suggestions, feedback, question as well as constrictive criticism are always welcome. And, or course, improvements to the program or its documentation.

The Guide in Wiki has not yet been updated.

Release notes:
Release notes for IrScrutinizer, including IrpMaster, Girr, HardHardware,
and Jirc.

The notation #n refers to issues number n at
https://github.com/bengtmartensson/harc ... dle/issues

Version 1.4

Open issues in this release:
* MacOS 10.11.*: Crash in RXTX when closing serial USB device, #64.

User visible changes:

Core:
- Java 8 now required #180.
- Fixed inaccurate computation of period dependent units #152.
- Some protocols updated, in particular documentation #153. IRP:
Blaupunkt, Bose, CanalSat, NRC16, NRC16-32, Proton, Proton-40, RC5-7F,
RC5-57, RC5x, StreamZap, StreamZap-57, TDC-38, TDC-58.

Installation:
- Mime type file girr.xml now installed on freedesktop etc. #184

GUI:
- Double clicking a *.girr file no longer considered unsaved content #183.
- Paste in Scrutinize Signal data window was broken #171
- Continuous capture of signal in Scrutinize signal implemented #168.
- "Open last file" no longer invokes new instance of IrScrutinizer #149

Hardware:
- Lirc Mode2 as input re-implemented #181.
- Lirc Mode2 as input can now read from stdin #178.
- /dev/lirc support was broken, at least on Fedora, fixed #177
- Several issues in the CommandFusion driver fixed #158

Export
- Lirc Export vastly improved, #175, #174, #141.
- Girrexport: erroneous xsi:schemaLocation fixed #173
- Assert that frequency in Arduino export is integer #169
- Reorganized multiple export format files #167, #156.
- TransformationException in XmlExporter.printDOM is caught too early,
causing error message to get lost. #154

Importer:
- if "Load File" invoked file selector, the wait cursor was not shown. #16
- 1mporter fileselector type combo box contained both "Zip files (*.zip)" and
"Zipped files (*.zip)" #160
- IrTrans import: evaluate RC parameter #157
Keep Scrutinizing!
Barf
Expert
Posts: 1524
Joined: Fri Oct 24, 2008 1:54 pm
Location: Munich, Germany
Contact:

Post by Barf »

The Guide in Wiki has been updated!! 8-)
Post Reply