pid demo progress

This commit is contained in:
rusefi 2021-11-08 17:31:17 -05:00
parent e089b8d9ac
commit 8aaecb568e
3 changed files with 63 additions and 21 deletions

View File

@ -626,27 +626,26 @@ void mreSecondaryCan(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
// engineConfiguration->afr.hwChannel = EFI_ADC_14; // engineConfiguration->afr.hwChannel = EFI_ADC_14;
strncpy(config->luaScript, "function onTick()\n" strncpy(config->luaScript, R"(
"txPayload = {}\n" txPayload = {}
"function onTick()\n" function onTick()
" auxV = getAuxAnalog(0)\n" auxV = getAuxAnalog(0)
" print('Hello analog ' .. auxV )\n" print('Hello analog ' .. auxV )
" -- first byte: integer part, would be autoboxed to int\n" -- first byte: integer part, would be autoboxed to int
" txPayload[1] = auxV\n" txPayload[1] = auxV
" -- second byte: fractional part, would be autoboxed to int, overflow would be ignored\n" -- second byte: fractional part, would be autoboxed to int, overflow would be ignored
" txPayload[2] = auxV * 256;\n" txPayload[2] = auxV * 256;
" auxV = getAuxAnalog(1)\n" auxV = getAuxAnalog(1)
" print('Hello analog ' .. auxV )\n" print('Hello analog ' .. auxV )
" txPayload[3] = auxV\n" txPayload[3] = auxV
" txPayload[4] = auxV * 256;\n" txPayload[4] = auxV * 256;
" auxV = getAuxAnalog(2)\n" auxV = getAuxAnalog(2)
" print('Hello analog ' .. auxV )\n" print('Hello analog ' .. auxV )
" txPayload[5] = auxV\n" txPayload[5] = auxV
" txPayload[6] = auxV * 256;\n" txPayload[6] = auxV * 256;
" txCan(1, 0x600, 1, txPayload)\n" txCan(1, 0x600, 1, txPayload)
"end" end
)", efi::size(config->luaScript));
"end", efi::size(config->luaScript));
} }
@ -830,6 +829,45 @@ void setHellenDefaultVrThresholds(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
} }
} }
void proteusLuaDemo(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
#if HW_PROTEUS
engineConfiguration->tpsMin = 889;
engineConfiguration->tpsMax = 67;
engineConfiguration->tps1SecondaryMin = 105;
engineConfiguration->tps1SecondaryMax = 933;
strcpy(engineConfiguration->scriptCurveName[3 - 1], "bias");
/**
* for this demo I use ETB just a sample object to control with PID. No reasonable person should consider actually using
* Lua for actual intake ETB control while driving around the racing track - hard-coded ETB control is way smarter!
*/
static const float defaultBiasBins[] = {
0, 1, 2, 4, 7, 98, 99, 100
};
static const float defaultBiasValues[] = {
-20, -18, -17, 0, 20, 21, 22, 25
};
engineConfiguration->luaOutputPins[0] = GPIOD_12;
copyArray(CONFIG(scriptCurve3Bins), defaultBiasBins);
copyArray(CONFIG(scriptCurve3), defaultBiasValues);
// ETB direction #1 PD10
// ETB control PD12
// ETB disable PD11
auto script = R"(
function testFunc()
return 5.5
end
)";
#endif
}
#if HW_HELLEN #if HW_HELLEN
void setHellen144LedPins(DECLARE_CONFIG_PARAMETER_SIGNATURE) { void setHellen144LedPins(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
#ifdef EFI_COMMUNICATION_PIN #ifdef EFI_COMMUNICATION_PIN

View File

@ -29,6 +29,7 @@ void mreBCM(DECLARE_CONFIG_PARAMETER_SIGNATURE);
* set engine_type 42 * set engine_type 42
*/ */
void proteusBoardTest(DECLARE_CONFIG_PARAMETER_SIGNATURE); void proteusBoardTest(DECLARE_CONFIG_PARAMETER_SIGNATURE);
void proteusLuaDemo(DECLARE_CONFIG_PARAMETER_SIGNATURE);
void setTest33816EngineConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE); void setTest33816EngineConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE);
void setBoschHDEV_5_injectors(DECLARE_CONFIG_PARAMETER_SIGNATURE); void setBoschHDEV_5_injectors(DECLARE_CONFIG_PARAMETER_SIGNATURE);

View File

@ -940,6 +940,9 @@ void resetConfigurationExt(configuration_callback_t boardCallback, engine_type_e
case PROTEUS_QC_TEST_BOARD: case PROTEUS_QC_TEST_BOARD:
proteusBoardTest(PASS_CONFIG_PARAMETER_SIGNATURE); proteusBoardTest(PASS_CONFIG_PARAMETER_SIGNATURE);
break; break;
case PROTEUS_LUA_DEMO:
proteusLuaDemo(PASS_CONFIG_PARAMETER_SIGNATURE);
break;
case PROTEUS_BMW_M73: case PROTEUS_BMW_M73:
setEngineBMW_M73_Proteus(PASS_CONFIG_PARAMETER_SIGNATURE); setEngineBMW_M73_Proteus(PASS_CONFIG_PARAMETER_SIGNATURE);
break; break;