Line | Branch | Decision | Exec | Source |
---|---|---|---|---|
1 | /** | |||
2 | * @file trigger_chrysler.cpp | |||
3 | * | |||
4 | * @date Mar 24, 2014 | |||
5 | * @author Andrey Belomutskiy, (c) 2012-2020 | |||
6 | */ | |||
7 | ||||
8 | #include "pch.h" | |||
9 | ||||
10 | #include "trigger_chrysler.h" | |||
11 | #include "trigger_universal.h" | |||
12 | ||||
13 | 2 | void initDodgeRam(TriggerWaveform *s) { | ||
14 | ||||
15 | 2 | s->initialize(FOUR_STROKE_CAM_SENSOR, SyncEdge::Rise); | ||
16 | ||||
17 | 2 | s->isSynchronizationNeeded = false; | ||
18 | ||||
19 | 2 | addSkippedToothTriggerEvents(TriggerWheel::T_SECONDARY, s, 8, 0, 0.06, -25, 360, 0, 720); | ||
20 | ||||
21 | 2 | s->addEvent720(360, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
22 | ||||
23 | 2 | addSkippedToothTriggerEvents(TriggerWheel::T_SECONDARY, s, 8, 0, 0.06, 360 - 25, 360, 0, 720); | ||
24 | ||||
25 | 2 | s->addEvent720(720, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
26 | 2 | } | ||
27 | ||||
28 | ✗ | void configureNeon2003TriggerWaveformCrank(TriggerWaveform *s) { | ||
29 | ✗ | s->initialize(FOUR_STROKE_CRANK_SENSOR, SyncEdge::RiseOnly); | ||
30 | ||||
31 | ✗ | s->setTriggerSynchronizationGap(3); | ||
32 | ||||
33 | ✗ | s->addEvent360(25, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
34 | ✗ | s->addEvent360(30, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
35 | ✗ | s->addEvent360(35, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
36 | ✗ | s->addEvent360(40, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
37 | ✗ | s->addEvent360(45, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
38 | ✗ | s->addEvent360(50, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
39 | ✗ | s->addEvent360(55, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
40 | ✗ | s->addEvent360(60, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
41 | ✗ | s->addEvent360(65, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
42 | ✗ | s->addEvent360(70, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
43 | ✗ | s->addEvent360(75, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
44 | ✗ | s->addEvent360(80, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
45 | ✗ | s->addEvent360(85, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
46 | ✗ | s->addEvent360(90, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
47 | ✗ | s->addEvent360(95, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
48 | ✗ | s->addEvent360(100, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
49 | ✗ | s->addEvent360(105, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
50 | ✗ | s->addEvent360(110, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
51 | ✗ | s->addEvent360(115, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
52 | ✗ | s->addEvent360(120, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
53 | ✗ | s->addEvent360(125, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
54 | ✗ | s->addEvent360(130, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
55 | ✗ | s->addEvent360(135, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
56 | ✗ | s->addEvent360(140, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
57 | ✗ | s->addEvent360(145,TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
58 | ✗ | s->addEvent360(150, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
59 | ✗ | s->addEvent360(155, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
60 | ✗ | s->addEvent360(160, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
61 | ✗ | s->addEvent360(165, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
62 | ✗ | s->addEvent360(170, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
63 | ✗ | s->addEvent360(175, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
64 | ✗ | s->addEvent360(180, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
65 | ✗ | s->addEvent360(185, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
66 | // gap 25 | |||
67 | ✗ | s->addEvent360(210, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
68 | ✗ | s->addEvent360(215, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
69 | ✗ | s->addEvent360(220, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
70 | ✗ | s->addEvent360(225, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
71 | ✗ | s->addEvent360(230, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
72 | ✗ | s->addEvent360(235, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
73 | ✗ | s->addEvent360(240, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
74 | ✗ | s->addEvent360(245, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
75 | ✗ | s->addEvent360(250, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
76 | ✗ | s->addEvent360(255, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
77 | ✗ | s->addEvent360(260, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
78 | ✗ | s->addEvent360(265, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
79 | ✗ | s->addEvent360(270, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
80 | ✗ | s->addEvent360(275, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
81 | ✗ | s->addEvent360(280, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
82 | ✗ | s->addEvent360(285, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
83 | ✗ | s->addEvent360(290, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
84 | ✗ | s->addEvent360(295, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
85 | ✗ | s->addEvent360(300, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
86 | ✗ | s->addEvent360(305, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
87 | ✗ | s->addEvent360(310, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
88 | ✗ | s->addEvent360(315, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
89 | ✗ | s->addEvent360(320, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
90 | ✗ | s->addEvent360(325, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
91 | ✗ | s->addEvent360(330, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
92 | ✗ | s->addEvent360(335, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
93 | ✗ | s->addEvent360(340, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
94 | ✗ | s->addEvent360(345, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
95 | ✗ | s->addEvent360(350, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
96 | ✗ | s->addEvent360(355, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
97 | ✗ | s->addEvent360(360, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
98 | ✗ | } | ||
99 | ||||
100 | 5 | void configureNeon2003TriggerWaveformCam(TriggerWaveform *s) { | ||
101 | // todo: move sync point so that two channel does not have false trigger issues | |||
102 | 5 | bool useOnlyPrimary = true; | ||
103 | ||||
104 | 5 | s->initialize(FOUR_STROKE_CAM_SENSOR, SyncEdge::Rise); | ||
105 | ||||
106 | 5 | s->tdcPosition = 496; | ||
107 | ||||
108 | /** | |||
109 | * ratio sequence is: | |||
110 | gap=2.17/1.46 | |||
111 | gap=0.33/2.17 | |||
112 | gap=1.06/0.33 | |||
113 | gap=2.73/1.06 | |||
114 | gap=0.47/2.73 | |||
115 | gap=0.71/0.47 | |||
116 | gap=1.43/0.71 | |||
117 | * | |||
118 | */ | |||
119 | ||||
120 | // these values only work well for 'useFronOnly' mode!!! | |||
121 | 5 | s->setTriggerSynchronizationGap2(0.75, 1.5); | ||
122 | 5 | s->setTriggerSynchronizationGap3(1, 0.65, 1.25); | ||
123 | ||||
124 | 5 | float EPS_ANGLE = 0.3; | ||
125 | ||||
126 | ||||
127 |
1/2✓ Branch 0 taken 5 times.
✗ Branch 1 not taken.
|
1/2✓ Decision 'true' taken 5 times.
✗ Decision 'false' not taken.
|
5 | if (useOnlyPrimary) { |
128 | 5 | s->addEvent720(144, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
129 | 5 | s->addEvent720(180, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
130 | ||||
131 | 5 | s->addEvent720(216, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
132 | 5 | s->addEvent720(252, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
133 | ||||
134 | 5 | s->addEvent720(288, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
135 | 5 | s->addEvent720(324, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
136 | ||||
137 | 5 | s->addEvent720(360, TriggerValue::RISE, TriggerWheel::T_PRIMARY); // width = 144 | ||
138 | 5 | s->addEvent720(504, TriggerValue::FALL, TriggerWheel::T_PRIMARY); // width = 36 | ||
139 | 5 | s->addEvent720(540, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
140 | 5 | s->addEvent720(576, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
141 | 5 | s->addEvent720(612, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
142 | 5 | s->addEvent720(648, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
143 | 5 | s->addEvent720(684, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
144 | 5 | s->addEvent720(720, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
145 | ||||
146 | } else { | |||
147 | /** | |||
148 | * 7 primary (four narrow + one wide + two narrow) | |||
149 | * 64 secondary (one wide + 15 narrow + 16 narrow + one wide + 15 narrow + 16 narrow) | |||
150 | * | |||
151 | */ | |||
152 | ||||
153 | ✗ | s->useOnlyPrimaryForSync = true; | ||
154 | ||||
155 | ✗ | s->addEvent720(25, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
156 | ✗ | s->addEvent720(30, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
157 | ✗ | s->addEvent720(35, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
158 | ✗ | s->addEvent720(40, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
159 | ✗ | s->addEvent720(45, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
160 | ✗ | s->addEvent720(50, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
161 | ✗ | s->addEvent720(55, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
162 | ✗ | s->addEvent720(60, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
163 | ✗ | s->addEvent720(65, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
164 | ✗ | s->addEvent720(70, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
165 | ✗ | s->addEvent720(75, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
166 | ✗ | s->addEvent720(80, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
167 | ✗ | s->addEvent720(85, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
168 | ✗ | s->addEvent720(90, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
169 | ✗ | s->addEvent720(95, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
170 | ✗ | s->addEvent720(100, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
171 | ✗ | s->addEvent720(105, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
172 | ✗ | s->addEvent720(110, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
173 | ✗ | s->addEvent720(115, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
174 | ✗ | s->addEvent720(120, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
175 | ✗ | s->addEvent720(125, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
176 | ✗ | s->addEvent720(130, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
177 | ✗ | s->addEvent720(135, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
178 | ✗ | s->addEvent720(140, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
179 | ||||
180 | ✗ | s->addEvent720(144, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
181 | ||||
182 | ✗ | s->addEvent720(145,TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
183 | ✗ | s->addEvent720(150, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
184 | ✗ | s->addEvent720(155, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
185 | ✗ | s->addEvent720(160, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
186 | ✗ | s->addEvent720(165, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
187 | ✗ | s->addEvent720(170, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
188 | ✗ | s->addEvent720(175, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
189 | ✗ | s->addEvent720(180 - EPS_ANGLE, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
190 | ||||
191 | ✗ | s->addEvent720(180, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
192 | ||||
193 | ✗ | s->addEvent720(185, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
194 | ✗ | s->addEvent720(210, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
195 | ✗ | s->addEvent720(215, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
196 | ||||
197 | ✗ | s->addEvent720(216, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
198 | ||||
199 | ✗ | s->addEvent720(220, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
200 | ✗ | s->addEvent720(225, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
201 | ✗ | s->addEvent720(230, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
202 | ✗ | s->addEvent720(235, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
203 | ✗ | s->addEvent720(240, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
204 | ✗ | s->addEvent720(245, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
205 | ✗ | s->addEvent720(250, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
206 | ||||
207 | ✗ | s->addEvent720(252, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
208 | ||||
209 | ✗ | s->addEvent720(255, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
210 | ||||
211 | ✗ | s->addEvent720(260, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
212 | ✗ | s->addEvent720(265, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
213 | ✗ | s->addEvent720(270, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
214 | ✗ | s->addEvent720(275, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
215 | ✗ | s->addEvent720(280, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
216 | ✗ | s->addEvent720(285, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
217 | ||||
218 | ✗ | s->addEvent720(288, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
219 | ||||
220 | ✗ | s->addEvent720(290, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
221 | ✗ | s->addEvent720(295, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
222 | ✗ | s->addEvent720(300, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
223 | ✗ | s->addEvent720(305, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
224 | ✗ | s->addEvent720(310, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
225 | ✗ | s->addEvent720(315, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
226 | ✗ | s->addEvent720(320, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
227 | ||||
228 | ✗ | s->addEvent720(324, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
229 | ||||
230 | ✗ | s->addEvent720(325, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
231 | ✗ | s->addEvent720(330, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
232 | ✗ | s->addEvent720(335, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
233 | ✗ | s->addEvent720(340, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
234 | ✗ | s->addEvent720(345, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
235 | ✗ | s->addEvent720(350, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
236 | ✗ | s->addEvent720(355, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
237 | ✗ | s->addEvent720(360 - EPS_ANGLE, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
238 | ||||
239 | ✗ | s->addEvent720(360, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
240 | ||||
241 | ✗ | s->addEvent720(385, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
242 | ✗ | s->addEvent720(390, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
243 | ✗ | s->addEvent720(395, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
244 | ✗ | s->addEvent720(400, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
245 | ✗ | s->addEvent720(405, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
246 | ✗ | s->addEvent720(410, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
247 | ✗ | s->addEvent720(415, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
248 | ✗ | s->addEvent720(420, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
249 | ✗ | s->addEvent720(425, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
250 | ✗ | s->addEvent720(430, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
251 | ✗ | s->addEvent720(435, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
252 | ✗ | s->addEvent720(440, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
253 | ✗ | s->addEvent720(445, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
254 | ✗ | s->addEvent720(450, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
255 | ✗ | s->addEvent720(455, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
256 | ✗ | s->addEvent720(460, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
257 | ✗ | s->addEvent720(465, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
258 | ✗ | s->addEvent720(470, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
259 | ✗ | s->addEvent720(475, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
260 | ✗ | s->addEvent720(480, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
261 | ✗ | s->addEvent720(485, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
262 | ✗ | s->addEvent720(490, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
263 | ✗ | s->addEvent720(495, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
264 | ✗ | s->addEvent720(500, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
265 | ||||
266 | ✗ | s->addEvent720(504, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
267 | ||||
268 | ✗ | s->addEvent720(505, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
269 | ✗ | s->addEvent720(510, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
270 | ✗ | s->addEvent720(515, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
271 | ✗ | s->addEvent720(520, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
272 | ✗ | s->addEvent720(525, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
273 | ✗ | s->addEvent720(530, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
274 | ✗ | s->addEvent720(535, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
275 | ✗ | s->addEvent720(540 - EPS_ANGLE, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
276 | ||||
277 | ✗ | s->addEvent720(540, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
278 | ||||
279 | ✗ | s->addEvent720(545, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
280 | ✗ | s->addEvent720(570, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
281 | ✗ | s->addEvent720(575, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
282 | ||||
283 | ✗ | s->addEvent720(576, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
284 | ✗ | s->addEvent720(580, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
285 | ✗ | s->addEvent720(585, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
286 | ✗ | s->addEvent720(590, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
287 | ✗ | s->addEvent720(595, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
288 | ✗ | s->addEvent720(600, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
289 | ✗ | s->addEvent720(605, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
290 | ✗ | s->addEvent720(610, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
291 | ||||
292 | ✗ | s->addEvent720(612, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
293 | ✗ | s->addEvent720(615, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
294 | ✗ | s->addEvent720(620, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
295 | ✗ | s->addEvent720(625, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
296 | ✗ | s->addEvent720(630, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
297 | ✗ | s->addEvent720(635, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
298 | ✗ | s->addEvent720(640, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
299 | ✗ | s->addEvent720(645, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
300 | ||||
301 | ✗ | s->addEvent720(648, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
302 | ✗ | s->addEvent720(650, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
303 | ✗ | s->addEvent720(655, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
304 | ✗ | s->addEvent720(660, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
305 | ✗ | s->addEvent720(665, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
306 | ✗ | s->addEvent720(670, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
307 | ✗ | s->addEvent720(675, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
308 | ✗ | s->addEvent720(680, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
309 | ||||
310 | ✗ | s->addEvent720(684, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
311 | ✗ | s->addEvent720(685, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
312 | ✗ | s->addEvent720(690, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
313 | ✗ | s->addEvent720(695, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
314 | ✗ | s->addEvent720(700, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
315 | ✗ | s->addEvent720(705, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
316 | ✗ | s->addEvent720(710, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
317 | ✗ | s->addEvent720(715, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
318 | ✗ | s->addEvent720(720 - EPS_ANGLE, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
319 | ✗ | s->addEvent720(720, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
320 | } | |||
321 | 5 | } | ||
322 | ||||
323 | 1 | void configureDodgeStratusTriggerWaveform(TriggerWaveform *s) { | ||
324 | 1 | s->initialize(FOUR_STROKE_CAM_SENSOR, SyncEdge::RiseOnly); | ||
325 | 1 | s->tdcPosition = 150; | ||
326 | ||||
327 | 1 | float w = 7; | ||
328 | 1 | float g = 20; | ||
329 | 1 | s->setTriggerSynchronizationGap2(CHRYSLER_NGC6_GAP - 0.25, | ||
330 | CHRYSLER_NGC6_GAP + 0.4); | |||
331 | ||||
332 | 1 | float base = 0; | ||
333 | // 2 teeth | |||
334 | 1 | float angle = base + 120.0 - w; | ||
335 | 1 | s->addEvent720(angle, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
336 | 1 | s->addEvent720(angle + w, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
337 | 1 | angle += g; | ||
338 | 1 | s->addEvent720(angle, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
339 | 1 | s->addEvent720(angle + w, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
340 | ||||
341 | 1 | base += 120; | ||
342 | // 3 teeth | |||
343 | 1 | angle = base + 120.0 - w; | ||
344 | 1 | s->addEvent720(angle, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
345 | 1 | s->addEvent720(angle + w, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
346 | 1 | angle += g; | ||
347 | 1 | s->addEvent720(angle, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
348 | 1 | s->addEvent720(angle + w, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
349 | 1 | angle += g; | ||
350 | 1 | s->addEvent720(angle, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
351 | 1 | s->addEvent720(angle + w, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
352 | ||||
353 | 1 | base += 120; | ||
354 | // 2 teeth | |||
355 | 1 | angle = base + 120.0 - w; | ||
356 | 1 | s->addEvent720(angle, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
357 | 1 | s->addEvent720(angle + w, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
358 | 1 | angle += g; | ||
359 | 1 | s->addEvent720(angle, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
360 | 1 | s->addEvent720(angle + w, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
361 | ||||
362 | 1 | base += 120; | ||
363 | // just one | |||
364 | 1 | angle = base + 120.0 - w; | ||
365 | 1 | s->addEvent720(angle, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
366 | 1 | s->addEvent720(angle + w, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
367 | ||||
368 | 1 | base += 120; | ||
369 | // 3 teeth | |||
370 | 1 | angle = base + 120.0 - w; | ||
371 | 1 | s->addEvent720(angle, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
372 | 1 | s->addEvent720(angle + w, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
373 | 1 | angle += g; | ||
374 | 1 | s->addEvent720(angle, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
375 | 1 | s->addEvent720(angle + w, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
376 | 1 | angle += g; | ||
377 | 1 | s->addEvent720(angle, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
378 | 1 | s->addEvent720(angle + w, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
379 | ||||
380 | 1 | base += 120; | ||
381 | // just one again | |||
382 | 1 | angle = base + 120.0 - w; | ||
383 | 1 | s->addEvent720(angle, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
384 | 1 | s->addEvent720(angle + w, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
385 | 1 | } | ||
386 | ||||
387 | 6 | void configureNeon1995TriggerWaveformOnlyCrank(TriggerWaveform *s) { | ||
388 | 6 | s->initialize(FOUR_STROKE_CRANK_SENSOR, SyncEdge::Rise); | ||
389 | ||||
390 | // Nominal gap 3.25 | |||
391 | 6 | s->setTriggerSynchronizationGap3(0, 1.6, 4.5); | ||
392 | ||||
393 | // Nominal gap 1.0 | |||
394 | 6 | s->setTriggerSynchronizationGap3(1, 0.5, 1.5); | ||
395 | 6 | s->setTriggerSynchronizationGap3(2, 0.5, 1.5); | ||
396 | ||||
397 | // Nominal gap 0.168 | |||
398 | 6 | s->setTriggerSynchronizationGap3(3, 0.1, 0.3); | ||
399 | ||||
400 | 6 | s->tdcPosition = 279; | ||
401 | ||||
402 | // voodoo magic - we always need 720 at the end | |||
403 | 6 | int base = 59; | ||
404 | ||||
405 | 6 | s->addEvent360(base + 0, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
406 | 6 | s->addEvent360(base + 60, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
407 | 6 | s->addEvent360(base + 75, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
408 | 6 | s->addEvent360(base + 82, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
409 | 6 | s->addEvent360(base + 96, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
410 | 6 | s->addEvent360(base + 102, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
411 | 6 | s->addEvent360(base + 116, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
412 | 6 | s->addEvent360(base + 122, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
413 | ||||
414 | 6 | s->addEvent360(base + 235, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
415 | 6 | s->addEvent360(base + 242, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
416 | 6 | s->addEvent360(base + 255, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
417 | 6 | s->addEvent360(base + 261, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
418 | 6 | s->addEvent360(base + 275, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
419 | 6 | s->addEvent360(base + 281, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
420 | 6 | s->addEvent360(base + 295, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
421 | 6 | s->addEvent360(base + 301, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
422 | 6 | } | ||
423 | ||||
424 | 1 | void initJeep18_2_2_2(TriggerWaveform *s) { | ||
425 | 1 | s->initialize(FOUR_STROKE_CAM_SENSOR, SyncEdge::RiseOnly); | ||
426 | 1 | s->isSynchronizationNeeded = false; | ||
427 | 1 | s->tdcPosition = 581; | ||
428 | ||||
429 | 1 | float off = 212; | ||
430 | ||||
431 | 1 | s->addEvent720(534 - 720 + off, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
432 | 1 | s->addEvent720(536 - 720 + off, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
433 | 1 | s->addEvent720(554 - 720 + off, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
434 | 1 | s->addEvent720(556 - 720 + off, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
435 | 1 | s->addEvent720(574 - 720 + off, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
436 | 1 | s->addEvent720(576 - 720 + off, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
437 | 1 | s->addEvent720(594 - 720 + off, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
438 | 1 | s->addEvent720(596 - 720 + off, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
439 | ||||
440 | 1 | s->addEvent720(654 - 720 + off, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
441 | 1 | s->addEvent720(656 - 720 + off, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
442 | 1 | s->addEvent720(674 - 720 + off, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
443 | 1 | s->addEvent720(676 - 720 + off, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
444 | 1 | s->addEvent720(694 - 720 + off, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
445 | 1 | s->addEvent720(696 - 720 + off, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
446 | 1 | s->addEvent720(714 - 720 + off, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
447 | 1 | s->addEvent720(716 - 720 + off, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
448 | ||||
449 | ||||
450 | 1 | s->addEvent720(54 + off, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
451 | 1 | s->addEvent720(56 + off, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
452 | 1 | s->addEvent720(74 + off, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
453 | 1 | s->addEvent720(76 + off, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
454 | 1 | s->addEvent720(94 + off, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
455 | 1 | s->addEvent720(96 + off, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
456 | 1 | s->addEvent720(114 + off, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
457 | 1 | s->addEvent720(116 + off, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
458 | ||||
459 | 1 | s->addEvent720(148 + off, TriggerValue::RISE, TriggerWheel::T_PRIMARY); // 360 | ||
460 | ||||
461 | 1 | s->addEvent720(174 + off, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
462 | 1 | s->addEvent720(176 + off, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
463 | 1 | s->addEvent720(194 + off, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
464 | 1 | s->addEvent720(196 + off, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
465 | 1 | s->addEvent720(214 + off, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
466 | 1 | s->addEvent720(216 + off, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
467 | 1 | s->addEvent720(234 + off, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
468 | 1 | s->addEvent720(236 + off, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
469 | ||||
470 | 1 | s->addEvent720(294 + off, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
471 | 1 | s->addEvent720(296 + off, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
472 | 1 | s->addEvent720(314 + off, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
473 | 1 | s->addEvent720(316 + off, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
474 | 1 | s->addEvent720(334 + off, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
475 | 1 | s->addEvent720(336 + off, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
476 | 1 | s->addEvent720(354 + off, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
477 | 1 | s->addEvent720(356 + off, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
478 | ||||
479 | 1 | s->addEvent720(414 + off, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
480 | 1 | s->addEvent720(416 + off, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
481 | 1 | s->addEvent720(434 + off, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
482 | 1 | s->addEvent720(436 + off, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
483 | 1 | s->addEvent720(454 + off, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
484 | 1 | s->addEvent720(456 + off, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
485 | 1 | s->addEvent720(474 + off, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
486 | 1 | s->addEvent720(476 + off, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
487 | ||||
488 | 1 | s->addEvent720(508 + off, TriggerValue::FALL, TriggerWheel::T_PRIMARY); // 720 | ||
489 | ||||
490 | 1 | } | ||
491 | ||||
492 | 4 | static void add4cylblock(int off, TriggerWaveform *s) { | ||
493 | 4 | s->addEvent720(114 + off, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
494 | 4 | s->addEvent720(114 + off + 2, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
495 | ||||
496 | 4 | s->addEvent720(134 + off, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
497 | 4 | s->addEvent720(134 + off + 2, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
498 | ||||
499 | 4 | s->addEvent720(154 + off, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
500 | 4 | s->addEvent720(154 + off + 2, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
501 | ||||
502 | 4 | s->addEvent720(174 + off, TriggerValue::RISE, TriggerWheel::T_SECONDARY); | ||
503 | 4 | s->addEvent720(174 + off + 2, TriggerValue::FALL, TriggerWheel::T_SECONDARY); | ||
504 | 4 | } | ||
505 | ||||
506 | // TT_JEEP_4_CYL | |||
507 | 1 | void initJeep_XJ_4cyl_2500(TriggerWaveform *s) { | ||
508 | 1 | s->initialize(FOUR_STROKE_CAM_SENSOR, SyncEdge::RiseOnly); | ||
509 | 1 | s->isSynchronizationNeeded = false; | ||
510 | 1 | s->tdcPosition = 720 - 236; | ||
511 | ||||
512 | 1 | float offset = 124; | ||
513 | ||||
514 | 1 | add4cylblock(offset - 180, s); | ||
515 | 1 | add4cylblock(offset, s); | ||
516 | ||||
517 | 1 | s->addEvent720(236 + offset, TriggerValue::RISE, TriggerWheel::T_PRIMARY); // 360 | ||
518 | ||||
519 | 1 | add4cylblock(offset + 180, s); | ||
520 | 1 | add4cylblock(offset + 360, s); | ||
521 | ||||
522 | 1 | s->addEvent720(596 + offset, TriggerValue::FALL, TriggerWheel::T_PRIMARY); // 720 | ||
523 | ||||
524 | 1 | } | ||
525 | ||||
526 | 1 | void configureChryslerNGC_36_2_2(TriggerWaveform *s) { | ||
527 | 1 | s->initialize(FOUR_STROKE_CAM_SENSOR, SyncEdge::RiseOnly); | ||
528 | ||||
529 | 1 | float wide = 30 * 2; | ||
530 | 1 | float narrow = 10 * 2; | ||
531 | ||||
532 | 1 | s->setTriggerSynchronizationGap(3.5); | ||
533 |
2/2✓ Branch 0 taken 14 times.
✓ Branch 1 taken 1 time.
|
2/2✓ Decision 'true' taken 14 times.
✓ Decision 'false' taken 1 time.
|
15 | for (int i = 1; i < 15; i++) { |
534 | 14 | s->setTriggerSynchronizationGap4(/*gapIndex*/i, 1); | ||
535 | } | |||
536 | 1 | s->setTriggerSynchronizationGap4(/*gapIndex*/15, 0.4); | ||
537 | ||||
538 | 1 | float base = 0; | ||
539 | ||||
540 |
2/2✓ Branch 0 taken 14 times.
✓ Branch 1 taken 1 time.
|
2/2✓ Decision 'true' taken 14 times.
✓ Decision 'false' taken 1 time.
|
15 | for (int i = 0; i < 14; i++) { |
541 | 14 | s->addEventAngle(base + narrow / 2, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
542 | 14 | s->addEventAngle(base + narrow, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
543 | 14 | base += narrow; | ||
544 | } | |||
545 | ||||
546 | 1 | s->addEventAngle(base + narrow / 2, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
547 | 1 | base += narrow / 2; | ||
548 | 1 | s->addEventAngle(base + wide, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
549 | 1 | base += wide; | ||
550 | ||||
551 |
2/2✓ Branch 0 taken 16 times.
✓ Branch 1 taken 1 time.
|
2/2✓ Decision 'true' taken 16 times.
✓ Decision 'false' taken 1 time.
|
17 | for (int i = 0; i < 16; i++) { |
552 | 16 | s->addEventAngle(base + narrow / 2, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
553 | 16 | s->addEventAngle(base + narrow, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
554 | 16 | base += narrow; | ||
555 | } | |||
556 | ||||
557 | // one small tooth at the end of the engine cycle | |||
558 | 1 | s->addEventAngle(s->getCycleDuration() - narrow / 2, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
559 | 1 | s->addEventAngle(s->getCycleDuration(), TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
560 | 1 | } | ||
561 | ||||
562 | 3 | void configureJeepEVD_36_2_2(TriggerWaveform *s) { | ||
563 | 3 | s->initialize(FOUR_STROKE_CRANK_SENSOR, SyncEdge::RiseOnly); | ||
564 | ||||
565 | 3 | float wide = 15 * 2; | ||
566 | 3 | float narrow = 5 * 2; | ||
567 | ||||
568 | /* Last falling edge before big gap */ | |||
569 | 3 | s->tdcPosition = 13.5 * narrow; | ||
570 | ||||
571 | 3 | s->setTriggerSynchronizationGap3(/*gapIndex*/0, 0.2, 0.6); | ||
572 | 3 | s->setTriggerSynchronizationGap3(/*gapIndex*/1, 2.2, 3.8); | ||
573 | ||||
574 |
2/2✓ Branch 0 taken 45 times.
✓ Branch 1 taken 3 times.
|
2/2✓ Decision 'true' taken 45 times.
✓ Decision 'false' taken 3 times.
|
48 | for (int i = 2; i < 17; i++) { |
575 | 45 | s->setTriggerSynchronizationGap3(/*gapIndex*/i, 0.7, 1.6); | ||
576 | } | |||
577 | ||||
578 | /* Starting with big gap */ | |||
579 | 3 | float base = wide - narrow / 2; | ||
580 | ||||
581 |
2/2✓ Branch 0 taken 48 times.
✓ Branch 1 taken 3 times.
|
2/2✓ Decision 'true' taken 48 times.
✓ Decision 'false' taken 3 times.
|
51 | for (int i = 0; i < 16; i++) { |
582 | 48 | s->addEventAngle(base, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
583 | 48 | s->addEventAngle(base + narrow / 2, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
584 | 48 | base += narrow; | ||
585 | } | |||
586 | ||||
587 | /* Big tooth */ | |||
588 | 3 | s->addEventAngle(base, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
589 | 3 | s->addEventAngle(base + wide - narrow / 2, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
590 | 3 | base += wide; | ||
591 | ||||
592 |
2/2✓ Branch 0 taken 45 times.
✓ Branch 1 taken 3 times.
|
2/2✓ Decision 'true' taken 45 times.
✓ Decision 'false' taken 3 times.
|
48 | for (int i = 0; i < 15; i++) { |
593 | 45 | s->addEventAngle(base, TriggerValue::RISE, TriggerWheel::T_PRIMARY); | ||
594 | 45 | s->addEventAngle(base + narrow / 2, TriggerValue::FALL, TriggerWheel::T_PRIMARY); | ||
595 | 45 | base += narrow; | ||
596 | } | |||
597 | 3 | } | ||
598 | ||||
599 | 1 | void configureChryslerVtt15(TriggerWaveform *s) { | ||
600 | 1 | s->initialize(FOUR_STROKE_CAM_SENSOR, SyncEdge::RiseOnly); | ||
601 | 1 | int width = 5; | ||
602 | ||||
603 | 1 | s->addToothRiseFall(37 + width, width); | ||
604 | 1 | s->addToothRiseFall(47 + width, width); | ||
605 | ||||
606 | 1 | s->addToothRiseFall(81 + width, width); | ||
607 | 1 | s->addToothRiseFall(93 + width, width); | ||
608 | 1 | s->addToothRiseFall(105 + width, width); | ||
609 | ||||
610 | 1 | s->addToothRiseFall(129 + width, width); | ||
611 | 1 | s->addToothRiseFall(139 + width, width); | ||
612 | ||||
613 | 1 | s->addToothRiseFall(174 + width, width); | ||
614 | 1 | s->addToothRiseFall(186 + width, width); | ||
615 | ||||
616 | 1 | s->addToothRiseFall(211 + width, width); | ||
617 | ||||
618 | 1 | s->addToothRiseFall(265 + width, width); | ||
619 | 1 | s->addToothRiseFall(276 + width, width); | ||
620 | 1 | s->addToothRiseFall(286 + width, width); | ||
621 | ||||
622 | 1 | s->addToothRiseFall(309 + width, width); | ||
623 | ||||
624 | 1 | s->addToothRiseFall(360, width); | ||
625 | ||||
626 | 1 | s->setTriggerSynchronizationGap4(/*gapIndex*/0, 2.16); | ||
627 | 1 | s->setTriggerSynchronizationGap4(/*gapIndex*/1, 2.08); | ||
628 | 1 | s->setTriggerSynchronizationGap4(/*gapIndex*/2, 0.34); | ||
629 | 1 | } | ||
630 |