You cannot send me a private message using this forum. Use my email instead: vitaliy[@]scantool.net.
— Did you know that MP3Car sells OBD-2 interfaces? Get your OBDLink for only $84.99!
— Need to look up a diagnostic trouble code? Try the most up-to-date, free DTCsearch.com!
So how do I parse this:
At a guess it seems that lines prefixed with 'number:' could just have the "number:" prefix flensed, and catenate those lines together, then just treat them like really long lines. That being the case, what's the 00E line? It seems that no matter how I count, I can't make the number of numbers there add up to fourteen, unless a bunch of zeros at the end there are padding.Code:>03 00E 0: 43 06 01 00 02 00 1: 03 00 C1 00 82 00 43 2: 00 00 00 00 00 00 00 43 01 01 01 43 00 >
Gary (-;
OBDGPSLogger, for logging OBDII and/or GPS data
OBDSim, an OBDII/ELM327 software simulator
mp3car forums: obdgpslogger, obdsim
Well, except for the bit where I don't know what to do with the "00E" on a line on its own:
Original data:
obdgpslogger output:Code:>03 00E 0: 43 06 01 00 02 00 1: 03 00 C1 00 82 00 43 2: 00 00 00 00 00 00 00 43 01 01 01 43 00 >
Oh, great mp3car forum OBDII wizards; does that look correct?Code:chunky@chunkppc:~/src/obdgpslogger/build$ ../bin/obdgpslogger -ps /dev/ttyUSB* Opening serial port /dev/ttyUSB1, this can take a while Successfully connected to serial port. Will log obd data Your OBD Device claims to support PIDs: PID: [column] human_name 00: [unknown] PIDs supported 00-20 01: [unknown] Monitor status since DTCs cleared 02: [dtcfrzf] DTC that caused required freeze frame data storage 03: [fuelsys] Fuel system 1 and 2 status 04: [load_pct] Calculated LOAD Value 05: [temp] Engine Coolant Temperature 06: [shrtft13] Short Term Fuel Trim - Bank 1,3 07: [longft13] Long Term Fuel Trim - Bank 1,3 0C: [rpm] Engine RPM 0D: [vss] Vehicle Speed Sensor 0F: [iat] Intake Air Temperature 10: [maf] Air Flow Rate from Mass Air Flow Sensor 13: [o2sloc] Location of Oxygen Sensors 14: [o2s11] Bank 1 - Sensor 1/Bank 1 - Sensor 1 Oxygen Sensor Output Voltage / Short Term Fuel Trim 1C: [obdsup] OBD requirements to which vehicle is designed 1F: [runtm] Time Since Engine Start 20: [unknown] PIDs supported 21-40 21: [mil_dist] Distance Travelled While MIL is Activated 2F: [fli] Fuel Level Input 33: [baro] Barometric Pressure 40: [unknown] PIDs supported 41-60 42: [vpwr] Control module voltage 46: [aat] Ambient air temperature 6 trouble codes set [MIL is on] Couldn't parse line for 03 00: 00E Error: P0601 Error: P0002 Error: P0003 Error: P00C1 Error: P0082 Error: P0043 chunky@chunkppc:~/src/obdgpslogger/build$
Gary (-;
OBDGPSLogger, for logging OBDII and/or GPS data
OBDSim, an OBDII/ELM327 software simulator
mp3car forums: obdgpslogger, obdsim
Thats an elm327 isn't it
I think the response got a little garbled-how did you parse it? If i'm reading that right theres 3 1/2 responses there. Not sure bout the first half the 00E. The rest is 3 seperate responses each response is going to be the mode+0x40 so:
1) response to mode 3, 6 DTCs....P100,P200,P300,U100,B200,C300.
2) response to mode 3, 1 DTC......P101
3) response to mode 3, 0 DTCs
Your off by a digit
openMobile - An open source C# Front End (why choose openMobile?)
- Always Recruiting Developers -
Like what you see? Donations are always welcome
For now my code is ignoring multiple ECUs.
That's my OBDPro plugged into an OzenElektronik 1610
So... when parsing responses... the first number *after* the mode+0x40 is the number of ECUs set?
Better...Code:2F: [fli] Fuel Level Input 33: [baro] Barometric Pressure 40: [unknown] PIDs supported 41-60 42: [vpwr] Control module voltage 46: [aat] Ambient air temperature 6 trouble codes set [MIL is on] Couldn't parse line for 03 00: 00E Error: P0100 Error: P0200 Error: P0300 Error: U0100 Error: B0200 Error: C0300 chunky@chunkppc:~/src/obdgpslogger/build$
Gary (-;
OBDGPSLogger, for logging OBDII and/or GPS data
OBDSim, an OBDII/ELM327 software simulator
mp3car forums: obdgpslogger, obdsim
Yea which is elm327 based...elms tend to truncate null bytes...so in the future if you have an odd number in the response you can pad the beginning of the line with a 0.
Anyway, yea thats right now. Only thing is syntax (sorry) code+0x40 is the acknowledge, ECU->engine control unit (what your talking to), DTC->Diagnostic trouble code (the codes your getting back).
openMobile - An open source C# Front End (why choose openMobile?)
- Always Recruiting Developers -
Like what you see? Donations are always welcome
If you want to see what the raw can frame looks like you can turn on headers via ATH1, at that point I suspect you would see soemthing like
7E# 10 0E 43 06 01 00 02 00
7E# 21 03 00 C1 00 82 00 43
7E# 22 00 00 00 00 00 00 00
7E* 04 43 01 01 01
7E+ 02 43 00
Where the #,*,+ would be hex chars...
As justchat_1 mentioned showing you that three ECU's responded (7E#,7E* & 7E+)
The 00E is the length of the data in the 1st ECU's response and the 04 and 02 are the length of the responses in the other ECU's
Thanks
Paul
OBDPros scantool
I think there's only 1 ecu responding, however with 3 messages because the can-bus messages are restricted in length.
and I would say theres 2-3 ECU's responding
The first response could be limited by obd spec and be truncated to two messages although I suspect michbound was correct.
The second and third responses could easily have been combined into a single message and there is no reason why a controller would send DTC's and then a empty frame-so that is clearly two different ECU's.
openMobile - An open source C# Front End (why choose openMobile?)
- Always Recruiting Developers -
Like what you see? Donations are always welcome
Bookmarks