262403 One For All URC-7935 Streamer Remote

If you have a new remote that isn't recognized by RMIR, post the details here so we can help create a new RDF for it. Or, if there is an issue with an existing RDF or map, this is the place.
NOAMattD
Posts: 24
Joined: Tue Jul 20, 2010 8:35 pm

Post by NOAMattD »

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 ... e_id=25578

Here is the error:

Code: Select all

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

Post by mathdon »

Sorry, I will try to sort this later today.
Graham
beans00
Posts: 8
Joined: Sat Apr 13, 2019 10:37 pm
Location: California

Post by beans00 »

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: Select all

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)
mathdon
Expert
Posts: 4726
Joined: Tue Jul 22, 2008 8:53 am
Location: Cambridge, UK

Post by mathdon »

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
beans00
Posts: 8
Joined: Sat Apr 13, 2019 10:37 pm
Location: California

Post by beans00 »

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?
mathdon
Expert
Posts: 4726
Joined: Tue Jul 22, 2008 8:53 am
Location: Cambridge, UK

Post by mathdon »

@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
beans00
Posts: 8
Joined: Sat Apr 13, 2019 10:37 pm
Location: California

Post by beans00 »

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.
mathdon
Expert
Posts: 4726
Joined: Tue Jul 22, 2008 8:53 am
Location: Cambridge, UK

Post by mathdon »

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
mdavej
Expert
Posts: 4631
Joined: Wed Oct 08, 2003 7:08 am

Post by mdavej »

1. Perhaps no vol functions are assigned to your TV vol buttons in your device upgrade.
beans00
Posts: 8
Joined: Sat Apr 13, 2019 10:37 pm
Location: California

Post by beans00 »

Hi mdavej,

You're right, I removed the TV volume functions in one of my experiments.
NOAMattD
Posts: 24
Joined: Tue Jul 20, 2010 8:35 pm

Post by NOAMattD »

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.
mathdon
Expert
Posts: 4726
Joined: Tue Jul 22, 2008 8:53 am
Location: Cambridge, UK

Post by mathdon »

I have just found the following info in the manual for this remote on the UEI website:
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
The Robman
Site Owner
Posts: 21886
Joined: Fri Aug 01, 2003 9:37 am
Location: Chicago, IL
Contact:

Post by The Robman »

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!
NOAMattD
Posts: 24
Joined: Tue Jul 20, 2010 8:35 pm

Post by NOAMattD »

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.
mathdon
Expert
Posts: 4726
Joined: Tue Jul 22, 2008 8:53 am
Location: Cambridge, UK

Post by mathdon »

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
Post Reply