Page 1 of 1
How to get textual values for enumerations.
Posted:
Sat Jul 11, 2015 5:27 am
by David Ferguson
I notice that when I use I2 Std on my M130 log files (just basic diagnostic logging), all of the state values (ie, the channels Engine Speed Limit State, Engine Speed Reference State, Ignition Timing State, Throttle Aim State) show textual values for the various states (Cycle Lock, Normal, etc ).
When I log data from the M130 in my C185 dash logger, and view that logged data in I2 Pro, I don't get any of the textual values for any of the M130 state channels.
Is is possible to decode enumerations into textual values with data logged on Dash/Logger? What do I need to do in I2 Pro 1.1 if I wanted to add this capability?
Re: How to get textual values for enumerations.
Posted:
Tue Jul 14, 2015 10:22 am
by adrian
Hi David,
What version of i2 Pro are you using? It seems to work fine for me with the current release (1.1.0.0896).
Adrian
Re: How to get textual values for enumerations.
Posted:
Tue Jul 14, 2015 2:07 pm
by David Ferguson
I'm using I2 Pro 1.1.0.896. Is there a particular workspace or channel file that is needed? I tried creating a new Engine Workspace with the New Workspace Wizard, but no difference when looking at the C185 logged data files. All the *_State channels appear to be simple integers. If I open the same C185 logged data file in I2 Std (v1.1.0.897, I see the same thing (integers not enums).
Here may be some clues:
When I use I2 (Std or Pro) Channel Editor..., I find the C185 Logged data State channels are of type "Real", but the M130 logged State channels are of type "Integer". In the C185 Dash Manager, Edit Channels... shows the channel "Knock State" (and others) to be of Data Type: Enum. (seems correct). Also shows up as Enum (but only numeric values) in the Monitor and Simulate windows of the Dash Manager.
My C185 is using version 5.80.4.0 (HEX 5.80A). Oops, just realized this is a beta and not the latest. I just updated to the more recent beta, and back to the released version (5.60X3). All my logged file have the state variables as type "Real", and no enumeration text is shown in the values box of I2 Pro, or I2 Standard.
Re: How to get textual values for enumerations.
Posted:
Tue Jul 14, 2015 4:59 pm
by adrian
After going back and having another look I realised I managed to select an ECU log file in i2 pro, hence why it worked fine.
I have since found out that the enumeration values are set in the M1 package and then put directly into the log file by the ECU. i2 doesn't actually look up any values it simply displays what it is in the log file.
The problem with this is that as only raw channel values are sent across on CAN the dash doesn't know what the enumerated values are so you just get integers. You either need the ECU to send out the information, which would probably use up a large amount of CAN bandwidth, or you need some way of telling i2 what the values are for a given ECU package.
I'll have a talk to the software guys about the feasibility of this and then add it as a feature request.
Re: How to get textual values for enumerations.
Posted:
Sun Jul 19, 2015 7:45 am
by David Ferguson
I think a math table feature for enumerated types might suffice. We could create tables like "Knock State Enumeration", which would take a Knock State and return the textual value for display. If this were pre-defined for the M1 values it would be awesome.
But right now, I can't create 2D table with textual values/units. So that's the feature I really need. For there to be a "text" quantity, and to allow the table to be populated with textual values.
Or perhaps the table should create an "enumeration" type, and the table contents are the mapping. Multiple channels (using the same enumerated type) could use the table, by specifying their units as "Enumerated Type XXXX".
Re: How to get textual values for enumerations.
Posted:
Fri Oct 07, 2016 1:58 pm
by MalcolmG
I just came across this post because I was wondering the exact same thing. Viewing M1 logs in i2 is great with the status channels showing enumerators rather than the integer equivalents, and for those of us who use dash loggers as our primary data logging device, it would be great to be able to get the same functionality for all log files.
I think that being able to manually fill out a table linking integer values to useful text values would be an acceptable way to do this, and would allow compatibility with other devices sending numerical status channels over CAN (rather than just M1 ECUs).
So Adrian, did you have any luck putting a feature request in?
Re: How to get textual values for enumerations.
Posted:
Mon Oct 10, 2016 10:05 am
by adrian
It is on this list of things to do but isn't prioritised very highly at the moment. I'll see if I can get it bumped up the list a bit.
Re: How to get textual values for enumerations.
Posted:
Thu Jun 07, 2018 3:56 pm
by MalcolmG
It looks like this has been added in the latest Beta, which is great! Now if only there was a DBC file we could import which had all the enumerated data types from the standard M1 data stream...