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!!!!!!!!

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);