FreeEMS Binary Parser

FreeEMS topics that aren't specific to hardware development or firmware development.
Post Reply
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

FreeEMS Binary Parser

Post by Fred »

This thread is for me and SeanK and anyone else that feels the need to discuss and develop a parser.

http://stuff.fredcooke.com/rpm.map.pw.pwagain.png

I took another log with genuine rpm and pw and and and in it and that is the result. I believe that the refpw and oempw are offset by 2 bytes from where you are reading. The values are always 1200 off exactly, that is final vs ref not ref vs oem.

The log to play with :

http://stuff.fredcooke.com/not.under.fr ... ompare.bin

When you get it reading right it will be really really useful. I'll email you my hacking :-)

Fred.
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
User avatar
SleepyKeys
LQFP144 - On Top Of The Game
Posts: 549
Joined: Mon Feb 11, 2008 10:52 pm
Location: Arizona
Contact:

Re: FreeEMS Binary Parser

Post by SleepyKeys »

All data has been added to writeBufer(). All I should have to do are the conversions and check my datatypes( i just read everhthing as a word).
-sean
You snooze, you lose!
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: FreeEMS Binary Parser

Post by Fred »

Will test asap, priority number 1 = tuning now :-) Drove 130 miles on it last night ;-)

Fred.
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
User avatar
SleepyKeys
LQFP144 - On Top Of The Game
Posts: 549
Joined: Mon Feb 11, 2008 10:52 pm
Location: Arizona
Contact:

Re: FreeEMS Binary Parser

Post by SleepyKeys »

Excellent!!!!!!!!
Image
You snooze, you lose!
User avatar
SleepyKeys
LQFP144 - On Top Of The Game
Posts: 549
Joined: Mon Feb 11, 2008 10:52 pm
Location: Arizona
Contact:

Re: FreeEMS Binary Parser

Post by SleepyKeys »

Here are my current conversions. If anyone has any input please let me know ASAP!

Thx,
Sean

Code: Select all

 /* get IAT */
	retrievedValue = (getBufferWord(0) / 100) - 273.15;
	writeString(retrievedValue,outputFile);
	 /* get CHT */
	retrievedValue = (getBufferWord(2) / 100) - 273.15;
	writeString(retrievedValue,outputFile);
	 /* get TPS */
	retrievedValue = getBufferWord(4) / 640;
	writeString(retrievedValue,outputFile);
	/* get EGO */
	retrievedValue = getBufferWord(6);
	writeString(retrievedValue,outputFile);
	/* get MAP */
	retrievedValue = getBufferWord(8) / 100;
	writeString(retrievedValue,outputFile);
	/* get AAP */
	retrievedValue = getBufferWord(10) / 100;
	writeString(retrievedValue,outputFile);
	/* get BRV */
	retrievedValue = getBufferWord(12);
	writeString(retrievedValue,outputFile);
	/* get MAT */
	retrievedValue = (getBufferWord(14) / 100) - 273.15;
	writeString(retrievedValue,outputFile);
	/* get EGO2 */
	retrievedValue = getBufferWord(16);
	writeString(retrievedValue,outputFile);
	/* get IAP */
	retrievedValue = getBufferWord(18) / 100;
	writeString(retrievedValue,outputFile);
	/* get MAF */
	retrievedValue = getBufferWord(20);
	writeString(retrievedValue,outputFile);
	/* get DMAP */
	retrievedValue = getBufferWord(22);
	writeString(retrievedValue,outputFile);
	/* get DTPS */
	retrievedValue = getBufferWord(24);
	writeString(retrievedValue,outputFile);
	/* get RPM */
	retrievedValue = getBufferWord(26) / 2;
    writeString(retrievedValue,outputFile);
    /* get DRPM */
    retrievedValue = getBufferWord(28);
    writeString(retrievedValue,outputFile);
    /* get DDRPM */
    retrievedValue = getBufferWord(30);
    writeString(retrievedValue,outputFile);
    /* get LoadMain */
    retrievedValue = getBufferWord(32);
    writeString(retrievedValue,outputFile);
    /* get VEMain */
    retrievedValue = getBufferWord(34);
    writeString(retrievedValue,outputFile);
    /* get Lambda */
    retrievedValue = getBufferWord(36);
   	writeString(retrievedValue,outputFile);
   	/* get AirFlow */
   	retrievedValue = getBufferWord(38);
   	writeString(retrievedValue,outputFile);
   	/* get densityFuel */
   	retrievedValue = getBufferWord(40);
   	writeString(retrievedValue,outputFile);
   	/* get BasePW */
   	retrievedValue = getBufferWord(42);
   	writeString(retrievedValue,outputFile);
   	/* get IDT */
   	retrievedValue = getBufferWord(44);
   	writeString(retrievedValue,outputFile);
   	/* get ETE */
   	retrievedValue = getBufferWord(46);
   	writeString(retrievedValue,outputFile);
    /* get TFCTotal */
	retrievedValue = getBufferWord(48);
   	writeString(retrievedValue,outputFile);
   	/* get FinalPW */
	retrievedValue = getBufferWord(50);
   	writeString(retrievedValue,outputFile);
	/* get RefPW */
   	retrievedValue = getBufferWord(52);
   	writeString(retrievedValue,outputFile);
   	/* get sp1 */
	retrievedValue = getBufferWord(54);
   	writeString(retrievedValue,outputFile);
   	/* get sp2 */
	retrievedValue = getBufferWord(56);
   	writeString(retrievedValue,outputFile);
   	/* get sp3 */
	retrievedValue = getBufferWord(58);
   	writeString(retrievedValue,outputFile);
   	/* get sp4 */
	retrievedValue = getBufferWord(60);
   	writeString(retrievedValue,outputFile);
   	/* get sp5 */
	retrievedValue = getBufferWord(62);
   	writeString(retrievedValue,outputFile);
   	/* get adc0 */
   	retrievedValue = getBufferWord(64);
   	writeString(retrievedValue,outputFile);
   	/* get adc1 */
   	 retrievedValue = getBufferWord(66);
   	writeString(retrievedValue,outputFile);
   	/* get adc2 */
   	retrievedValue = getBufferWord(68);
   	writeString(retrievedValue,outputFile);
   	/* get adc3 */
   	retrievedValue = getBufferWord(70);
   	writeString(retrievedValue,outputFile);
   	/* get adc4 */
   	retrievedValue = getBufferWord(72);
   	writeString(retrievedValue,outputFile);
   	/* get adc5 */
   	retrievedValue = getBufferWord(73);
   	writeString(retrievedValue,outputFile);
   	/* get adc6 */
   	retrievedValue = getBufferWord(74);
   	writeString(retrievedValue,outputFile);
   	/* get adc7 */
   	retrievedValue = getBufferWord(76);
   	writeString(retrievedValue,outputFile);
   	/* get adc8 */
   	retrievedValue = getBufferWord(78);
   	writeString(retrievedValue,outputFile);
   	/* get adc9 */
   	retrievedValue = getBufferWord(80);
   	writeString(retrievedValue,outputFile);
   	/* get adc10 */
   	retrievedValue = getBufferWord(82);
   	writeString(retrievedValue,outputFile);
   	/* get adc12 */
   	retrievedValue = getBufferWord(84);
   	writeString(retrievedValue,outputFile);
   	/* get adc13 */
   	retrievedValue = getBufferWord(86);
   	writeString(retrievedValue,outputFile);
   	/* get adc14 */
    retrievedValue = getBufferWord(88);
   	writeString(retrievedValue,outputFile);
   	/* get adc 15 */
    retrievedValue = getBufferWord(90);
   	writeString(retrievedValue,outputFile);
You snooze, you lose!
Post Reply