rusEFI
The most advanced open source ECU
Loading...
Searching...
No Matches
Functions | Variables
bench_test.cpp File Reference

Detailed Description

Utility methods related to bench testing.

Date
Sep 8, 2013
Author
Andrey Belomutskiy, (c) 2012-2020

This file is part of rusEfi - see http://rusefi.com

rusEfi is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

rusEfi is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Definition in file bench_test.cpp.

Functions

bool isRunningBenchTest ()
 
const OutputPingetOutputOnTheBenchTest ()
 
static void benchOn (OutputPin *output)
 
static void benchOff (OutputPin *output)
 
static void runBench (OutputPin *output, float onTimeMs, float offTimeMs, int count, bool swapOnOff)
 
static chibios_rt::CounterSemaphore benchSemaphore (0)
 
static void pinbench (float ontimeMs, float offtimeMs, int iterations, OutputPin *pinParam, bool p_swapOnOff=false)
 
static void cancelBenchTest ()
 
static void doRunFuelInjBench (size_t humanIndex, float onTimeMs, float offTimeMs, int count)
 
static void doRunSparkBench (size_t humanIndex, float onTime, float offTime, int count)
 
static void doRunSolenoidBench (size_t humanIndex, float onTime, float offTime, int count)
 
static void doRunBenchTestLuaOutput (size_t humanIndex, float onTimeMs, float offTimeMs, int count)
 
static void fuelInjBenchExt (float humanIndex, float onTimeMs, float offTimeMs, float count)
 
static void fuelInjBench (float onTimeMs, float offTimeMs, float count)
 
static void sparkBenchExt (float humanIndex, float onTime, float offTimeMs, float count)
 
static void sparkBench (float onTime, float offTimeMs, float count)
 
static void tcuSolenoidBench (float humanIndex, float onTime, float offTimeMs, float count)
 
static void fanBenchExt (float onTimeMs)
 
void fanBench ()
 
void fan2Bench ()
 
void milBench ()
 
void starterRelayBench ()
 
static void fuelPumpBenchExt (float durationMs)
 
void acRelayBench ()
 
static void mainRelayBench ()
 
static void hpfpValveBench ()
 
void fuelPumpBench ()
 
static void vvtValveBench (int vvtIndex)
 
static void requestWidebandUpdate (int hwIndex, bool fromFile)
 
static void auxOutBench (int index)
 
static void hdAcrBench (int index)
 
void handleBenchCategory (uint16_t index)
 
int getSavedBenchTestPinStates (uint32_t durationsInStateMs[2])
 
static void handleCommandX14 (uint16_t index)
 
static void applyPreset (int index)
 
void boardTsAction (uint16_t index)
 
static void processCanUserControl (const CANRxFrame &frame)
 
static void processCanSetCalibration (const CANRxFrame &frame)
 
static void processCanRequestCalibration (const CANRxFrame &frame)
 
void processCanEcuControl (const CANRxFrame &frame)
 
void executeTSCommand (uint16_t subsystem, uint16_t index)
 
void onConfigurationChangeBenchTest ()
 
void initBenchTest ()
 

Variables

static bool isRunningBench = false
 
static OutputPinoutputOnTheBenchTest = nullptr
 
static scheduling_s benchSchedStart
 
static scheduling_s benchSchedEnd
 
static int savedPinToggleCounter = 0
 
static uint32_t savedDurationsInStateMs [2] = { 0, 0 }
 
static volatile bool isBenchTestPending = false
 
static bool widebandUpdatePending = false
 
static bool widebandUpdateFromFile = false
 
static uint8_t widebandUpdateHwId = 0
 
static float globalOnTimeMs
 
static float globalOffTimeMs
 
static int globalCount
 
static OutputPinpinX
 
static bool swapOnOff = false
 
static BenchController instance
 
int luaCommandCounters [LUA_BUTTON_COUNT] = {}
 
bool rebootForPresetPending
 
std::optional< setup_custom_board_ts_command_override_typecustom_board_ts_command
 

Function Documentation

◆ acRelayBench()

void acRelayBench ( )

Definition at line 286 of file bench_test.cpp.

286 {
287 pinbench(BENCH_AC_RELAY_DURATION, 100.0, 1, &enginePins.acRelay);
288}
static void pinbench(float ontimeMs, float offtimeMs, int iterations, OutputPin *pinParam, bool p_swapOnOff=false)
RegisteredOutputPin acRelay
Definition efi_gpio.h:90
EnginePins enginePins
Definition efi_gpio.cpp:24

Referenced by handleBenchCategory(), and initBenchTest().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ applyPreset()

static void applyPreset ( int  index)
static

Definition at line 628 of file bench_test.cpp.

628 {
629 setEngineType(index);
630#if EFI_TUNER_STUDIO
632#endif // EFI_TUNER_STUDIO
633}
void setEngineType(int value, bool isWriteToFlash)
Definition settings.cpp:739
void onApplyPreset()

Referenced by executeTSCommand().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ auxOutBench()

static void auxOutBench ( int  index)
static

Definition at line 350 of file bench_test.cpp.

350 {
351 // todo!
352 UNUSED(index);
353}
UNUSED(samplingTimeSeconds)

Referenced by handleBenchCategory().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ benchOff()

static void benchOff ( OutputPin output)
static

Definition at line 90 of file bench_test.cpp.

90 {
91#if EFI_PROD_CODE && (BOARD_EXT_GPIOCHIPS > 0)
92 static char pin_error[64];
93
94 brain_pin_diag_e diag = output->getDiag();
95 if (diag == PIN_UNKNOWN) {
96 efiPrintf("No Diag on this pin");
97 } else {
98 pinDiag2string(pin_error, sizeof(pin_error), diag);
99 efiPrintf("Diag says %s", pin_error);
100 }
101#endif // EFI_PROD_CODE
102 output->setValue(BENCH_MSG, false, /*isForce*/ true);
103}
brain_pin_diag_e getDiag() const
Definition efi_gpio.cpp:679
void setValue(const char *msg, int logicValue, bool isForce=false)
Definition efi_gpio.cpp:605
void pinDiag2string(char *buffer, size_t size, brain_pin_diag_e pin_diag)
brain_pin_diag_e
Here is the call graph for this function:

◆ benchOn()

static void benchOn ( OutputPin output)
static

Definition at line 86 of file bench_test.cpp.

86 {
87 output->setValue(BENCH_MSG, true, /*isForce*/ true);
88}
Here is the call graph for this function:

◆ benchSemaphore()

static chibios_rt::CounterSemaphore benchSemaphore ( )
static

Referenced by pinbench(), and requestWidebandUpdate().

Here is the caller graph for this function:

◆ boardTsAction()

void boardTsAction ( uint16_t  index)

Definition at line 636 of file bench_test.cpp.

636{ UNUSED(index); }
Here is the call graph for this function:

◆ cancelBenchTest()

static void cancelBenchTest ( )
static

Definition at line 182 of file bench_test.cpp.

182 {
183 isRunningBench = false;
184}
static bool isRunningBench

Referenced by handleBenchCategory().

Here is the caller graph for this function:

◆ doRunBenchTestLuaOutput()

static void doRunBenchTestLuaOutput ( size_t  humanIndex,
float  onTimeMs,
float  offTimeMs,
int  count 
)
static

Definition at line 211 of file bench_test.cpp.

211 {
212 if (humanIndex < 1 || humanIndex > LUA_PWM_COUNT) {
213 efiPrintf("Invalid index: %d", humanIndex);
214 return;
215 }
216 pinbench(onTimeMs, offTimeMs, count,
217 &enginePins.luaOutputPins[humanIndex - 1]);
218}
OutputPin luaOutputPins[LUA_PWM_COUNT]
Definition efi_gpio.h:100
uint16_t count
Definition tunerstudio.h:1

Referenced by executeTSCommand(), and initBenchTest().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ doRunFuelInjBench()

static void doRunFuelInjBench ( size_t  humanIndex,
float  onTimeMs,
float  offTimeMs,
int  count 
)
static

Definition at line 186 of file bench_test.cpp.

186 {
187 if (humanIndex < 1 || humanIndex > engineConfiguration->cylindersCount) {
188 efiPrintf("Invalid index: %d", humanIndex);
189 return;
190 }
191 pinbench(onTimeMs, offTimeMs, count,
192 &enginePins.injectors[humanIndex - 1]);
193}
InjectorOutputPin injectors[MAX_CYLINDER_COUNT]
Definition efi_gpio.h:127
static constexpr engine_configuration_s * engineConfiguration

Referenced by executeTSCommand(), and fuelInjBenchExt().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ doRunSolenoidBench()

static void doRunSolenoidBench ( size_t  humanIndex,
float  onTime,
float  offTime,
int  count 
)
static

Definition at line 203 of file bench_test.cpp.

203 {
204 if (humanIndex < 1 || humanIndex > TCU_SOLENOID_COUNT) {
205 efiPrintf("Invalid index: %d", humanIndex);
206 return;
207 }
208 pinbench(onTime, offTime, count, &enginePins.tcuSolenoids[humanIndex - 1]);
209}
OutputPin tcuSolenoids[TCU_SOLENOID_COUNT]
Definition efi_gpio.h:132

Referenced by executeTSCommand(), and tcuSolenoidBench().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ doRunSparkBench()

static void doRunSparkBench ( size_t  humanIndex,
float  onTime,
float  offTime,
int  count 
)
static

Definition at line 195 of file bench_test.cpp.

195 {
196 if (humanIndex < 1 || humanIndex > engineConfiguration->cylindersCount) {
197 efiPrintf("Invalid index: %d", humanIndex);
198 return;
199 }
200 pinbench(onTime, offTime, count, &enginePins.coils[humanIndex - 1]);
201}
IgnitionOutputPin coils[MAX_CYLINDER_COUNT]
Definition efi_gpio.h:129

Referenced by executeTSCommand(), and sparkBenchExt().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ executeTSCommand()

void executeTSCommand ( uint16_t  subsystem,
uint16_t  index 
)

Definition at line 708 of file bench_test.cpp.

708 {
709 efiPrintf("IO test subsystem=%d index=%d", subsystem, index);
710
712
713 switch (subsystem) {
716 break;
717
718 case TS_DEBUG_MODE:
720 break;
721
723 if (!running) {
726 }
727 break;
728
730 if (!running) {
733 }
734 break;
735
737 if (!running) {
738 doRunSolenoidBench(index, 1000.0,
740 }
741 break;
742
744 if (!running) {
745 doRunBenchTestLuaOutput(index, 4.0,
747 }
748 break;
749
750 case TS_X14:
751 handleCommandX14(index);
752 break;
753#if EFI_CAN_SUPPORT
754 case TS_WIDEBAND:
755 setWidebandOffset(0xff, index);
756 break;
758 {
759 uint8_t hwIndex = index >> 8;
760 uint8_t canIndex = index & 0xff;
761
762 // Hack until we fix canReWidebandHwIndex and set "Broadcast" to 0xff
763 // TODO:
764 hwIndex = hwIndex < 8 ? hwIndex : 0xff;
765 setWidebandOffset(hwIndex, canIndex);
766 }
767 break;
769 {
770 uint8_t hwIndex = index >> 8;
771 uint8_t sensType = index & 0xff;
772
773 // Hack until we fix canReWidebandHwIndex and set "Broadcast" to 0xff
774 // TODO:
775 hwIndex = hwIndex < 8 ? hwIndex : 0xff;
776 setWidebandSensorType(hwIndex, sensType);
777 }
778 break;
780 pingWideband(index >> 8);
781 break;
782
785 {
786 uint8_t hwIndex = index >> 8;
787
788 // Hack until we fix canReWidebandHwIndex and set "Broadcast" to 0xff
789 // TODO:
790 widebandUpdateHwId = hwIndex < 8 ? hwIndex : 0xff;
792 }
793 break;
794
797 break;
798
799#endif // EFI_CAN_SUPPORT
801 handleBenchCategory(index);
802 break;
803
805 applyPreset(index);
806 break;
807
808 case TS_BOARD_ACTION:
809 // TODO: use call_board_override
810 if (custom_board_ts_command.has_value()) {
811 custom_board_ts_command.value()(subsystem, index);
812 }
813 break;
814
816 applyPreset((int)DEFAULT_ENGINE_TYPE);
817 break;
818
819 case TS_STOP_ENGINE:
821 break;
822
823 case 0xba:
824#if EFI_PROD_CODE && EFI_DFU_JUMP
826#endif /* EFI_DFU_JUMP */
827 break;
828
829 case REBOOT_COMMAND:
830#if EFI_PROD_CODE
831 rebootNow();
832#endif /* EFI_PROD_CODE */
833 break;
834
835#if EFI_USE_OPENBLT
836 case 0xbc:
837 /* Jump to OpenBLT if present */
839 break;
840#endif
841
842 default:
843 criticalError("Unexpected bench subsystem %d %d", subsystem, index);
844 }
845}
void jump_to_openblt()
void jump_to_bootloader()
static void doRunFuelInjBench(size_t humanIndex, float onTimeMs, float offTimeMs, int count)
static void handleCommandX14(uint16_t index)
static void doRunSolenoidBench(size_t humanIndex, float onTime, float offTime, int count)
std::optional< setup_custom_board_ts_command_override_type > custom_board_ts_command
static void doRunSparkBench(size_t humanIndex, float onTime, float offTime, int count)
static uint8_t widebandUpdateHwId
static void doRunBenchTestLuaOutput(size_t humanIndex, float onTimeMs, float offTimeMs, int count)
void handleBenchCategory(uint16_t index)
static void requestWidebandUpdate(int hwIndex, bool fromFile)
static void applyPreset(int index)
RpmCalculator rpmCalculator
Definition engine.h:314
bool isStopped() const override
static EngineAccessor engine
Definition engine.h:415
debug_mode_e
@ TS_WIDEBAND_SET_IDX_BY_ID
@ TS_WIDEBAND
@ TS_CLEAR_WARNINGS
@ TS_BOARD_ACTION
@ TS_SOLENOID_CATEGORY
@ TS_LUA_OUTPUT_CATEGORY
@ TS_DEBUG_MODE
@ TS_WIDEBAND_RESTART
@ TS_WIDEBAND_FLASH_BY_ID_FILE
@ TS_SET_ENGINE_TYPE
@ TS_X14
@ TS_IGNITION_CATEGORY
@ TS_BENCH_CATEGORY
@ TS_WIDEBAND_SET_SENS_BY_ID
@ TS_WIDEBAND_PING_BY_ID
@ TS_WIDEBAND_FLASH_BY_ID
@ TS_SET_DEFAULT_ENGINE
@ TS_INJECTOR_CATEGORY
@ TS_STOP_ENGINE
void clearWarnings(void)
void rebootNow()
Definition rusefi.cpp:150
void setWidebandSensorType(uint8_t hwIndex, uint8_t type)
void pingWideband(uint8_t hwIndex)
void setWidebandOffset(uint8_t hwIndex, uint8_t index)
void restartWideband()
running("running", SensorCategory.SENSOR_INPUTS, FieldType.INT, 888, 1.0, -1.0, -1.0, "")
void doScheduleStopEngine(StopRequestedReason reason)

Referenced by TunerStudio::handleCrcCommand(), and processCanUserControl().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ fan2Bench()

void fan2Bench ( )

Definition at line 266 of file bench_test.cpp.

266 {
267 pinbench(3000.0, 100.0, 1, &enginePins.fanRelay2);
268}
RegisteredOutputPin fanRelay2
Definition efi_gpio.h:87

Referenced by handleBenchCategory(), and initBenchTest().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ fanBench()

void fanBench ( )

Definition at line 262 of file bench_test.cpp.

262 {
263 fanBenchExt(BENCH_FAN_DURATION);
264}
static void fanBenchExt(float onTimeMs)

Referenced by handleBenchCategory(), and initBenchTest().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ fanBenchExt()

static void fanBenchExt ( float  onTimeMs)
static

Definition at line 258 of file bench_test.cpp.

258 {
259 pinbench(onTimeMs, 100.0, 1, &enginePins.fanRelay);
260}
RegisteredOutputPin fanRelay
Definition efi_gpio.h:86

Referenced by fanBench(), and initBenchTest().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ fuelInjBench()

static void fuelInjBench ( float  onTimeMs,
float  offTimeMs,
float  count 
)
static

fuelbench 5 1000 2

Definition at line 231 of file bench_test.cpp.

231 {
232 fuelInjBenchExt(1, onTimeMs, offTimeMs, count);
233}
static void fuelInjBenchExt(float humanIndex, float onTimeMs, float offTimeMs, float count)

Referenced by initBenchTest().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ fuelInjBenchExt()

static void fuelInjBenchExt ( float  humanIndex,
float  onTimeMs,
float  offTimeMs,
float  count 
)
static

cylinder #2, 5ms ON, 1000ms OFF, repeat 3 times fuelInjBenchExt 2 5 1000 3

Definition at line 224 of file bench_test.cpp.

224 {
225 doRunFuelInjBench((int)humanIndex, onTimeMs, offTimeMs, (int)count);
226}

Referenced by fuelInjBench(), and initBenchTest().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ fuelPumpBench()

void fuelPumpBench ( )

Definition at line 299 of file bench_test.cpp.

299 {
300 fuelPumpBenchExt(BENCH_FUEL_PUMP_DURATION);
301}
static void fuelPumpBenchExt(float durationMs)

Referenced by handleBenchCategory(), and initBenchTest().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ fuelPumpBenchExt()

static void fuelPumpBenchExt ( float  durationMs)
static

Definition at line 281 of file bench_test.cpp.

281 {
282 pinbench(durationMs, 100.0, 1,
284}
RegisteredOutputPin fuelPumpRelay
Definition efi_gpio.h:91

Referenced by fuelPumpBench(), and initBenchTest().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getOutputOnTheBenchTest()

const OutputPin * getOutputOnTheBenchTest ( )

Definition at line 44 of file bench_test.cpp.

44 {
46}
static OutputPin * outputOnTheBenchTest

Referenced by applyVvtPinState(), and OutputPin::setValue().

Here is the caller graph for this function:

◆ getSavedBenchTestPinStates()

int getSavedBenchTestPinStates ( uint32_t  durationsInStateMs[2])

Definition at line 473 of file bench_test.cpp.

473 {
474#if EFI_SIMULATOR
475 durationsInStateMs[0] = savedDurationsInStateMs[0];
476 durationsInStateMs[1] = savedDurationsInStateMs[1];
478#else
479 UNUSED(durationsInStateMs);
480 return 0;
481#endif // EFI_SIMULATOR
482}
static uint32_t savedDurationsInStateMs[2]
static int savedPinToggleCounter

Referenced by sendSavedBenchStatePackets().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ handleBenchCategory()

void handleBenchCategory ( uint16_t  index)

Definition at line 364 of file bench_test.cpp.

364 {
365 switch(index) {
366 case BENCH_VVT0_VALVE:
367 vvtValveBench(0);
368 return;
369 case BENCH_VVT1_VALVE:
370 vvtValveBench(1);
371 return;
372 case BENCH_VVT2_VALVE:
373 vvtValveBench(2);
374 return;
375 case BENCH_VVT3_VALVE:
376 vvtValveBench(3);
377 return;
378 case BENCH_AUXOUT0:
379 auxOutBench(0);
380 return;
381 case BENCH_AUXOUT1:
382 auxOutBench(1);
383 return;
384 case BENCH_AUXOUT2:
385 auxOutBench(2);
386 return;
387 case BENCH_AUXOUT3:
388 auxOutBench(3);
389 return;
390 case BENCH_AUXOUT4:
391 auxOutBench(4);
392 return;
393 case BENCH_AUXOUT5:
394 auxOutBench(5);
395 return;
396 case BENCH_AUXOUT6:
397 auxOutBench(6);
398 return;
399 case BENCH_AUXOUT7:
400 auxOutBench(7);
401 return;
402 case LUA_COMMAND_1:
404 return;
405 case LUA_COMMAND_2:
407 return;
408 case LUA_COMMAND_3:
410 return;
411 case LUA_COMMAND_4:
413 return;
414#if EFI_LTFT_CONTROL
415 case LTFT_RESET:
417 return;
418 case LTFT_APPLY_TO_VE:
420 return;
421 case LTFT_DEV_POKE:
423 return;
424#endif // EFI_LTFT_CONTROL
425#if EFI_HD_ACR
426 case HD_ACR:
427 hdAcrBench(0);
428 return;
429 case HD_ACR2:
430 hdAcrBench(1);
431 return;
432#endif // EFI_HD_ACR
433 case BENCH_HPFP_VALVE:
435 return;
436 case BENCH_FUEL_PUMP:
437 // cmd_test_fuel_pump
439 return;
440 case BENCH_MAIN_RELAY:
442 return;
445 return;
447 // cmd_test_check_engine_light
448 milBench();
449 return;
451 acRelayBench();
452 return;
453 case BENCH_FAN_RELAY:
454 fanBench();
455 return;
456 case BENCH_IDLE_VALVE:
457 // cmd_test_idle_valve
458#if EFI_IDLE_CONTROL
460#endif /* EFI_IDLE_CONTROL */
461 return;
463 fan2Bench();
464 return;
465 case BENCH_CANCEL:
467 return;
468 default:
469 criticalError("Unexpected bench function %d", index);
470 }
471}
int luaCommandCounters[LUA_BUTTON_COUNT]
void fanBench()
void milBench()
static void cancelBenchTest()
void starterRelayBench()
static void hdAcrBench(int index)
static void hpfpValveBench()
static void mainRelayBench()
static void auxOutBench(int index)
void fan2Bench()
void fuelPumpBench()
void acRelayBench()
static void vvtValveBench(int vvtIndex)
@ LUA_COMMAND_3
@ BENCH_AC_COMPRESSOR_RELAY
@ LUA_COMMAND_2
@ BENCH_FAN_RELAY
@ BENCH_CANCEL
@ BENCH_VVT0_VALVE
@ BENCH_AUXOUT4
@ BENCH_AUXOUT2
@ LUA_COMMAND_1
@ BENCH_MAIN_RELAY
@ BENCH_AUXOUT7
@ HD_ACR2
@ BENCH_IDLE_VALVE
@ LTFT_APPLY_TO_VE
@ LTFT_DEV_POKE
@ HD_ACR
@ BENCH_AUXOUT3
@ BENCH_CHECK_ENGINE_LIGHT
@ BENCH_VVT3_VALVE
@ BENCH_AUXOUT5
@ LUA_COMMAND_4
@ BENCH_AUXOUT1
@ BENCH_VVT1_VALVE
@ BENCH_AUXOUT0
@ BENCH_FAN_RELAY_2
@ LTFT_RESET
@ BENCH_HPFP_VALVE
@ BENCH_FUEL_PUMP
@ BENCH_AUXOUT6
@ BENCH_STARTER_ENABLE_RELAY
@ BENCH_VVT2_VALVE
void startIdleBench(void)
void applyLongTermFuelTrimToVe()
void resetLongTermFuelTrim()
void devPokeLongTermFuelTrim()

Referenced by executeTSCommand(), and processCanQcBenchTest().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ handleCommandX14()

static void handleCommandX14 ( uint16_t  index)
static

Definition at line 484 of file bench_test.cpp.

484 {
485 switch (index) {
487 setStepperHw();
489 return;
490 case TS_GRAB_PEDAL_UP:
492 return;
495 return;
498 return;
499 case TS_GRAB_TPS_OPEN:
501 return;
502 case TS_RESET_TLE8888:
503 #if (BOARD_TLE8888_COUNT > 0)
505 #endif
506 return;
509 // do nothing, we are catching with Lua
510 // this is temporary uaDASH API
511 return;
512 case TS_RESET_MC33810:
513 #if EFI_PROD_CODE && (BOARD_MC33810_COUNT > 0)
515 #endif
516 return;
517#if EFI_SHAFT_POSITION_INPUT
519 // this is different from starter relay bench test!
521 return;
522#endif // EFI_SHAFT_POSITION_INPUT
523 case TS_WRITE_FLASH:
524 // cmd_write_config
525 #if EFI_CONFIGURATION_STORAGE
527 #endif /* EFI_CONFIGURATION_STORAGE */
528 return;
530 #if EFI_EMULATE_POSITION_SENSORS == TRUE
532 #endif /* EFI_EMULATE_POSITION_SENSORS == TRUE */
533 return;
535 #if EFI_EMULATE_POSITION_SENSORS == TRUE
537 #endif /* EFI_EMULATE_POSITION_SENSORS == TRUE */
538 return;
540 #if EFI_EMULATE_POSITION_SENSORS == TRUE
542 #endif /* EFI_EMULATE_POSITION_SENSORS == TRUE */
543 return;
544/*
545 case TS_ETB_RESET:
546 #if EFI_ELECTRONIC_THROTTLE_BODY == TRUE
547 #if EFI_PROD_CODE
548 etbPidReset();
549 #endif
550 #endif // EFI_ELECTRONIC_THROTTLE_BODY
551 return;
552*/
553#if EFI_ELECTRONIC_THROTTLE_BODY
554 case TS_ETB_AUTOCAL_0:
555 etbAutocal(DC_Throttle1);
556 return;
557 case TS_ETB_AUTOCAL_1:
558 etbAutocal(DC_Throttle2);
559 return;
561 etbAutocal(DC_Throttle1, false);
562 return;
564 etbAutocal(DC_Throttle2, false);
565 return;
568 return;
571 return;
573 engine->etbAutoTune = true;
574 return;
576 engine->etbAutoTune = false;
577 #if EFI_TUNER_STUDIO
579 #endif // EFI_TUNER_STUDIO
580 return;
583 return;
584 case TS_EWG_AUTOCAL_0:
585 etbAutocal(DC_Wastegate);
586 return;
588 etbAutocal(DC_Wastegate, false);
589 return;
590#endif // EFI_ELECTRONIC_THROTTLE_BODY
593 // broadcast, for old WBO FWs
595 return;
599 return;
601 return;
602
603#if EFI_PROD_CODE && EFI_FILE_LOGGING
604 case TS_SD_MOUNT_PC:
606 return;
607 case TS_SD_MOUNT_ECU:
609 return;
610 case TS_SD_UNMOUNT:
612 return;
613 case TS_SD_FORMAT:
615 return;
618 return;
619#endif // EFI_FILE_LOGGING
620
621 default:
622 criticalError("Unexpected bench x14 %d", index);
623 }
624}
bool etbAutoTune
Definition engine.h:304
bool etbIgnoreJamProtection
Definition engine.h:305
void etbBenchTestStart(size_t throttleIndex)
void etbAutocal(dc_function_e function, bool reportToTs)
@ TS_GRAB_TPS_CLOSED
@ TS_TRIGGER_STIMULATOR_ENABLE
@ TS_ETB_STOP_AUTOTUNE
@ TS_WRITE_FLASH
@ TS_ETB_DISABLE_JAM_DETECT
@ TS_SD_FORMAT
@ TS_ESTIMATE_TORQUE_TABLE
@ TS_SD_MOUNT_PC
@ TS_WIDEBAND_UPDATE_FILE
@ TS_GRAB_PEDAL_UP
@ TS_ETB_AUTOCAL_0_FAST
@ TS_START_STOP_ENGINE
@ TS_SD_UNMOUNT
@ TS_ETB_AUTOCAL_0
@ TS_RESET_TLE8888
@ TS_ETB_AUTOCAL_1
@ TS_TCU_UPSHIFT_REQUEST
@ TS_TRIGGER_STIMULATOR_DISABLE
@ TS_SD_MOUNT_ECU
@ TS_RESET_MC33810
@ TS_ETB_BENCH_TEST_1
@ TS_ETB_BENCH_TEST_0
@ TS_EWG_AUTOCAL_0_FAST
@ TS_TCU_DOWNSHIFT_REQUEST
@ TS_EWG_AUTOCAL_0
@ TS_ETB_START_AUTOTUNE
@ TS_GRAB_PEDAL_WOT
@ TS_GRAB_TPS_OPEN
@ TS_SD_DELETE_REPORTS
@ COMMAND_X14_UNUSED_15
@ TS_ETB_AUTOCAL_1_FAST
@ TS_SET_STEPPER_IDLE
@ TS_EXTERNAL_TRIGGER_STIMULATOR_ENABLE
@ TS_WIDEBAND_UPDATE
void writeToFlashNow()
void setStepperHw()
Definition gm_sbc.cpp:15
void mc33810_req_init()
Definition mc33810.cpp:999
void sdCardRemoveReportFiles()
void sdCardRequestMode(SD_MODE mode)
@ SD_MODE_UNMOUNT
Definition mmc_card.h:21
@ SD_MODE_PC
Definition mmc_card.h:20
@ SD_MODE_ECU
Definition mmc_card.h:19
@ SD_MODE_FORMAT
Definition mmc_card.h:22
void startStopButtonToggle()
void tle8888_req_init()
Definition tle8888.cpp:1272
void estimateTorqueTable()
void grabPedalIsUp()
Definition tps.cpp:31
void grapTps1PrimaryIsClosed()
Definition tps.cpp:45
void grapTps1PrimaryIsOpen()
Definition tps.cpp:50
void grabPedalIsWideOpen()
Definition tps.cpp:39
void disableTriggerStimulator()
void enableExternalTriggerStimulator()
void enableTriggerStimulator(bool incGlobalConfiguration)

Referenced by executeTSCommand().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ hdAcrBench()

static void hdAcrBench ( int  index)
static

Definition at line 356 of file bench_test.cpp.

356 {
358 pinbench(BENCH_AC_RELAY_DURATION, 100.0, 1, pin);
359}
RegisteredOutputPin harleyAcr2
Definition efi_gpio.h:96
RegisteredNamedOutputPin harleyAcr
Definition efi_gpio.h:95
Single output pin reference and state.
Definition efi_output.h:49
brain_pin_e pin
Definition stm32_adc.cpp:15

Referenced by handleBenchCategory().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ hpfpValveBench()

static void hpfpValveBench ( )
static

Definition at line 294 of file bench_test.cpp.

Referenced by handleBenchCategory(), and initBenchTest().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ initBenchTest()

void initBenchTest ( )

Definition at line 862 of file bench_test.cpp.

862 {
863 addConsoleAction("fuelpumpbench", fuelPumpBench);
864 addConsoleActionF("fuelpumpbench2", fuelPumpBenchExt);
865
866 addConsoleActionFFF(CMD_FUEL_BENCH, fuelInjBench);
868
869 addConsoleActionFFF(CMD_SPARK_BENCH, sparkBench);
870 addConsoleActionFFFF("sparkbench2", sparkBenchExt);
871
873
874 addConsoleAction(CMD_AC_RELAY_BENCH, acRelayBench);
875
876 addConsoleAction(CMD_FAN_BENCH, fanBench);
877 addConsoleAction(CMD_FAN2_BENCH, fan2Bench);
878 addConsoleActionF("fanbench2", fanBenchExt);
879
880 addConsoleAction("mainrelaybench", mainRelayBench);
881
882#if EFI_CAN_SUPPORT
883#if EFI_WIDEBAND_FIRMWARE_UPDATE
884 addConsoleActionI("update_wideband", [](int hwIndex) { requestWidebandUpdate(hwIndex, false); });
885#endif // EFI_WIDEBAND_FIRMWARE_UPDATE
886 addConsoleActionII("set_wideband_index", [](int hwIndex, int index) { setWidebandOffset(hwIndex, index); });
887#endif // EFI_CAN_SUPPORT
888
889 addConsoleAction(CMD_STARTER_BENCH, starterRelayBench);
890 addConsoleAction(CMD_MIL_BENCH, milBench);
891 addConsoleAction(CMD_HPFP_BENCH, hpfpValveBench);
892
893#if EFI_CAN_SUPPORT
894 addConsoleActionI("ping_wideband", [](int index) {
895 pingWideband(index);
896 });
897#endif // EFI_CAN_SUPPORT
898
899#if EFI_LUA
900 // this commands facilitates TS Lua Button scripts development
901 addConsoleActionI("lua_button", [](int index) {
902 if (index < 0 || index > LUA_BUTTON_COUNT)
903 return;
904 luaCommandCounters[index - 1]++;
905 });
906 addConsoleActionFFFF("luabench2", [](float humanIndex, float onTime, float offTimeMs, float count) {
907 doRunBenchTestLuaOutput((int)humanIndex, onTime, offTimeMs, (int)count);
908 });
909#endif // EFI_LUA
910 instance.start();
912}
static void sparkBenchExt(float humanIndex, float onTime, float offTimeMs, float count)
static void sparkBench(float onTime, float offTimeMs, float count)
void onConfigurationChangeBenchTest()
static void fuelInjBench(float onTimeMs, float offTimeMs, float count)
static void tcuSolenoidBench(float humanIndex, float onTime, float offTimeMs, float count)
static BenchController instance
void addConsoleActionF(const char *token, VoidFloat callback)
void addConsoleAction(const char *token, Void callback)
Register console action without parameters.
void addConsoleActionII(const char *token, VoidIntInt callback)
Register a console command with two Integer parameters.
void addConsoleActionI(const char *token, VoidInt callback)
Register a console command with one Integer parameter.
void addConsoleActionFFFF(const char *token, VoidFloatFloatFloatFloat callback)
void addConsoleActionFFF(const char *token, VoidFloatFloatFloat callback)

Referenced by commonInitEngineController().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ isRunningBenchTest()

bool isRunningBenchTest ( )

Definition at line 40 of file bench_test.cpp.

40 {
41 return isRunningBench;
42}

Referenced by Engine::efiWatchdog(), FanController::onSlowCallback(), and FuelPumpController::onSlowCallback().

Here is the caller graph for this function:

◆ mainRelayBench()

static void mainRelayBench ( )
static

Definition at line 290 of file bench_test.cpp.

290 {
291 pinbench(BENCH_MAIN_RELAY_DURATION, 100.0, 1, &enginePins.mainRelay, true);
292}
RegisteredOutputPin mainRelay
Definition efi_gpio.h:76

Referenced by handleBenchCategory(), and initBenchTest().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ milBench()

void milBench ( )

we are blinking for 16 seconds so that one can click the button and walk around to see the light blinking

Definition at line 273 of file bench_test.cpp.

273 {
274 pinbench(500.0, 500.0, 16, &enginePins.checkEnginePin);
275}
RegisteredOutputPin checkEnginePin
Definition efi_gpio.h:118

Referenced by handleBenchCategory(), and initBenchTest().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ onConfigurationChangeBenchTest()

void onConfigurationChangeBenchTest ( )

Definition at line 847 of file bench_test.cpp.

847 {
848 // default values if configuration was not specified
851 }
852
855 }
856
859 }
860}

Referenced by incrementGlobalConfigurationVersion(), and initBenchTest().

Here is the caller graph for this function:

◆ pinbench()

static void pinbench ( float  ontimeMs,
float  offtimeMs,
int  iterations,
OutputPin pinParam,
bool  p_swapOnOff = false 
)
static

Definition at line 165 of file bench_test.cpp.

167{
168 globalOnTimeMs = ontimeMs;
169 globalOffTimeMs = offtimeMs;
170#if EFI_SIMULATOR
171 globalCount = maxI(2, iterations);
172#else
173 globalCount = iterations;
174#endif // EFI_SIMULATOR
175 pinX = pinParam;
176 swapOnOff = p_swapOnOff;
177 // let's signal bench thread to wake up
178 isBenchTestPending = true;
179 benchSemaphore.signal();
180}
static int globalCount
static float globalOnTimeMs
static volatile bool isBenchTestPending
static chibios_rt::CounterSemaphore benchSemaphore(0)
static float globalOffTimeMs
static bool swapOnOff
static OutputPin * pinX

Referenced by acRelayBench(), doRunBenchTestLuaOutput(), doRunFuelInjBench(), doRunSolenoidBench(), doRunSparkBench(), fan2Bench(), fanBenchExt(), fuelPumpBenchExt(), hdAcrBench(), hpfpValveBench(), mainRelayBench(), milBench(), starterRelayBench(), and vvtValveBench().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ processCanEcuControl()

void processCanEcuControl ( const CANRxFrame frame)

Definition at line 689 of file bench_test.cpp.

689 {
690 if (frame.data8[0] != (int)bench_test_magic_numbers_e::BENCH_HEADER) {
691 return;
692 }
693
694 int eid = CAN_EID(frame);
695 if (eid == (int)bench_test_packet_ids_e::ECU_SET_CALIBRATION) {
697 } else if (eid == (int)bench_test_packet_ids_e::ECU_REQ_CALIBRATION) {
699 } else if (eid == (int)bench_test_packet_ids_e::ECU_CAN_BUS_USER_CONTROL) {
701 }
702}
static void processCanRequestCalibration(const CANRxFrame &frame)
static void processCanSetCalibration(const CANRxFrame &frame)
static void processCanUserControl(const CANRxFrame &frame)
uint8_t data8[8]
Frame data.
Definition can_mocks.h:55

Referenced by processCanRxMessage().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ processCanRequestCalibration()

static void processCanRequestCalibration ( const CANRxFrame frame)
static

CANbus protocol to query scalar calibrations using hash keys

see fields_api.txt for well-known fields see generated_fields_api_header.h for corresponding hashes

Definition at line 669 of file bench_test.cpp.

669 {
670#if EFI_LUA_LOOKUP
671 int hash = getFourBytesLsb(frame, 2);
672 efiPrintf("processCanRequestCalibration=%x", hash);
673 FloatIntBytes fb;
674 fb.f = getConfigValueByHash(hash);
675
676 CanTxMessage msg(CanCategory::BENCH_TEST, (int)bench_test_packet_ids_e::ECU_GET_CALIBRATION, 8, /*bus*/0, /*isExtended*/true);
677 for (size_t i = 0;i<sizeof(float);i++) {
678 msg[4 + i] = fb.bytes[i];
679 }
680
681 fb.i = hash;
682 // first half of the packed is copy of that hash value so that recipients know what they are processing
683 for (size_t i = 0;i<sizeof(float);i++) {
684 msg[i] = fb.bytes[i];
685 }
686#endif // EFI_LUA_LOOKUP
687}
uint32_t getFourBytesLsb(const CANRxFrame &frame, int offset)
Definition can_rx.cpp:143
float getConfigValueByHash(const int hash)

Referenced by processCanEcuControl().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ processCanSetCalibration()

static void processCanSetCalibration ( const CANRxFrame frame)
static

Definition at line 659 of file bench_test.cpp.

659 {
660 // todo allow changes of scalar settings via CANbus
661 UNUSED(frame);
662}

Referenced by processCanEcuControl().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ processCanUserControl()

static void processCanUserControl ( const CANRxFrame frame)
static

for example to bench test injector 1 0x77000C 0x66 0x00 ?? ?? ?? ?? 0x77000C 0x66 0x00 0x14 0x00 0x09 0x00 start/stop engine

See also more complicated ISO-TP CANBus wrapper of complete TS protocol

Definition at line 646 of file bench_test.cpp.

646 {
647 // reserved data8[1]
648 uint16_t subsystem = getTwoBytesLsb(frame, 2);
649 uint16_t index = getTwoBytesLsb(frame, 4);
650 executeTSCommand(subsystem, index);
651}
void executeTSCommand(uint16_t subsystem, uint16_t index)
uint16_t getTwoBytesLsb(const CANRxFrame &frame, int offset)
Definition can_rx.cpp:150

Referenced by processCanEcuControl().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ requestWidebandUpdate()

static void requestWidebandUpdate ( int  hwIndex,
bool  fromFile 
)
static

Definition at line 309 of file bench_test.cpp.

310{
311 widebandUpdateHwId = hwIndex;
312 widebandUpdateFromFile = fromFile;
314 benchSemaphore.signal();
315}
static bool widebandUpdateFromFile
static bool widebandUpdatePending

Referenced by executeTSCommand(), handleCommandX14(), and initBenchTest().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ runBench()

static void runBench ( OutputPin output,
float  onTimeMs,
float  offTimeMs,
int  count,
bool  swapOnOff 
)
static

Definition at line 105 of file bench_test.cpp.

105 {
106 int onTimeUs = MS2US(std::max(0.1f, onTimeMs));
107 int offTimeUs = MS2US(std::max(0.1f, offTimeMs));
108
109 if (onTimeUs > TOO_FAR_INTO_FUTURE_US) {
110 firmwareError(ObdCode::CUSTOM_ERR_BENCH_PARAM, "onTime above limit %dus", TOO_FAR_INTO_FUTURE_US);
111 return;
112 }
113
114 efiPrintf("Running bench: ON_TIME=%d us OFF_TIME=%d us Counter=%d", onTimeUs, offTimeUs, count);
115 efiPrintf("output on %s", hwPortname(output->brainPin));
116
117 isRunningBench = true;
118 outputOnTheBenchTest = output;
119
120 for (int i = 0; isRunningBench && i < count; i++) {
122 efitick_t nowNt = getTimeNowNt();
123 // start in a short time so the scheduler can precisely schedule the start event
124 efitick_t startTime = nowNt + US2NT(50);
125 efitick_t endTime = startTime + US2NT(onTimeUs);
126
127 auto const bstartAction{ swapOnOff ? action_s::make<benchOff>(output) : action_s::make<benchOn>(output) };
128 auto const bendAction{ swapOnOff ? action_s::make<benchOn>(output) : action_s::make<benchOff>(output) };
129
130 // Schedule both events
131 engine->scheduler.schedule("bstart", &benchSchedStart, startTime, bstartAction);
132 engine->scheduler.schedule("bend", &benchSchedEnd, endTime, bendAction);
133
134 // Wait one full cycle time for the event + delay to happen
135 chThdSleepMicroseconds(onTimeUs + offTimeUs);
136 }
137 /* last */
139
140#if EFI_SIMULATOR
141 // save the current counters and durations after the test while the pin is still controlled
145#endif // EFI_SIMULATOR
146
147 efiPrintf("Done!");
148 outputOnTheBenchTest = nullptr;
149 isRunningBench = false;
150}
static scheduling_s benchSchedStart
static void benchOff(OutputPin *output)
static scheduling_s benchSchedEnd
static void benchOn(OutputPin *output)
SingleTimerExecutor scheduler
Definition engine.h:279
TunerStudioOutputChannels outputChannels
Definition engine.h:113
uint32_t durationsInStateMs[2]
Definition efi_output.h:81
int pinToggleCounter
Definition efi_output.h:76
brain_pin_e brainPin
Definition efi_output.h:86
void schedule(const char *msg, scheduling_s *scheduling, efitick_t timeNt, action_s const &action) override
Schedule an action to be executed in the future.
efitick_t getTimeNowNt()
Definition efitime.cpp:19
void firmwareError(ObdCode code, const char *fmt,...)
@ CUSTOM_ERR_BENCH_PARAM
const char * hwPortname(brain_pin_e brainPin)
Here is the call graph for this function:

◆ sparkBench()

static void sparkBench ( float  onTime,
float  offTimeMs,
float  count 
)
static

sparkbench 5 400 2 5 ms ON, 400 ms OFF, two times

Definition at line 246 of file bench_test.cpp.

246 {
247 sparkBenchExt(1, onTime, offTimeMs, count);
248}

Referenced by initBenchTest().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sparkBenchExt()

static void sparkBenchExt ( float  humanIndex,
float  onTime,
float  offTimeMs,
float  count 
)
static

sparkbench2 1 5 1000 2

Definition at line 238 of file bench_test.cpp.

238 {
239 doRunSparkBench((int)humanIndex, onTime, offTimeMs, (int)count);
240}

Referenced by initBenchTest(), and sparkBench().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ starterRelayBench()

void starterRelayBench ( )

Definition at line 277 of file bench_test.cpp.

277 {
278 pinbench(BENCH_STARTER_DURATION, 100.0, 1, &enginePins.starterControl);
279}
RegisteredOutputPin starterControl
Definition efi_gpio.h:82

Referenced by handleBenchCategory(), and initBenchTest().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ tcuSolenoidBench()

static void tcuSolenoidBench ( float  humanIndex,
float  onTime,
float  offTimeMs,
float  count 
)
static

solenoid #2, 1000ms ON, 1000ms OFF, repeat 3 times tcusolbench 2 1000 1000 3

Definition at line 254 of file bench_test.cpp.

254 {
255 doRunSolenoidBench((int)humanIndex, onTime, offTimeMs, (int)count);
256}

Referenced by initBenchTest().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ vvtValveBench()

static void vvtValveBench ( int  vvtIndex)
static

Definition at line 303 of file bench_test.cpp.

303 {
304#if EFI_VVT_PID
305 pinbench(BENCH_VVT_DURATION, 100.0, 1, getVvtOutputPin(vvtIndex));
306#endif // EFI_VVT_PID
307}
OutputPin * getVvtOutputPin(int index)
Definition vvt.cpp:153

Referenced by handleBenchCategory().

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ benchSchedEnd

scheduling_s benchSchedEnd
static

Definition at line 76 of file bench_test.cpp.

Referenced by runBench().

◆ benchSchedStart

scheduling_s benchSchedStart
static

Definition at line 75 of file bench_test.cpp.

Referenced by runBench().

◆ custom_board_ts_command

std::optional<setup_custom_board_ts_command_override_type> custom_board_ts_command

Definition at line 706 of file bench_test.cpp.

Referenced by executeTSCommand().

◆ globalCount

int globalCount
static

Definition at line 159 of file bench_test.cpp.

Referenced by pinbench().

◆ globalOffTimeMs

float globalOffTimeMs
static

Definition at line 158 of file bench_test.cpp.

Referenced by pinbench().

◆ globalOnTimeMs

float globalOnTimeMs
static

Definition at line 157 of file bench_test.cpp.

Referenced by pinbench().

◆ instance

BenchController instance
static

◆ isBenchTestPending

volatile bool isBenchTestPending = false
static

Definition at line 153 of file bench_test.cpp.

Referenced by pinbench().

◆ isRunningBench

bool isRunningBench = false
static

Definition at line 37 of file bench_test.cpp.

Referenced by cancelBenchTest(), isRunningBenchTest(), and runBench().

◆ luaCommandCounters

int luaCommandCounters[LUA_BUTTON_COUNT] = {}

Definition at line 362 of file bench_test.cpp.

362{};

Referenced by configureRusefiLuaHooks(), handleBenchCategory(), and initBenchTest().

◆ outputOnTheBenchTest

OutputPin* outputOnTheBenchTest = nullptr
static

Definition at line 38 of file bench_test.cpp.

Referenced by getOutputOnTheBenchTest(), and runBench().

◆ pinX

OutputPin* pinX
static

Definition at line 160 of file bench_test.cpp.

Referenced by pinbench().

◆ rebootForPresetPending

bool rebootForPresetPending
extern

◆ savedDurationsInStateMs

uint32_t savedDurationsInStateMs[2] = { 0, 0 }
static

Definition at line 80 of file bench_test.cpp.

80{ 0, 0 };

Referenced by getSavedBenchTestPinStates(), runBench(), and sendSavedBenchStatePackets().

◆ savedPinToggleCounter

int savedPinToggleCounter = 0
static

Definition at line 79 of file bench_test.cpp.

Referenced by getSavedBenchTestPinStates(), runBench(), and sendSavedBenchStatePackets().

◆ swapOnOff

bool swapOnOff = false
static

Definition at line 161 of file bench_test.cpp.

Referenced by pinbench(), and runBench().

◆ widebandUpdateFromFile

bool widebandUpdateFromFile = false
static

Definition at line 155 of file bench_test.cpp.

Referenced by requestWidebandUpdate().

◆ widebandUpdateHwId

uint8_t widebandUpdateHwId = 0
static

Definition at line 156 of file bench_test.cpp.

Referenced by executeTSCommand(), and requestWidebandUpdate().

◆ widebandUpdatePending

bool widebandUpdatePending = false
static

Definition at line 154 of file bench_test.cpp.

Referenced by requestWidebandUpdate().

Go to the source code of this file.