getAuxDigital #351

This commit is contained in:
Matthew Kennedy 2024-01-23 10:15:58 -08:00
parent 362969ac16
commit b81c30bd4a
5 changed files with 26 additions and 5 deletions

View File

@ -33,6 +33,7 @@ or
### Added
- Staged injection: a second set of fuel injectors that inject part of the fuel load when you run out of primary injector
- VE/Ign/Boost blend tables can select a Y axis override for even more flexibility
- Added Lua function `getAuxDigital` for parity with rusEFI #351
## December 2023 Release

View File

@ -314,6 +314,25 @@ static int lua_getDigital(lua_State* l) {
return 1;
}
static int lua_getAuxDigital(lua_State* l) {
auto idx = luaL_checkinteger(l, 1);
if (idx < 0 || idx >= LUA_DIGITAL_INPUT_COUNT) {
// Return nil to indicate invalid parameter
lua_pushnil(l);
return 1;
}
if (!isBrainPinValid(engineConfiguration->luaDigitalInputPins[idx])) {
// Return nil to indicate invalid pin
lua_pushnil(l);
return 1;
}
bool state = efiReadPin(engineConfiguration->luaDigitalInputPins[idx]);
lua_pushboolean(l, state);
return 1;
}
static int lua_setDebug(lua_State* l) {
// wrong debug mode, ignore
if (engineConfiguration->debugMode != DBG_LUA) {
@ -623,6 +642,7 @@ void configureRusefiLuaHooks(lua_State* l) {
lua_register(l, "readPin", lua_readpin);
lua_register(l, "vin", lua_vin);
lua_register(l, "getAuxAnalog", lua_getAuxAnalog);
lua_register(l, "getAuxDigital", lua_getAuxDigital);
lua_register(l, "getSensorByIndex", lua_getSensorByIndex);
lua_register(l, "getSensor", lua_getSensorByName);
lua_register(l, "getSensorRaw", lua_getSensorRaw);

View File

@ -51,7 +51,7 @@ static void deInitOldAnalogInputs() {
static void initAuxDigital() {
#if EFI_PROD_CODE
for (size_t i = 0;i<efi::size(engineConfiguration->luaDigitalInputPins);i++) {
efiSetPadMode("Lua Digital", engineConfiguration->luaDigitalInputPins[i], getInputMode(PI_DEFAULT));
efiSetPadMode("Lua Digital", engineConfiguration->luaDigitalInputPins[i], engineConfiguration->luaDigitalInputPinModes[i]);
}
#endif // EFI_PROD_CODE
}

View File

@ -1445,7 +1445,7 @@ SentEtbType sentEtbType
custom fuel_pressure_sensor_mode_e 1 bits, U08, @OFFSET@, [0:1], @@fuel_pressure_sensor_mode_e_enum@@
fuel_pressure_sensor_mode_e fuelPressureSensorMode
Gpio[LUA_DIGITAL_INPUT_COUNT iterate] luaDigitalInputPins;
switch_input_pin_e[LUA_DIGITAL_INPUT_COUNT iterate] luaDigitalInputPins;
uint8_t[TPS_TPS_ACCEL_CLT_CORR_TABLE] autoscale tpsTspCorrValuesBins;;"RPM", 50, 0, 0, 17500, 0
int16_t ALSMinRPM;;"rpm", 1, 0, 0, 20000, 0
int16_t ALSMaxRPM;;"rpm", 1, 0, 0, 20000, 0

View File

@ -1844,8 +1844,8 @@ menuDialog = main
subMenu = vvtTable2Tbl, "VVT exhaust target", { vvtMode2 != @@vvt_mode_e_VVT_INACTIVE@@ }
subMenu = std_separator
subMenu = auxInputsDialog, "Lua Analog Inputs"
subMenu = luaDigitalInputsDialog, "Lua Digital Inputs"
subMenu = auxInputsDialog, "Lua Analog Aux Inputs"
subMenu = luaDigitalInputsDialog, "Lua Digital Aux Inputs"
subMenu = luaOutputs, "Lua Script PWM Outputs"
groupMenu = "Lua Calibrations"
@ -3927,7 +3927,7 @@ cmd_set_engine_type_default = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_
field = "Mode #7", luaDigitalInputPinModes7
field = "Mode #8", luaDigitalInputPinModes8
dialog = luaDigitalInputsDialog, "Lua Digital Inputs", border
dialog = luaDigitalInputsDialog, "Lua Digital Aux Inputs", border
panel = luaDigitalInputsLeftDialog, West
panel = luaDigitalInputsRightDialog, East