mirror of https://github.com/FOME-Tech/fome-fw.git
47 lines
915 B
C++
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;
|
|
}
|
|
}
|