RomRaider Logo

RomRaider

Open Source ECU Tools
 FAQ •  Register •  Login 

RomRaider

Documentation

Community

Developers

It is currently Tue Dec 23, 2025 11:10 am

All times are UTC - 5 hours [ DST ]





Post new topic Reply to topic  [ 57 posts ]  Go to page Previous  1, 2, 3, 4  Next
Author Message
 Post subject: Re: Scotthew's Dev Ramblings
PostPosted: Wed Sep 25, 2013 2:48 am 
Offline
Newbie

Joined: Sun Apr 01, 2012 1:28 pm
Posts: 59
SaltyRaider wrote:
dschultz wrote:
Are you sure running across remote desktop is valid, not many users will be editing that way.
Anyway, I think it's a Java problem, running with JRE 1.7.0_25 I get this error before the JVM crash.

If I switch back to JRE version 1.6.0_45 3D displays fine.

Agreed this feels like a java and/or 3rd party library issue. I have tried updating the J3d libraries but it still crashes. I do get a very nice stack trace and a pretty error message but it still crashes.

Looking at this further My money would be on the graph3dj libarary. It looks like this was developed back in 2006 and has not had any updates since. I bet this was created using Java 1.6. It might be possible to update this project but my guess is that there is a better 3d graphing library out there.

See: https://code.google.com/p/graph3dj/sour ... vn%2Ftrunk

I can look into Jzy3d.
http://jzy3d.org/


Top
 Profile  
 
 Post subject: Re: Scotthew's Dev Ramblings
PostPosted: Wed Sep 25, 2013 9:20 am 
Offline
RomRaider Developer

Joined: Wed May 20, 2009 9:49 pm
Posts: 7314
Location: Canada eh!
SaltyRaider wrote:
dschultz wrote:
I found that this only happens when the Y axis name attribute is null for a 3D table definition. If the X axis is null there's no error. 2D tables seem to load fine if the axis name is null.

I will add better logging. This error can come from any part of the code so logging the stack trace will be useful for debugging purposes. What would you expect the behavior to be? Should this load the table if the name is null or empty? There is no reason we cant go with a default value of empty string, "unknown", or something like that. For now i will default this to unknown and log the error when we get in any of these error conditions.

Also could you post the Rom and definition file that is giving you this error? I would like to debug through this.

You can simulate this for any ROM just delete the value and leave the the quotes for the axis name attribute, i.e.: name=""

Supplying a "unknown" should be a good filler. I only found this as I had a table definition I copied from a ScoobyRom export where the name=""


Top
 Profile  
 
 Post subject: Re: Scotthew's Dev Ramblings
PostPosted: Wed Sep 25, 2013 9:25 am 
Offline
RomRaider Developer

Joined: Wed May 20, 2009 9:49 pm
Posts: 7314
Location: Canada eh!
SaltyRaider wrote:
SaltyRaider wrote:
dschultz wrote:
Are you sure running across remote desktop is valid, not many users will be editing that way.
Anyway, I think it's a Java problem, running with JRE 1.7.0_25 I get this error before the JVM crash.

If I switch back to JRE version 1.6.0_45 3D displays fine.

Agreed this feels like a java and/or 3rd party library issue. I have tried updating the J3d libraries but it still crashes. I do get a very nice stack trace and a pretty error message but it still crashes.

Looking at this further My money would be on the graph3dj libarary. It looks like this was developed back in 2006 and has not had any updates since. I bet this was created using Java 1.6. It might be possible to update this project but my guess is that there is a better 3d graphing library out there.

See: https://code.google.com/p/graph3dj/sour ... vn%2Ftrunk
I was playing with it last night and I could not get it to crash with JRE 1.7 when using the TestExecGraph3d class in the project or the distribution batch start up file.

SaltyRaider wrote:
I can look into Jzy3d.
http://jzy3d.org/
It seems like a good alternative for viewing. What we loose are the features of the current library where you can edit the 3D graph directly and smooth it which are then reflected back into the original table. But if it's broken no one can use those features anyway....


Top
 Profile  
 
 Post subject: Re: Scotthew's Dev Ramblings
PostPosted: Wed Sep 25, 2013 11:23 pm 
Offline
RomRaider Developer

Joined: Wed May 20, 2009 9:49 pm
Posts: 7314
Location: Canada eh!
SaltyRaider wrote:
dschultz wrote:
Are you sure running across remote desktop is valid, not many users will be editing that way.
Anyway, I think it's a Java problem, running with JRE 1.7.0_25 I get this error before the JVM crash.

If I switch back to JRE version 1.6.0_45 3D displays fine.

Agreed this feels like a java and/or 3rd party library issue. I have tried updating the J3d libraries but it still crashes. I do get a very nice stack trace and a pretty error message but it still crashes.

Did you get something like this?
I see the same thing with either JRE 1.6 or 1.7
Code:
3D [dev] 1.6.0-pre8-daily-experimental daily

Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: javax/media/nativewindow/CapabilitiesImmutable
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Unknown Source)
        at javax.media.j3d.Pipeline$PipelineCreator.run(Pipeline.java:73)
        at javax.media.j3d.Pipeline$PipelineCreator.run(Pipeline.java:61)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.media.j3d.Pipeline.createPipeline(Pipeline.java:90)
        at javax.media.j3d.MasterControl.loadLibraries(MasterControl.java:832)
        at javax.media.j3d.VirtualUniverse.<clinit>(VirtualUniverse.java:274)
        at javax.media.j3d.GroupRetained.<init>(GroupRetained.java:155)
        at javax.media.j3d.TransformGroupRetained.<init>(TransformGroupRetained.java:116)
        at javax.media.j3d.TransformGroup.createRetained(TransformGroup.java:114)
        at javax.media.j3d.SceneGraphObject.<init>(SceneGraphObject.java:114)
        at javax.media.j3d.Node.<init>(Node.java:172)
        at javax.media.j3d.Group.<init>(Group.java:547)
        at javax.media.j3d.TransformGroup.<init>(TransformGroup.java:87)
        at com.ecm.graphics.graph3dTG.Graph3dTransformGroup.<init>(Graph3dTransformGroup.java:65)
        at com.ecm.graphics.Graph3dJPanel.<init>(Graph3dJPanel.java:44)
        at com.ecm.graphics.Graph3dFrameManager.<clinit>(Graph3dFrameManager.java:17)
        at com.romraider.swing.TableToolBar.enable3d(TableToolBar.java:639)
        at com.romraider.swing.TableToolBar.mouseClicked(TableToolBar.java:474)
        at java.awt.AWTEventMulticaster.mouseClicked(Unknown Source)
        at java.awt.Component.processMouseEvent(Unknown Source)
        at javax.swing.JComponent.processMouseEvent(Unknown Source)
        at java.awt.Component.processEvent(Unknown Source)
        at java.awt.Container.processEvent(Unknown Source)
        at java.awt.Component.dispatchEventImpl(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
        at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
        at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Window.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
        at java.awt.EventQueue.access$200(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$1.doIntersectionPrivilege(Unknown Source)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
        at java.awt.EventQueue$4.run(Unknown Source)
        at java.awt.EventQueue$4.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.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.ClassNotFoundException: javax.media.nativewindow.CapabilitiesImmutable
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        ... 52 more

Which seems to occur immediately after returning from java.awt.EventDispatchThread.pumpEventsForFilter.
Attachment:
debug.png


Then if you click the button again you get
Code:
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: Could not initialize class com.ecm.graphics.Graph3dFrameManager
        at com.romraider.swing.TableToolBar.enable3d(TableToolBar.java:639)
        at com.romraider.swing.TableToolBar.mouseClicked(TableToolBar.java:474)
        at java.awt.AWTEventMulticaster.mouseClicked(Unknown Source)
        at java.awt.Component.processMouseEvent(Unknown Source)
        at javax.swing.JComponent.processMouseEvent(Unknown Source)
        at java.awt.Component.processEvent(Unknown Source)
        at java.awt.Container.processEvent(Unknown Source)
        at java.awt.Component.dispatchEventImpl(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
        at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
        at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Window.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
        at java.awt.EventQueue.access$200(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$1.doIntersectionPrivilege(Unknown Source)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
        at java.awt.EventQueue$4.run(Unknown Source)
        at java.awt.EventQueue$4.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.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)


If I use the older 1.5.2 of Java3D the I get this with JRE 1.7.
Code:
Java 3D ERROR : Canvas3D_createNewContext: Failed in SetPixelFormat - The pixel format is invalid.

DefaultRenderingErrorListener.errorOccurred:
CONTEXT_CREATION_ERROR: Renderer: Error creating Canvas3D graphics context
graphicsDevice = Win32GraphicsDevice[screen=0]
canvas = javax.media.j3d.Canvas3D[canvas0,0,0,392x366]

No error when using JRE 1.6


You do not have the required permissions to view the files attached to this post.


Top
 Profile  
 
 Post subject: Re: Scotthew's Dev Ramblings
PostPosted: Tue Dec 31, 2013 2:06 pm 
Offline
RomRaider Developer

Joined: Wed May 20, 2009 9:49 pm
Posts: 7314
Location: Canada eh!
I briefly looked at your commit.

Were you planning to add support for multiple scaling to be applied to column/row data too?
It doesn't make sense to scale the data in metric units while the row/column values are still displayed in standard format.


Top
 Profile  
 
 Post subject: Re: Scotthew's Dev Ramblings
PostPosted: Tue Dec 31, 2013 7:02 pm 
Offline
Newbie

Joined: Sun Apr 01, 2012 1:28 pm
Posts: 59
dschultz wrote:
Were you planning to add support for multiple scaling to be applied to column/row data too?
It doesn't make sense to scale the data in metric units while the row/column values are still displayed in standard format.

Most of the headers scale independently from the table data. It would be easy to scale the headers if the table data has been changed.

To scale a header just click on the header column or row and select the desired scale.

In my case I often go with PSI for atmospheric and bar for boost. This is because my gauge reads in bars. In this case the header is standard and the table data is metric.


Top
 Profile  
 
 Post subject: Re: Scotthew's Dev Ramblings
PostPosted: Tue Dec 31, 2013 7:17 pm 
Offline
RomRaider Developer

Joined: Wed May 20, 2009 9:49 pm
Posts: 7314
Location: Canada eh!
I didn't realize you actually had to click on each axis/data to apply a change of scaling to them. Maybe an option to lock all the scaling together if applicable so when selecting a scaling it applies that to the entire table view.

Do you think your editor updates are ready for release? I think I could get a new release out this week.


Top
 Profile  
 
 Post subject: Re: Scotthew's Dev Ramblings
PostPosted: Sun Jan 05, 2014 3:49 am 
Offline
Newbie

Joined: Sun Apr 01, 2012 1:28 pm
Posts: 59
Take a look at revision 8547a567ae59e8ea40c6c6c18a9a1c089f7142ca. It should have updates necessary for live data overlay.


Top
 Profile  
 
 Post subject: Re: Scotthew's Dev Ramblings
PostPosted: Sat Jan 11, 2014 5:55 pm 
Offline
RomRaider Developer

Joined: Wed May 20, 2009 9:49 pm
Posts: 7314
Location: Canada eh!
re: revision 8547a567ae59e8ea40c6c6c18a9a1c089f7142ca

I see the new Settings option to switch the entire table when changing units. If I go from Default to Raw everything changes. But when I go from Raw back to default only the Data changes but not that axis for tables where there is multiple axis conversions. The axis remains in raw mode. Try it on Engine Load Compensation (MP) or Timing Compensation (MRP) or Initial/Max Wastegate Duty Comp IAT. Shouldn't the axis go back to the user defined Default selection from the Settings page?


The overlay doesn't seem to work consistently, if you open a table, close it, then open it again the overlay will not appear. Overlay only seems to work the very first time you open a table that has not been open before.


Top
 Profile  
 
 Post subject: Re: Scotthew's Dev Ramblings
PostPosted: Tue Jan 28, 2014 7:46 pm 
Offline
Newbie

Joined: Sun Apr 01, 2012 1:28 pm
Posts: 59
Please see my latest commit. 17a96e6cb8816370717e5fed50f2c2b07766224e.

The overlay seems to be weird when you overlay two tables that use the same logging parameters. I was going to test this on my car to see if i can reproduce.


Top
 Profile  
 
 Post subject: Re: Scotthew's Dev Ramblings
PostPosted: Thu Feb 27, 2014 12:12 am 
Offline
RomRaider Developer

Joined: Wed May 20, 2009 9:49 pm
Posts: 7314
Location: Canada eh!
It seems now the overlay doesn't work on 3D tables, only 2D.

With the multi-scales, if I look at Base Timing and switch to default scale the load x-axis number format seems to switch and display only integer values or a float formatted with no decimal. Shouldn't the default scale detect the data storage type and provide an appropriate display format?


Top
 Profile  
 
 Post subject: Re: Scotthew's Dev Ramblings
PostPosted: Sat May 03, 2014 4:47 pm 
Offline
RomRaider Developer

Joined: Wed May 20, 2009 9:49 pm
Posts: 7314
Location: Canada eh!
I tool a look at the overlay problem and I have found two issues.
Issue - 1) in the 'TableUpdateHandler' class the 'handleDataUpdate' method was only updating the first table in the list of tables as the Interator was not processing the entire list. Here is the change I made to fix that.
@ line 56 Removed:
Code:
String formattedValue = loggerData.getSelectedConvertor().format(response.getDataValue(loggerData));
ListIterator<Table> item = tables.listIterator();
if(item.hasNext()) {
    item.next().highlightLiveData(formattedValue);
}
Changed to:
Code:
String formattedValue = loggerData.getSelectedConvertor().format(response.getDataValue(loggerData));
for(ListIterator<Table> item = tables.listIterator(); item.hasNext();) {
     item.next().highlightLiveData(formattedValue);
}


Issue - 2) Now that the Iterator works over the entire list of tables with a specific "logparam" id, I'm seeing that not all of the tables (or table axis) with the same logparam id are being registered with the handler. What seems to be happening in the 'registerTable' method is, it thinks two similar axis (Table1D) are actually equal. In the line where the method checks to see if the 'tables' List contains a particular 'table' the 'Table1D.equals' method is used and it is returning True as it does not take into account that the table is a different Instance of the Table1D class. I commented out the 'if contains' as all tables are unique with respect to this function and therefore should be evaluated and updated if overlay is enabled.


Code:
    public void registerTable(Table table) {
        String logParam = table.getLogParam();
        if (!isNullOrEmpty(logParam)) {
            if (!tableMap.containsKey(logParam)) {
                tableMap.put(logParam, new ArrayList<Table>());
            }
            List<Table> tables = tableMap.get(logParam);
//            if (!tables.contains(table)) {
                tables.add(table);
//            }
        }
        registerAxes(table);
    }


If you are okay with these changes can you update your branch and then we can get your contributions published for all to try in a new RR release.
Let me know.


Top
 Profile  
 
 Post subject: Re: Scotthew's Dev Ramblings
PostPosted: Sun May 04, 2014 1:05 pm 
Offline
Newbie

Joined: Sun Apr 01, 2012 1:28 pm
Posts: 59
I will give apply the changes and run through a test today. Thank you for taking a look at this. I have been super busy lately.


Top
 Profile  
 
 Post subject: Re: Scotthew's Dev Ramblings
PostPosted: Wed May 07, 2014 2:04 am 
Offline
Newbie

Joined: Sun Apr 01, 2012 1:28 pm
Posts: 59
I have merged in the changes from vimsh's fork

see commit c0a26c93dbdb1789514e32c52e85fb3c55a6faa

This still need to be extended for axis interpolation.


Top
 Profile  
 
 Post subject: Re: Scotthew's Dev Ramblings
PostPosted: Wed May 07, 2014 3:46 pm 
Offline
Newbie

Joined: Sun Apr 01, 2012 1:28 pm
Posts: 59
Today I found some percentage comparison weirdness. I have an update commit 1127b788794ef678130e92546e1125085a9222e2

Before:
Attachment:
BeforePercentFix.JPG


After:
Attachment:
AfterPercentFix.JPG



Notice that it is now showing a 6.4% decrease instead of a -100.6%.

Let me know what you think


You do not have the required permissions to view the files attached to this post.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 57 posts ]  Go to page Previous  1, 2, 3, 4  Next

All times are UTC - 5 hours [ DST ]


Who is online

Users browsing this forum: No registered users and 4 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Style based on FI Subsilver by phpBBservice.nl