Page 1 of 1

FreeEMS Binary Parser

Posted: Tue Nov 03, 2009 5:25 pm
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.

Re: FreeEMS Binary Parser

Posted: Thu Nov 05, 2009 12:01 am
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

Re: FreeEMS Binary Parser

Posted: Thu Nov 05, 2009 5:48 pm
by Fred
Will test asap, priority number 1 = tuning now :-) Drove 130 miles on it last night ;-)

Fred.

Re: FreeEMS Binary Parser

Posted: Thu Nov 05, 2009 5:50 pm
by SleepyKeys
Excellent!!!!!!!!
Image

Re: FreeEMS Binary Parser

Posted: Mon Nov 09, 2009 7:08 pm
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);