// this file defines various constants
#if !defined __INC_PLX_H
#define __INC_PLX_H
typedef enum {
PLX_Start = 0x80,
PLX_Stop = 0x40,
} PLX_Header;
static const char * PLX_Obs_Names []= {
"AFR","EGT","FluidTemp","Vac","Boost","AIT","RPM","Speed","TPS",
"Load","FluidPressure","Timing","MAP","MAF","ShortFuel",
"LongFuel","NBO2", "Fuel","Volts","Knock","Duty","CHT"
} ;
enum PLX_Observations
{
PLX_AFR = 0, //Wideband Air/Fuel
PLX_EGT = 1, //EGT
PLX_FluidTemp =2, //Fluid Temp
PLX_Vac = 3, //Vac
PLX_Boost = 4, //Boost
PLX_AIT = 5, //AIT
PLX_RPM = 6,
PLX_Speed = 7, //Speed
PLX_TPS = 8, //TPS
PLX_Load = 9 , //Engine Load
PLX_FluidPressure = 10, //Fluid Pressure
PLX_Timing = 11, //Engine timing
PLX_MAP = 12, //MAP
PLX_MAF = 13, //MAF
PLX_ShortFuel = 14, //Short term fuel trim
PLX_LongFuel =15, //Long term fuel trim
PLX_NBO2 = 16, //Narrowband O2 sensor@@@@@@@
PLX_Fuel = 17, //Fuel level
PLX_Volts = 18, //Volts
PLX_Knock = 19, //Knock
PLX_Duty = 20, //Duty cycle
PLX_X_CHT = 21, // Extended observations for aircooled engine
PLX_MAX_OBS
};
enum PLX_AFR_Units
{
AFR_Lambda,
AFR_Gasoline,
AFR_Diesel,
AFR_Methanol,
AFR_Ethanol,
AFR_LPG,
AFR_CNG
};
enum PLX_TEMP_Units
{
TEMP_Celsius,
TEMP_Fahrenheit
};
enum PLX_PRESSURE_Units
{
PRESSURE_PSI_Fuel,
PRESSURE_KGCM2_Fuel,
PRESSURE_Bar_Fuel,
PRESSURE_PSI_Oil,
PRESSURE_KGCM2_Oil,
PRESSURE_Bar_Oil
};
enum PLX_MAP_Units
{
PRESSURE_kPa,
PRESSURE_InHg
};
extern double ConveriMFDRaw2Data(int sensor, int units, int raw);
#pragma pack(push,1)
typedef struct
{
char AddrH;
char AddrL;
char Instance;
char ReadingH;
char ReadingL;
} PLX_SensorInfo;
#pragma pack(pop)
static inline int ConvPLX(char H, char L)
{
return ((H & 0x3F)<<6) | (L & 0x3F);
}
#endif