fome-fw/firmware/controllers/sensors/impl/ego.cpp

47 lines
915 B
C++

/**
* @author Andrey Belomutskiy, (c) 2012-2020
*
* EGO Exhaust Gas Oxygen, also known as AFR Air/Fuel Ratio :)
*
*/
#include "pch.h"
void setEgoSensor(ego_sensor_e type) {
auto sensor = &engineConfiguration->afr;
switch (type) {
case ES_BPSX_D1:
/**
* This decodes BPSX D1 Wideband Controller analog signal
*/
sensor->v1 = 0;
sensor->value1 = 9;
sensor->v2 = 5;
sensor->value2 = 19;
break;
case ES_Innovate_MTX_L:
sensor->v1 = 0;
sensor->value1 = 7.35;
sensor->v2 = 5;
sensor->value2 = 22.39;
break;
case ES_14Point7_Free:
sensor->v1 = 0;
sensor->value1 = 9.996;
sensor->v2 = 5;
sensor->value2 = 19.992;
break;
// technically 14Point7 and PLX use the same scale
case ES_PLX:
sensor->v1 = 0;
sensor->value1 = 10;
sensor->v2 = 5;
sensor->value2 = 20;
break;
default:
firmwareError(ObdCode::CUSTOM_EGO_TYPE, "Unexpected EGO %d", type);
break;
}
}