View previous topic :: View next topic |
Author |
Message |
NOAMattD
Joined: 20 Jul 2010 Posts: 23
|
Posted: Thu May 09, 2019 10:32 pm Post subject: |
|
|
Graham,
I'm getting a Java error when trying to download from the remote. I tried factory resetting the remote just to be certain and it still happened. I'm using the updated protocols section you pasted in the RDF.
I've put up the raw download in the diagnosis area:
http://www.hifi-remote.com/forums/dload.php?action=file&file_id=25578
Here is the error:
Code: | Starting normal download
Interface Name = JP1.X Serial
Port Name = COM5
Testing interface: JP1.X Serial
Interface matched. Trying to open remote
Port Name = COM5
Opened on Port COM5
Interface opened successfully
Base address = $F600
Searching for RDF
Final signature sought = 262403
Remote identified as: URC-7935 OFA Streamer
java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.lang.String.charAt(Unknown Source)
at com.hifiremote.jp1.RDFReader.parseNumber(RDFReader.java:75)
at com.hifiremote.jp1.Remote.parseButtonMaps(Remote.java:3016)
at com.hifiremote.jp1.Remote.load(Remote.java:248)
at com.hifiremote.jp1.RemoteMaster$DownloadTask.doInBackground(RemoteMaster.java:805)
at com.hifiremote.jp1.RemoteMaster$DownloadTask.doInBackground(RemoteMaster.java:1)
at javax.swing.SwingWorker$1.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at javax.swing.SwingWorker.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Number of bytes read = $A00
Ending normal download
Data parsing started
Download error: Index: 0, Size: 0
java.util.concurrent.ExecutionException: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.concurrent.FutureTask.report(Unknown Source)
at java.util.concurrent.FutureTask.get(Unknown Source)
at javax.swing.SwingWorker.get(Unknown Source)
at com.hifiremote.jp1.RemoteMaster$DownloadTask.done(RemoteMaster.java:843)
at javax.swing.SwingWorker$5.run(Unknown Source)
at javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.run(Unknown Source)
at sun.swing.AccumulativeRunnable.run(Unknown Source)
at javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.actionPerformed(Unknown Source)
at javax.swing.Timer.fireActionPerformed(Unknown Source)
at javax.swing.Timer$DoPostEvent.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.rangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at com.hifiremote.jp1.DeviceUpgrade.setRemote(DeviceUpgrade.java:510)
at com.hifiremote.jp1.DeviceUpgrade.setRemoteConfig(DeviceUpgrade.java:4053)
at com.hifiremote.jp1.RemoteConfiguration.loadSegments(RemoteConfiguration.java:2271)
at com.hifiremote.jp1.RemoteConfiguration.importIR(RemoteConfiguration.java:3942)
at com.hifiremote.jp1.RemoteConfiguration.parseData(RemoteConfiguration.java:4546)
at com.hifiremote.jp1.RemoteMaster$DownloadTask.doInBackground(RemoteMaster.java:827)
at com.hifiremote.jp1.RemoteMaster$DownloadTask.doInBackground(RemoteMaster.java:1)
at javax.swing.SwingWorker$1.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at javax.swing.SwingWorker.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
RemoteMaster.windowClosing() entered
|
|
|
Back to top |
|
|
mathdon Expert
Joined: 22 Jul 2008 Posts: 4523 Location: Cambridge, UK |
Posted: Fri May 10, 2019 5:29 am Post subject: |
|
|
Sorry, I will try to sort this later today. _________________ Graham |
|
Back to top |
|
|
beans00
Joined: 13 Apr 2019 Posts: 8 Location: California |
Posted: Sat May 11, 2019 12:16 am Post subject: |
|
|
Hi Graham,
I'm also getting an error when I attempt to download. I'm on linux running openjdk 11.0.2.
EDIT: I can download if I'm on the Raw Data tab. I can save the data in an .rmir file & read it back in. The problem seems to be with the General tab.
Code: |
Checking protocol "Roku Official" (02 1A)
Translator.in() index=0 missing parameter value
Imported fixedData is 20 DF
Imported device parms are: 4 251
Calculated fixedData is 20 DF
It's a match!
Using "Roku Official" (02 1A)
Translator.in() index=0 missing parameter value
Setup code=Cable/6220
Setting devParms[ 0 ](Device) to null
Setting devParms[ 1 ](Sub Device) to null
DeviceUpgrade.importRawUpgrade
hexCode=00 5A 00 7E FE FE 79 20 9E 5F CF 4F 8F BD 3D 0F 27 D7 BD 3D 97 57 E7 F
7 17 81 F1 41 FB 5B EB 9B 0F 27 BA 3A DA
newRemote=URC-7935 OFA Streamer
newDeviceTypeAliasName=Cable
pid=00 5A
pCode=null
fixedDataLength=3 and cmdLength=1
Checking protocol "NEC1" (00 5A)
Imported fixedData is 20 9E 5F
Imported device parms are: 134 5 0 0 0
Calculated fixedData is 20 9E 5F
It's a match!
Checking protocol "NEC2" (00 5A)
Imported fixedData is 20 9E 5F
Imported device parms are: null null 0
Calculated fixedData is 01 FF 00
Checking protocol "NECx1" (00 5A)
Imported fixedData is 20 9E 5F
Imported device parms are: null null
Calculated fixedData is 10 FF 00
Checking protocol "NECx2" (00 5A)
Imported fixedData is 20 9E 5F
Imported device parms are: null null
Calculated fixedData is 11 FF 00
Using "NEC1" (00 5A)
Decoding settings
Decoding upgrades
Decoding advanced codes
Data parsing ended
0000: CE != C2
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: class java.
lang.Integer cannot be cast to class java.awt.Color (java.lang.Integer is in mod
ule java.base of loader 'bootstrap'; java.awt.Color is in module java.desktop of
loader 'bootstrap')
at com.hifiremote.jp1.RMColorRenderer.getTableCellRendererComponent(RMCo
lorRenderer.java:93)
at java.desktop/javax.swing.JTable.prepareRenderer(JTable.java:5738)
at com.hifiremote.jp1.JTableX.prepareRenderer(JTableX.java:389)
at java.desktop/javax.swing.plaf.basic.BasicTableUI.paintCell(BasicTable
UI.java:2185)
at java.desktop/javax.swing.plaf.basic.BasicTableUI.paintCells(BasicTabl
eUI.java:2087)
at java.desktop/javax.swing.plaf.basic.BasicTableUI.paint(BasicTableUI.j
ava:1883)
at java.desktop/javax.swing.plaf.ComponentUI.update(ComponentUI.java:161
)
at java.desktop/javax.swing.JComponent.paintComponent(JComponent.java:79
7)
at java.desktop/javax.swing.JComponent.paint(JComponent.java:1074)
at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907
)
at java.desktop/javax.swing.JComponent.paint(JComponent.java:1083)
at java.desktop/javax.swing.JViewport.paint(JViewport.java:737)
at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907
)
at java.desktop/javax.swing.JComponent.paint(JComponent.java:1083)
at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907
)
at java.desktop/javax.swing.JComponent.paint(JComponent.java:1083)
at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907
)
at java.desktop/javax.swing.JSplitPane.paintChildren(JSplitPane.java:102
4)
at java.desktop/javax.swing.JComponent.paint(JComponent.java:1083)
at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907
)
at java.desktop/javax.swing.JSplitPane.paintChildren(JSplitPane.java:102
4)
at java.desktop/javax.swing.JComponent.paint(JComponent.java:1083)
at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907
)
at java.desktop/javax.swing.JComponent.paint(JComponent.java:1083)
at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907
)
at java.desktop/javax.swing.JComponent.paint(JComponent.java:1083)
at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907
)
at java.desktop/javax.swing.JComponent.paint(JComponent.java:1083)
at java.desktop/javax.swing.JComponent.paintToOffscreen(JComponent.java:
5255)
at java.desktop/javax.swing.BufferStrategyPaintManager.paint(BufferStrat
egyPaintManager.java:246)
at java.desktop/javax.swing.RepaintManager.paint(RepaintManager.java:132
3)
at java.desktop/javax.swing.JComponent._paintImmediately(JComponent.java
:5203)
at java.desktop/javax.swing.JComponent.paintImmediately(JComponent.java:
5013)
at java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:865
)
at java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:848
)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doInt
ersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintMana
ger.java:848)
at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintMana
ger.java:823)
at java.desktop/javax.swing.RepaintManager.prePaintDirtyRegions(RepaintM
anager.java:772)
at java.desktop/javax.swing.RepaintManager$ProcessingRunnable.run(Repain
tManager.java:1890)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.
java:313)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:77
0)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doInt
ersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Even
tDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDi
spatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Even
tDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThr
ead.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThr
ead.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.jav
a:90)
|
|
|
Back to top |
|
|
mathdon Expert
Joined: 22 Jul 2008 Posts: 4523 Location: Cambridge, UK |
Posted: Sat May 11, 2019 4:47 am Post subject: |
|
|
I have now uploaded RMIR v2.07 build 10 to the RMIR Development folder on SourceForge. This should fix the bugs you have both experienced. Please report any further problems here. _________________ Graham |
|
Back to top |
|
|
beans00
Joined: 13 Apr 2019 Posts: 8 Location: California |
Posted: Sat May 11, 2019 2:05 pm Post subject: |
|
|
Hi Graham,
Thanks, it is working now,
Does the remote enforce the use of the Audio device volume keys? Or can I assign the TV Volume codes to the remote with an audio device existing?
Which device does the phantom buttons come from in RMIR?
How do I use discretes, say for TV & AUDIO Power, and HDMI selection on my receiver? I need to have those assigned to a button before I can use them, correct? |
|
Back to top |
|
|
mathdon Expert
Joined: 22 Jul 2008 Posts: 4523 Location: Cambridge, UK |
Posted: Sat May 11, 2019 4:46 pm Post subject: |
|
|
@beans00
If you have an audio device set up, then the remote does enforce its use with the volume keys. You will see that Volume Punchthru is set to Audio for each device on the General tab. But with RMIR you can change the punchthru settings to TV if you wish.
The phantom buttons are all part of the TV device. The setup codes built in to the remote already support HDMI discretes for the TV, but not TV or Audio power. To use the HDMI discretes you can assign one to the Input button, as I explained, or you can put them into a macro on any key. To use other discretes you would need to create a device upgrade that put the appropriate codes on keys intended for other purposes. _________________ Graham |
|
Back to top |
|
|
beans00
Joined: 13 Apr 2019 Posts: 8 Location: California |
Posted: Sun May 12, 2019 5:06 pm Post subject: |
|
|
Hi Graham,
I've been experimenting with RMIR & the 7935. I am having a few issues.
1) TV punchthru doesn't work for me. Only when I set everything to Audio punchthru are codes sent.
2) There is no way to use the phantom keys in a Macro assigned to the Streamer's App shortcut keys. If it were possible to use the phantom keys with the Streamer rather than the TV, it would be much better.
3) I tried to assign the Receiver's HDMI Input to the TV's Input button using an external function, but that didn't work. No codes were sent.
It would be useful to be able to change devices in a macro.
I'm testing the output of the remote with an IR Widget. |
|
Back to top |
|
|
mathdon Expert
Joined: 22 Jul 2008 Posts: 4523 Location: Cambridge, UK |
Posted: Mon May 13, 2019 11:15 am Post subject: |
|
|
1. TV punchthru works for me. If I have an Audio device set, then with punchthru = Audio the volume buttons send Audio signals, with punchthru = TV they send TV signals.
2. You seem to be right. You can have a discrete HDMI button in a macro on the Streamer App shortcut keys, but only by setting the Input button to be that HDMI discrete and then putting Input in the macro.
3. Unfortunately the HDMI codes belong to the TV, not the Audio device. The Audio device seems designed around a Soundbar, not an AV Receiver.
You need to be aware that RMIR should be able to set up anything you can do on the remote, and other things as well, but there is no guarantee that those other things will work. I do not test all possibilities, it is not the purpose of RMIR to be restricted to things known to work. Features in RMIR that are not on the remote are there for users to experiment with. I will be doing more investigation and experiment with this remote myself, but it is a very simple remote and you may find you cannot get it to do what you want. _________________ Graham |
|
Back to top |
|
|
mdavej Expert
Joined: 08 Oct 2003 Posts: 4502
|
Posted: Mon May 13, 2019 4:48 pm Post subject: |
|
|
1. Perhaps no vol functions are assigned to your TV vol buttons in your device upgrade. |
|
Back to top |
|
|
beans00
Joined: 13 Apr 2019 Posts: 8 Location: California |
Posted: Mon May 13, 2019 10:39 pm Post subject: |
|
|
Hi mdavej,
You're right, I removed the TV volume functions in one of my experiments. |
|
Back to top |
|
|
NOAMattD
Joined: 20 Jul 2010 Posts: 23
|
Posted: Tue May 14, 2019 10:41 pm Post subject: |
|
|
I've had a little time to play with the remote in RMIR as well.
Everything seems to be working as expected although as you say in your notes, the internal algorithm seems to limit a lot of what you can do with it. Nonetheless it is helpful for making setup easier and hopefully you had fun working on it.
The color selection is a nice touch too. Major respect for your algorithm-deciphering skills as far as the setup codes go as well!
Hopefully over the weekend I will have time to experiment a little more. On the whole I really like the remote for my setup, so I'm glad it's supported in RMIR. |
|
Back to top |
|
|
mathdon Expert
Joined: 22 Jul 2008 Posts: 4523 Location: Cambridge, UK |
Posted: Thu May 16, 2019 7:58 am Post subject: |
|
|
I have just found the following info in the manual for this remote on the UEI website:
Quote: | Hold down TV Power and the A key until the ring blinks twice in yellow. From now the remote sends commands to your TV when using the Menu directional keys, the Back key, the Home key and the Rewind, Play and Fast Forward keys. |
This seems to be called CEC mode. To turn this mode off, repeat the process and the ring blinks four times in green. I think you may both find this useful.
Note: The "A" (Amazon) button is labeled "Vudu" on remotes sold at Walmart. _________________ Graham |
|
Back to top |
|
|
The Robman Site Owner
Joined: 01 Aug 2003 Posts: 21244 Location: Chicago, IL |
Posted: Thu May 16, 2019 9:43 am Post subject: |
|
|
Does that change something in the E2 area that we need to capture in the RDF? _________________ 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 |
|
|
NOAMattD
Joined: 20 Jul 2010 Posts: 23
|
Posted: Thu May 16, 2019 9:45 am Post subject: |
|
|
Great find! Note that even in this mode the keys will light up the ring as they would during normal operation.
I can also confirm that keymoves don't work so I'll have to stick with learns for those few extra functions I want to have on a key. |
|
Back to top |
|
|
mathdon Expert
Joined: 22 Jul 2008 Posts: 4523 Location: Cambridge, UK |
Posted: Thu May 16, 2019 12:17 pm Post subject: |
|
|
The Robman wrote: | Does that change something in the E2 area that we need to capture in the RDF? |
Yes, but it will also require a further change to RMIR. At present, if you set CEC mode then download and upload the remote, it will cancel CEC mode. So if you want this mode, you need to reset it after any upload from RMIR. I will fix this, but that is how it works at present. CEC mode also changes the LED color for TV signals from yellow to orange. I want to make RMIR reflect that, too. _________________ Graham |
|
Back to top |
|
|
|