GCC Code Coverage Report


Directory: ./
File: firmware/controllers/algo/defaults/default_cranking.cpp
Date: 2025-10-03 00:57:22
Coverage Exec Excl Total
Lines: 100.0% 24 0 24
Functions: 100.0% 1 0 1
Branches: 100.0% 2 0 2
Decisions: 100.0% 2 - 2

Line Branch Decision Exec Source
1 #include "pch.h"
2
3 #include "defaults.h"
4 #include "table_helper.h"
5
6 586 void setDefaultCranking() {
7 586 engineConfiguration->cranking.rpm = 550;
8
9 // Fuel
10 586 engineConfiguration->crankingInjectionMode = IM_SIMULTANEOUS;
11
12 // Ignition
13 586 engineConfiguration->ignitionDwellForCrankingMs = DEFAULT_CRANKING_DWELL_MS;
14 586 engineConfiguration->crankingTimingAngle = DEFAULT_CRANKING_ANGLE;
15
16 // IAC
17 586 setArrayValues(config->cltCrankingCorr, 50);
18 // should be 100 once tune is better
19 586 setArrayValues(config->afterCrankingIACtaperDuration, 200);
20 586 setLinearCurve(config->afterCrankingIACtaperDurationBins, CLT_CURVE_RANGE_FROM, 100, 1);
21
22 586 engineConfiguration->isFasterEngineSpinUpEnabled = true;
23
24 // After start enrichment
25 #if !EFI_UNIT_TEST
26 // don't set this for unit tests, as it makes things more complicated to test
27 setLinearCurve(config->postCrankingCLTBins, /*from*/-20, /*to*/80, 20);
28 setLinearCurve(config->postCrankingDurationBins, /*from*/0, /*to*/150, 40);
29 setTable(config->postCrankingFactor, 1.2f);
30 #endif
31
32 586 setLinearCurve(config->crankingTpsCoef, /*from*/1, /*to*/1, 1);
33 586 setLinearCurve(config->crankingTpsBins, 0, 100, 1);
34
35 586 setLinearCurve(config->cltCrankingCorrBins, CLT_CURVE_RANGE_FROM, 100, 1);
36 586 setLinearCurve(config->cltCrankingCorr, 50, 50, 1); // now as % of idle valve/etb
37
38 #if CRANKING_CURVE_SIZE == 8
39 // Cranking temperature compensation
40 static const float crankingCoef[] = {
41 2.8,
42 2.2,
43 1.8,
44 1.55,
45 1.3,
46 1.1,
47 1.0,
48 1.0
49 };
50 586 copyArray(config->crankingFuelCoef, crankingCoef);
51 586 copyArray(config->crankingFuelCoefE100, crankingCoef);
52
53 // Deg C
54 static const float crankingBins[] = {
55 -20,
56 -10,
57 5,
58 20,
59 35,
60 50,
61 65,
62 90
63 };
64 586 copyArray(config->crankingFuelBins, crankingBins);
65 #endif
66 // Cranking cycle compensation
67
68 586 setTable(config->crankingCycleBaseFuel, 27.0f);
69 586 setLinearCurve(config->crankingCycleFuelCltBins, 0, 60, 1);
70
71 // X values are simply counting up cycle number starting at 1
72
2/2
✓ Branch 1 taken 4688 times.
✓ Branch 2 taken 586 times.
2/2
✓ Decision 'true' taken 4688 times.
✓ Decision 'false' taken 586 times.
5274 for (size_t i = 0; i < efi::size(config->crankingCycleBins); i++) {
73 4688 config->crankingCycleBins[i] = i + 1;
74 }
75
76 // Cranking ignition timing
77 586 setArrayValues(config->crankingAdvance, 0);
78
79 static const float advanceBins[] = { 0, 200, 400, 1000 };
80 586 copyArray(config->crankingAdvanceBins, advanceBins);
81
82 586 engineConfiguration->useTLE8888_cranking_hack = true;
83 586 }
84