funnynypd said:
I believe you are talking about PGN 65226.
PGN 65262 is Engine Temperature 1 (ET1).
A screen cut of your software would help a lot.
Yes, typo
I copied a sample using Trans Temp from PGN 65272 as an example of how I am pulling the data, See Below... what I need to know is in the fault code PGN 65226, I retreive the data in a message format, from what I have been able to learn, the breakdown is as follows:
6 Data Bytes
Byte 1 bit 5&6 Red Lamp Status PGN 623
Byte 1 bit 3&4 Amber Lamp status PGN 624
Byte 1 bit 1&2 Protect Lamp Staus PGN 987
Byte 1 bit 7&8 Malfunction Indicator PGN 1213
Byte 3&4 SPN of fault code PGN 1214
Byte 5 FMI of fault code PGN 1215
Byte 6 first 7 bits = Counts PGN 1216
Byte 6 8th bit=Conversion Method PGN 1706
then the sequence repeats until all active codes are sent, so my message would be 24 characters long if there were 4 faults and I have no byte 2 breakdown...
When I apply this I get bad results, all other PGNs I apply this to work flawlessly (See attached screen clip) so I must be looking at it wrong... wrong byte locations, missing something...
The same with 65231, 65236, 65727, and 65230
Can you tell me the makeup of these PGNs dealing only with the data segment
In the following snipit, I am pulling the Transmission Temperature (Bytes 5&6) from PGN 65272 then converting it to degrees f.
SPN 177 is byte 5&6 of PGN 65272, offset is resolution is .03125 offset is -273 to get degrees in C. then *9/5+32 to convert to Degrees F. then I format the CString Value to display the temperature
SNIPIT ===================>
case 65272:
// SPN 177 trans temp
fReading = (double) UnPackTwoByteIntegerLSB( &ucMessage[i+4] );
Value.Format(_T("%4.2f Deg. F"),fReading * .03125 +(-273) * 9 / 5 +32 );
break;