RMIR v3.2 Major new release!

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: 4758
Joined: Tue Jul 22, 2008 8:53 am
Location: Cambridge, UK

Re: RMIR v3.2 Major new release!

Post by mathdon »

The Robman wrote: Sun Mar 08, 2026 4:23 pm that folder seems to have accidentally been dropped starting with v3.2.13, if you download versions v3.2.0 and before, it's there
I have traced the omission to a change of computer used for building RMIR versions. I have fixed this in the new computer so JP1_Arduino.ino will now get included automatically in future RMIR builds. I will issue RMIR v3.2.16 as a new release shortly that will include this Arduino file.
Graham
mathdon
Expert
Posts: 4758
Joined: Tue Jul 22, 2008 8:53 am
Location: Cambridge, UK

Re: RMIR v3.2 Major new release!

Post by mathdon »

I have posted RMIR v3.2.16 as a new official release on SourceForge. It is the first release since v3.2.11, as builds 12 through 15 were for development purposes only.

This build addresses several issues that each occur in only special circumstances. These are:
- an issue that occurs in XSight Touch and related remotes when a device upgrade, and so corresponding device, is deleted;
- an issue that when using RMDU to load successive upgrades, it can give a message "Upgrade <none> has inconsistent command lengths";
- failure to open KM files with protocol Sony Combo (12/20), handled now by treating this protocol as a special case;
- an error in RDFs for remotes HUD0HUD0 and related files that causes spurious error messages when importing certain files from KM;
- a problem with editing protocol parameters after editing a device upgrade.

In addition it fixes the omission of JP1_Arduino.ino in the JP1EEPROMSupport folder of recent RMIR builds. It also includes rudimentary support for the Bluetooth OFA Advanced Phone App for URC7981 and related remotes, but as yet this does not allow the downloading or uploading of the data content of the remote.

It should also be noted that certain RMIR features do not work with the most recent versions of Java. The latest LTS (Long-Term Support) version is Java 25, the previous LTS version is Java 21. RMIR works correctly with Java 21 but some change between that and Java 25 has caused certain RMIR features to fail. What that change was is at present unknown, so it is strongly recommended that you use Java 21 or earlier.
Graham
WagonMaster
Posts: 366
Joined: Thu Apr 16, 2009 2:25 pm

Re: RMIR v3.2 Major new release!

Post by WagonMaster »

mathdon wrote: Fri May 08, 2026 4:18 am I have posted RMIR v3.2.16 as a new official release on SourceForge.
Many thanks for all your effort, Graham!

Especially since this is an official release, can you please tag the code associated with this release when you have a moment? Thanks!
Barf
Expert
Posts: 1535
Joined: Fri Oct 24, 2008 1:54 pm
Location: Munich, Germany
Contact:

Re: RMIR v3.2 Major new release!

Post by Barf »

Nice to see that you are still active, Graham!!

Bug: Loading this file, selectng the "General" tab (the default, really), selecting row 5, and pressing "Edit". Nothing appears to happen, but in rmaster.err, we see that things went bellyup:

Code: Select all

DeviceUpgradePanel.createRowObject()
Protocol.setDeviceParms(), protocol="NEC1" (00 5A), parms.length=0 and devParms.length=5
java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0
	at com.hifiremote.jp1.translate.NEC005ATranslator.in(NEC005ATranslator.java:28)
	at com.hifiremote.jp1.Protocol.getFixedData(Protocol.java:1486)
	at com.hifiremote.jp1.SetupPanel.update(SetupPanel.java:443)
	at com.hifiremote.jp1.DeviceEditorPanel.actionPerformed(DeviceEditorPanel.java:433)
	at java.desktop/javax.swing.JComboBox.fireActionEvent(JComboBox.java:1294)
	at java.desktop/javax.swing.JComboBox.setSelectedItem(JComboBox.java:619)
	at com.hifiremote.jp1.DeviceEditorPanel.refresh(DeviceEditorPanel.java:515)
	at com.hifiremote.jp1.DeviceEditorPanel.<init>(DeviceEditorPanel.java:228)
	at com.hifiremote.jp1.DeviceUpgradeEditor.<init>(DeviceUpgradeEditor.java:138)
	at com.hifiremote.jp1.DeviceUpgradePanel.createRowObjectA(DeviceUpgradePanel.java:210)
	at com.hifiremote.jp1.DeviceUpgradePanel.editRowObject(DeviceUpgradePanel.java:280)
	at com.hifiremote.jp1.GeneralPanel.editUpgradeInRow(GeneralPanel.java:614)
	at com.hifiremote.jp1.GeneralPanel.actionPerformed(GeneralPanel.java:480)
	at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972)
	at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2314)
	at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:407)
	at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
	at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)
	at java.desktop/java.awt.Component.processMouseEvent(Component.java:6576)
	at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3404)
	at java.desktop/java.awt.Component.processEvent(Component.java:6341)
	at java.desktop/java.awt.Container.processEvent(Container.java:2260)
	at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4958)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2318)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4790)
	at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4917)
	at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4560)
	at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4501)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2304)
	at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2671)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4790)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:725)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:702)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Protocol.setDeviceParms(), protocol="NEC1" (00 5A), parms.length=0 and devParms.length=5
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0
	at com.hifiremote.jp1.translate.NEC005ATranslator.in(NEC005ATranslator.java:28)
	at com.hifiremote.jp1.Protocol.getFixedData(Protocol.java:1486)
	at com.hifiremote.jp1.SetupPanel.update(SetupPanel.java:443)
	at com.hifiremote.jp1.DeviceEditorPanel.refresh(DeviceEditorPanel.java:519)
	at com.hifiremote.jp1.DeviceEditorPanel.<init>(DeviceEditorPanel.java:228)
	at com.hifiremote.jp1.DeviceUpgradeEditor.<init>(DeviceUpgradeEditor.java:138)
	at com.hifiremote.jp1.DeviceUpgradePanel.createRowObjectA(DeviceUpgradePanel.java:210)
	at com.hifiremote.jp1.DeviceUpgradePanel.editRowObject(DeviceUpgradePanel.java:280)
	at com.hifiremote.jp1.GeneralPanel.editUpgradeInRow(GeneralPanel.java:614)
	at com.hifiremote.jp1.GeneralPanel.actionPerformed(GeneralPanel.java:480)
	at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972)
	at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2314)
	at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:407)
	at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
	at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)
	at java.desktop/java.awt.Component.processMouseEvent(Component.java:6576)
	at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3404)
	at java.desktop/java.awt.Component.processEvent(Component.java:6341)
	at java.desktop/java.awt.Container.processEvent(Container.java:2260)
	at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4958)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2318)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4790)
	at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4917)
	at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4560)
	at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4501)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2304)
	at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2671)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4790)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:725)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:702)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Tested both with Java 21 and Java 25.

I believe that this is relevant.
Radar73
Posts: 1
Joined: Fri Jul 02, 2021 8:53 am

Re: RMIR v3.2 Major new release!

Post by Radar73 »

Just tried RMIR.v3.2.16 with jdk-21 and my 7880 bluetooth fails to connect. It finds the remote fine, but after hitting the Connect button the bottom of the window shows Connecting 5% ... then flashes back to Move/Macro: N/A Upgrade: N/A Leanred: N/A. Subsequent tries instantly fail with a quick flash across the bottom of the window. Excerpt from rmaster.err below if it helps.

Code: Select all

Interface Name = JP2BT
Port Name = Windows WCL
Testing interface: JP1.X Serial
Testing interface: CommHID
Testing interface: JP2BT
Interface matched.  Trying to open BLE interface
Connected BLE interface on port Windows WCL
BLE stack is Microsoft
Port Name = Windows WCL
Opened on Port Windows WCL
Opened interface type 601
Progress updater set
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException: Cannot read field "advanced" because "com.hifiremote.jp1.RMIRSetup.access$52(com.hifiremote.jp1.RMIRSetup).bg" is null
	at com.hifiremote.jp1.RMIRSetup$ConnectTask.done(RMIRSetup.java:5160)
	at java.desktop/javax.swing.SwingWorker$4.run(SwingWorker.java:749)
	at java.desktop/javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.run(SwingWorker.java:847)
	at java.desktop/sun.swing.AccumulativeRunnable.run(AccumulativeRunnable.java:112)
	at java.desktop/javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.actionPerformed(SwingWorker.java:857)
	at java.desktop/javax.swing.Timer.fireActionPerformed(Timer.java:311)
	at java.desktop/javax.swing.Timer$DoPostEvent.run(Timer.java:243)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
RMIRSetup.windowClosing() entered
Unsubscription failed
Already disconnected
Post Reply