|
 |
|
10-01-2009, 04:57 PM
|
#16
|
|
Newbie
Join Date: Oct 2008
Posts: 16
|
Do I win a free ELMScan?
|
|
|
|
Sponsored links
|
|
Advertisement
|
|
10-01-2009, 07:28 PM
|
#17
|
|
What can I say? I like serial.
Join Date: Mar 2004
Location: Florence Yall, BFKY
Posts: 2,163
|
@Rooster, can I be just a little hard on you? 
Try something more like post #5. You should also convert the hex text into data first, using atoh() or something similar. It will be a lot easier on you in the long run.
The problem with a switch/case like that is bits A5 and A4 are now reserved for a 5th digit with 2008+ models.
So in C/C++...
char cECU[4] = {'P', 'C', 'B', 'U'};
printf("DTC %c%X%02X", cECU[bytes[0] >> 6], bytes[0] & 0x3F, bytes[1] );
Note the 0x3F. The first byte can be anywhere from P0 to U39 in BCD.
|
|
|
10-01-2009, 10:55 PM
|
#18
|
|
Newbie
Join Date: Oct 2008
Posts: 16
|
Thanks for the tips.
|
|
|
10-05-2009, 09:04 AM
|
#19
|
|
Low Bitrate
Join Date: Sep 2008
Posts: 78
|
Quote: Originally Posted by Vitaliy 
Almost! You did very well but sorry -- it was a trick question!
18 DA F1 10 10 0E 43 06 01 00 02 00
18 DA F1 10 21 03 00 43 00 82 00 C1
18 DA F1 10 22 00 00 00 00 00 00 00
So the parts in blue are the headers, followed by the sequence numbers. So far so good. What tripped you up was the fact that you also have a byte count ($0E = 15), followed by reply to mode 3 ($43), followed by the number of DTCs (06).
Wanna give it another try?
Vitaliy
I could translate that...or I could just pull up the data sheet on one of your simulators.
|
|
|
10-05-2009, 10:58 PM
|
#20
|
|
VENDOR - ScanTool
Join Date: Dec 2006
Posts: 235
|
Quote: Originally Posted by Rooster 
Do I win a free ELMScan? 
Nah, ElmScan is so 2008.. How about I send you OBDLink instead?
Vitaliy
__________________
— Did you know that MP3Car sells OBD-2 interfaces? Get your ElmScan 5 Compact for only $59.95!
— Need to look up a diagnostic trouble code? Try the most up-to-date, free DTCsearch.com!
|
|
|
10-05-2009, 10:59 PM
|
#21
|
|
VENDOR - ScanTool
Join Date: Dec 2006
Posts: 235
|
Quote: Originally Posted by Aberk 
I could translate that...or I could just pull up the data sheet on one of your simulators. 
Yes, about that... we really need to clean it up and post it online so everyone can use it.
But then again, if we did that today it would be out of date next week.. with all the new features we're adding..
Vitaliy
__________________
— Did you know that MP3Car sells OBD-2 interfaces? Get your ElmScan 5 Compact for only $59.95!
— Need to look up a diagnostic trouble code? Try the most up-to-date, free DTCsearch.com!
|
|
|
10-06-2009, 08:11 AM
|
#22
|
|
Newbie
Join Date: Oct 2008
Posts: 16
|
Quote: Originally Posted by Vitaliy 
Nah, ElmScan is so 2008.. How about I send you OBDLink instead?
Vitaliy
Well, all right, if you insist.
|
|
|
11-02-2009, 11:30 PM
|
#23
|
|
Mod - OBDII GPS Logger forum
Join Date: Mar 2009
Location: Los Angeles
Posts: 409
|
So how do I parse this:
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
>
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.
Gary (-;
|
|
|
|
Sponsored links
|
|
Advertisement
|
|
11-03-2009, 02:06 AM
|
#24
|
|
Mod - OBDII GPS Logger forum
Join Date: Mar 2009
Location: Los Angeles
Posts: 409
|
Well, except for the bit where I don't know what to do with the "00E" on a line on its own:
Original data:
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
>
obdgpslogger output:
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$
Oh, great mp3car forum OBDII wizards; does that look correct?
Gary (-;
|
|
|
11-03-2009, 02:12 AM
|
#25
|
|
Maximum Bitrate
Join Date: Jul 2008
Location: Boston, Ma or NY,NY
Posts: 565
|
Quote: Originally Posted by chunkyks 
So how do I parse this:
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
>
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.
Gary (-;
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
Quote: Originally Posted by chunkyks 
Oh, great mp3car forum OBDII wizards; does that look correct?
Your off by a digit
Last edited by justchat_1; 11-03-2009 at 02:14 AM.
|
|
|
11-03-2009, 02:29 AM
|
#26
|
|
Mod - OBDII GPS Logger forum
Join Date: Mar 2009
Location: Los Angeles
Posts: 409
|
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?
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$
Better...
Gary (-;
|
|
|
11-03-2009, 02:56 AM
|
#27
|
|
Maximum Bitrate
Join Date: Jul 2008
Location: Boston, Ma or NY,NY
Posts: 565
|
Quote: Originally Posted by chunkyks 
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?
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$
Better...
Gary (-;
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).
|
|
|
11-03-2009, 08:50 AM
|
#28
|
|
VENDOR - OBDPros
Join Date: Mar 2006
Posts: 350
|
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
|
|
|
11-03-2009, 12:48 PM
|
#29
|
|
Constant Bitrate
Join Date: Oct 2008
Posts: 179
|
I think there's only 1 ecu responding, however with 3 messages because the can-bus messages are restricted in length.
|
|
|
11-03-2009, 01:01 PM
|
#30
|
|
Maximum Bitrate
Join Date: Jul 2008
Location: Boston, Ma or NY,NY
Posts: 565
|
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.
|
|
|
|
Sponsored links
|
|
Advertisement
|
|
| Thread Tools |
|
|
| Display Modes |
Linear Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -5. The time now is 08:58 PM.
| |