Apollo 10.0
自动驾驶开放平台
neolix_edu.proto
浏览该文件的文档.
1syntax = "proto2";
2
3package apollo.canbus;
4
6
8 // Report Message
9 // 0x00:read only;0x01:brake enable [] [0|1]
10 optional int32 aeb_state = 1;
11 // 0x00:off;0x01:on [] [0|1]
12 optional bool aeb_brakestate = 2;
13 // 0x0:Nomal;0x1:Level 1;0x2:Level 2;0x3:Level 3;0x4:Level 4;0x5:Level
14 // 5;0x6:Reserved;0x7:Reserved [] [0|5]
15 optional int32 faultrank = 3;
16 // [] [0|120]
17 optional int32 currenttemperature = 4;
18 // 0x0:Normal;0x1:ActivateBrake [] [0|1]
19 optional bool pas_f1_stop = 5;
20 // 0x0:Normal;0x1:ActivateBrake [] [0|1]
21 optional bool pas_f2_stop = 6;
22 // 0x0:Normal;0x1:ActivateBrake [] [0|1]
23 optional bool pas_f3_stop = 7;
24 // 0x0:Normal;0x1:ActivateBrake [] [0|1]
25 optional bool pas_f4_stop = 8;
26 // 0x0:Normal;0x1:ActivateBrake [] [0|1]
27 optional bool pas_b1_stop = 9;
28 // 0x0:Normal;0x1:ActivateBrake [] [0|1]
29 optional bool pas_b2_stop = 10;
30 // 0x0:Normal;0x1:ActivateBrake [] [0|1]
31 optional bool pas_b3_stop = 11;
32 // 0x0:Normal;0x1:ActivateBrake [] [0|1]
33 optional bool pas_b4_stop = 12;
34 // [] [0|15]
35 optional int32 aeb_livecounter_rear = 13;
36 // [bit] [0|255]
37 optional int32 aeb_cheksum = 14;
38}
39
41 // Report Message
42 // 0x0: no error;0x1: level 1 error;0x2: level 2 error;0x3: level 3 error;0x4:
43 // level 4 error;0x5: level 5 error [] [0|0]
44 optional int32 vehicle_error_indicationsvcu = 1;
45 // 0x0: no error;0x1: level 1 error;0x2: level 2 error;0x3: level 3 error;0x4:
46 // level 4 error;0x5: level 5 error [] [0|0]
47 optional int32 brake_system_errorehb = 2;
48 // 0x0: no error;0x1: level 1 error;0x2: level 2 error;0x3: level 3 error;0x4:
49 // level 4 error;0x5: level 5 error [] [0|0]
50 optional int32 eps_error = 3;
51 // 0x0: no error;0x1: level 1 error;0x2: level 2 error;0x3: level 3 error;0x4:
52 // level 4 error;0x5: level 5 error [] [0|0]
53 optional int32 motor_error = 4;
54 // 0x0: no error;0x1: level 1 error;0x2: level 2 error;0x3: level 3 error;0x4:
55 // level 4 error;0x5: level 5 error [] [0|0]
56 optional int32 epb_error = 5;
57 // 0x0: no error;0x1: level 1 error;0x2: level 2 error;0x3: level 3 error;0x4:
58 // level 4 error;0x5: level 5 error [] [0|0]
59 optional int32 high_voltage_battery_errorbcu = 6;
60 // 0x0:Normal;0x1:Failure [] [0|0]
61 optional bool automode_exit_reason_losscommuni = 7;
62 // 0x0:Normal;0x1:Failure [] [0|0]
63 optional bool automode_exit_reason_reqsignalno = 8;
64 // 0x0:Normal;0x1:Failure [] [0|0]
65 optional bool automode_exit_reason_low_power = 9;
66 // 0x0:Normal;0x1:Failure [] [0|0]
67 optional bool automode_exit_reason_highvolt = 10;
68 // 0x0:Normal;0x1:Failure [] [0|0]
69 optional bool automode_exit_reason_vehicle_flt = 11;
70 // 0x0:Normal;0x1:Failure [] [0|0]
71 optional bool automode_exit_reason_press_emerg = 12;
72 // 0x0:Normal;0x1:Failure [] [0|0]
73 optional bool automode_exit_reason_press_remot = 13;
74 // 0x0:Normal;0x1:Failure [] [0|0]
75 optional bool automode_exit_reason_pdu_control = 14;
76 // [] [0|0]
77 optional int32 vcu_faultrept_alivecounter = 15;
78 // [] [0|0]
79 optional int32 vcu_faultrept_checksum = 16;
80}
81
83 // Report Message
84 // 0x0:OFF;0x1:IG_ON;0x2:Power_ON;0x3:Auto_ON;0x4:Reserved;0x5:Reserved;0x6:Reserved;0x7:Reserved
85 // [bit] [0|7]
86 optional int32 vcu_powermode = 1;
87 // 0x0:Not Available;0x1:Invalid;0x2:Valid;0x3:Reserved [bit] [0|3]
88 optional int32 vcu_powermodevalid = 2;
89 // 0x0:NotActivate;0x1:Activate [bit] [0|1]
90 optional bool replacebatterystateindication = 3;
91 // 0x0:Normal AEB;0x1:Forbidden [bit] [0|1]
92 optional bool forbidden_aeb_signal = 4;
93 // [A] [-400|910.68]
94 optional double bcu_chargedischargecurrent = 5;
95 // [V] [0|655.35]
96 optional double bcu_batt_internalvoltage = 6;
97 // [bit] [0|15]
98 optional int32 vcu_driverinfo_alivecounter = 7;
99 // [bit] [0|255]
100 optional int32 vcu_driverinfo_checksum = 8;
101}
102
104 // Control Message
105 // 0x0:disable ;0x1:enable [bit] [0|1]
106 optional bool turn_right_light_command = 1;
107 // 0x0:disable ;0x1:enable ;0x2-0x3:Reserved [bit] [0|1]
108 optional bool turn_left_light_command = 2;
109 // [bit] [0|1]
110 optional bool horn_command = 3;
111 // 0x0:Off;0x1:LowBeam;0x2:HighBeam [bit] [0|1]
112 optional int32 beam_command = 4;
113 // [] [0|0]
114 optional int32 auto_drivercmd_alivecounter = 5;
115 // [] [0|0]
116 optional int32 auto_drivercmd_checksum = 6;
117}
118
120 // Control Message
121 // 0x0:disable ;0x1:enable [] [0|0]
122 optional bool drive_enable = 1;
123 // [] [0|0]
124 optional int32 auto_brake_command = 2;
125 // 0x0:Release ;0x1:Apply [] [0|0]
126 optional bool auto_parking_command = 3;
127 // 0x0:off;0x1:on [] [0|0]
128 optional bool epb_rampauxiliarycommand = 4;
129 // [] [0|0]
130 optional int32 auto_drivercmd_alivecounter = 5;
131 // [] [0|0]
132 optional int32 auto_drivercmd_checksum = 6;
133}
134
136 // Report Message
138 CONTROL_MODE_RESP_STANDBY = 0;
139 CONTROL_MODE_RESP_AUTO_DRIVE = 1;
140 CONTROL_MODE_RESP_NET_DRIVE = 2;
141 CONTROL_MODE_RESP_REMOTE_CONTROL = 3;
142 CONTROL_MODE_RESP_EMERGENCY_BRAKE = 4;
143 }
145 VCU_EHB_NORMAL_BRAKE = 0;
146 VCU_EHB_BACKUP_REMOTE_BRAKE = 1;
147 VCU_EHB_EMERGENCY_BUTTON_BRAKE = 2;
148 VCU_EHB_ULTR_BRAKE = 3;
149 VCU_EHB_BUMPER_BRAKE = 4;
150 }
151 // 0x0:disable;0x1:enable [] [0|0]
152 optional bool brake_enable_resp = 1;
153 // 0x0:Standby;0x1:auto drive;0x2:net drive;0x3:remote control;0x4:emergency
154 // brake;0x5~0x7:Reserved [bit] [0|7]
155 optional Control_mode_respType control_mode_resp = 2;
156 // 0x0:disable;0x1:enable [] [0|0]
157 optional bool vcu_real_brake_valid = 3;
158 // [] [0|0]
159 optional int32 vcu_real_brake = 4;
160 // 0x0:EPB_Released;0x1:EPB_Applied;0x2:EPB_Releasing;0x3:EPB_Fault;0x4:EPB_Applying
161 // [] [0|0]
162 optional int32 vcu_real_parking_status = 5;
163 // 0x0:disable;0x1:enable [] [0|0]
164 optional bool vcu_real_parking_valid = 6;
165 // 0x0:off;0x1:on [] [0|0]
166 optional bool rampauxiliaryindication = 7;
167 // [°] [0|45]
168 optional double vehicleslope = 8;
169 // [] [0|0]
170 optional int32 vcu_brakerept_alivecounter = 9;
171 // [] [0|0]
172 optional int32 vcu_brakerept_checksum = 10;
173 // []
174 optional Vcu_ehb_brakeType vcu_ehb_brake_state = 11;
175}
176
178 // Report Message
180 CONTROL_MODE_RESP_STANDBY = 0;
181 CONTROL_MODE_RESP_AUTO_DRIVE = 1;
182 CONTROL_MODE_RESP_NET_DRIVE = 2;
183 CONTROL_MODE_RESP_REMOTE_CONTROL = 3;
184 CONTROL_MODE_RESP_EMERGENCY_BRAKE = 4;
185 }
186 // 0x0:disable;0x1:enable [] [0|0]
187 optional bool drive_enable_resp = 1;
188 // 0x0:Standby;0x1:auto drive;0x2:net drive;0x3:remote control;0x4:emergency
189 // brake;0x5~0x7:Reserved [] [0|7]
190 optional Control_mode_respType control_mode_resp = 2;
191 // 0x0:not overflow;0x1:overflow [] [0|0]
192 optional bool vcu_eps_report = 3;
193 // ; [] [0|0]
194 optional double vcu_real_angle = 4;
195 // 0x0:disable;0x1:enable [] [0|0]
196 optional bool vcu_real_angle_valid = 5;
197 // 0x0:disable;0x1:enable; [] [0|0]
198 optional bool vcu_target_angle_valid = 6;
199 // [deg] [-380|380]
200 optional double vcu_target_angle = 7;
201 // [] [0|0]
202 optional int32 vcu_eps_rept_alivecounter = 8;
203 // [] [0|0]
204 optional int32 vcu_eps_rept_checksum = 9;
205}
206
208 // Control Message
209 // 0x0:disable ;0x1:enable [] [0|0]
210 optional bool drive_enable = 1;
211 // [] [0|0]
212 optional double auto_target_angle = 2;
213 // [] [0|0]
214 optional int32 auto_drivercmd_alivecounter = 3;
215 // [] [0|0]
216 optional int32 auto_drivercmd_checksum = 4;
217}
218
220 // Control Message
222 AUTO_SHIFT_COMMAND_N = 0;
223 AUTO_SHIFT_COMMAND_D = 1;
224 AUTO_SHIFT_COMMAND_R = 2;
225 AUTO_SHIFT_COMMAND_RESERVED = 3;
226 }
227 // 0x0:disable ;0x1:enable [] [0|0]
228 optional bool drive_enable = 1;
229 // 0x0:N ;0x1:D ;0x2:R ;0x3:Reserved [] [0|3]
230 optional Auto_shift_commandType auto_shift_command = 2;
231 // [] [0|0]
232 optional double auto_drive_torque = 3;
233 // [] [0|0]
234 optional int32 auto_drivercmd_alivecounter = 4;
235 // [] [0|0]
236 optional int32 auto_drivercmd_checksum = 5;
237}
238
240 // Report Message
242 CONTROL_MODE_RESP_STANDBY = 0;
243 CONTROL_MODE_RESP_AUTO_DRIVE = 1;
244 CONTROL_MODE_RESP_NET_DRIVE = 2;
245 CONTROL_MODE_RESP_REMOTE_CONTROL = 3;
246 CONTROL_MODE_RESP_EMERGENCY_BRAKE = 4;
247 }
249 VCU_REAL_SHIFT_N = 0;
250 VCU_REAL_SHIFT_D = 1;
251 VCU_REAL_SHIFT_R = 2;
252 VCU_REAL_SHIFT_RESERVED = 3;
253 }
254 // 0x0:disable;0x1:enable [] [0|0]
255 optional bool drive_enable_resp = 1;
256 // 0x0:Standby;0x1:auto drive;0x2:net drive;0x3:remote control;0x4:emergency
257 // brake;0x5~0x7:Reserved [] [0|7]
258 optional Control_mode_respType control_mode_resp = 2;
259 // 0x0:N档;0x1:D档;0x2:R档;0x3:Reserved [] [0|3]
260 optional Vcu_real_shiftType vcu_real_shift = 3;
261 // 0x0:disable;0x1:enable [] [0|0]
262 optional bool vcu_real_shift_valid = 4;
263 // 0x0:disable;0x1:enable [] [0|0]
264 optional bool vcu_real_torque_valid = 5;
265 // [Nm] [0|0]
266 optional double vcu_real_torque = 6;
267 // 0x0:disable;0x1:enable [] [0|0]
268 optional bool vcu_limitedtorquemode = 7;
269 // [] [0|0]
270 optional int32 vcu_driverept_alivecounter = 8;
271 // [] [0|0]
272 optional int32 vcu_driverept_checksum = 9;
273}
274
276 // Control Message
277 // 0x0:Nomal;0x1:Level 1;0x2:Level 2;0x3:Level 3;0x4:Level 4;0x5:Level
278 // 5;0x6:Reserved;0x7:Reserved [bit] [0|5]
279 optional int32 faultrank = 1;
280 // [] [0|65535]
281 optional int32 adas_fault_code = 2;
282 // [bit] [0|255]
283 optional int32 adas_softwareversion = 3;
284 // [bit] [0|255]
285 optional int32 adas_hardwareversion = 4;
286}
287
288message Vcu_nm_401 {
289 // Report Message
290 // 0x0:Inactive;0x1:Active [bit] [0|1]
291 optional bool vcu_sleepcommand = 1;
292}
293
295 // Report Message
297 CONTROL_MODE_RESP_STANDBY = 0;
298 CONTROL_MODE_RESP_AUTO_DRIVE = 1;
299 CONTROL_MODE_RESP_NET_DRIVE = 2;
300 CONTROL_MODE_RESP_REMOTE_CONTROL = 3;
301 CONTROL_MODE_RESP_EMERGENCY_BRAKE = 4;
302 }
303 // 0x0:disable;0x1:enable [] [0|0]
304 optional bool drive_enable_resp = 1;
305 // 0x0:Disconnect;0x1:Connect [] [0|0]
306 optional bool vcu_highvoltagecircuitstate = 2;
307 // 0x0: Disable;0x1:Enable [] [0|0]
308 optional bool vcu_dcdc_enabledstates = 3;
309 // 0x0:Standby;0x1:auto drive;0x2:net drive;0x3:remote control;0x4:emergency
310 // brake;0x5~0x7:Reserved [] [0|7]
311 optional Control_mode_respType control_mode_resp = 4;
312 // [Km/h] [0|460.69]
313 optional double vcu_vehicle_speed = 5;
314 // 0x0:Reserved;0x1:Start;0x2:Stop;0x3:Invalid [] [0|0]
315 optional int32 vcu_lowbatterychargingfunctionst = 6;
316 // [%] [0|100]
317 optional int32 vcu_display_soc = 7;
318 // [] [0|0]
319 optional double vcu_motor_speed = 8;
320 // 0x0:Standby Status;0x1:Forward Mode;0x2:Reverse Mode [] [0|0]
321 optional int32 vcu_motor_direction = 9;
322 // 0x0:disable;0x1:enable [] [0|0]
323 optional bool vcu_motor_speed_valid = 10;
324 // [] [0|0]
325 optional int32 vcu_statusrept_alivecounter = 11;
326 // [] [0|0]
327 optional int32 vcu_statusrept_checksum = 12;
328}
329
331 // Report Message
332 // [] [0|16777215]
333 optional int32 vehicle_softwareversion_indicati = 1;
334 // [] [0|15]
335 optional int32 project = 2;
336 // [] [0|15]
337 optional int32 manufacturer = 3;
338 // [] [0|255]
339 optional int32 year = 4;
340 // [] [1|12]
341 optional int32 month = 5;
342 // [] [1|31]
343 optional int32 day = 6;
344 // [] [0|32767]
345 optional int32 vehicle_serial_number = 7;
346}
347
349 // Report Message
350 // [bit] [0.0|255.0]
351 optional double aeb_softwareversion = 1;
352 // [bit] [0.0|255.0]
353 optional double aeb_hardwareversion = 2;
354}
355
357 // Report Message
358 // [bit] [0.0|1.0]
359 optional bool aeb_diagresp = 1;
360}
361
363 // Report Message
364 // phy=int*2;0xFF:no obstacle [cm] [0|510]
365 optional double pasdistance4 = 1;
366 // phy=int*2;0xFF:no obstacle [cm] [0|510]
367 optional double pasdistance3 = 2;
368 // 0x0:Invalid;0x1:Valid [bit] [0|1]
369 optional bool pas_f1_status = 3;
370 // 0x0:Invalid;0x1:Valid [bit] [0|1]
371 optional bool pas_f2_status = 4;
372 // 0x0:Invalid;0x1:Valid [bit] [0|1]
373 optional bool pas_f3_status = 5;
374 // 0x0:Invalid;0x1:Valid [bit] [0|1]
375 optional bool pas_f4_status = 6;
376 // phy=int*2;0xFF:no obstacle [cm] [0|510]
377 optional double pasdistance2 = 7;
378 // [cm] [0|510]
379 optional double pasdistance1 = 8;
380}
381
383 // Report Message
384 // 0x0:Invalid;0x1:Valid [bit] [0.0|1.0]
385 optional bool pas_b1_status = 1;
386 // 0x0:Invalid;0x1:Valid [bit] [0.0|1.0]
387 optional bool pas_b2_status = 2;
388 // 0x0:Invalid;0x1:Valid [bit] [0.0|1.0]
389 optional bool pas_b3_status = 3;
390 // 0x0:Invalid;0x1:Valid [bit] [0.0|1.0]
391 optional bool pas_b4_status = 4;
392 // phy=int*2;0xFF:no obstacle [cm] [0.0|510.0]
393 optional double pasdistance1 = 5;
394 // phy=int*2;0xFF:no obstacle [cm] [0.0|510.0]
395 optional double pasdistance2 = 6;
396 // phy=int*2;0xFF:no obstacle [cm] [0.0|510.0]
397 optional double pasdistance3 = 7;
398 // phy=int*2;0xFF:no obstacle [cm] [0.0|510.0]
399 optional double pasdistance4 = 8;
400}
401
403 // Report Message
404 // 0x0:Invalid;0x1:Valid [bit] [0.0|1023.0]
405 optional double flimpulse = 1;
406 // 0x0:Invalid;0x1:Valid [bit] [0.0|1.0]
407 optional bool flimpulsevalid = 2;
408 // [km/h] [0.0|1023.0]
409 optional double frimpulse = 3;
410 // [km/h] [0.0|1.0]
411 optional bool frimpulsevalid = 4;
412 // 0x0:Invalid;0x1:Valid [bit] [0.0|1023.0]
413 optional double rlimpulse = 5;
414 // 0x0:Invalid;0x1:Valid [bit] [0.0|1.0]
415 optional bool rlimpulsevalid = 6;
416 // [km/h] [0.0|1023.0]
417 optional double rrimpulse = 7;
418 // [km/h] [0.0|1.0]
419 optional bool rrimpulsevalid = 8;
420 // [] [0.0|15.0]
421 optional double alivecounter = 9;
422 // [] [0.0|255.0]
423 optional double checksum = 10;
424}
425
427 // Report Message
428 // 0x0:Invalid;0x1:Valid [bit] [0.0|1.0]
429 optional bool wheelspeed_rl_valid = 1;
430 // [km/h] [0.0|327.67]
431 optional double wheelspeed_rl = 2;
432 // 0x0:Invalid;0x1:Valid [bit] [0.0|1.0]
433 optional bool wheelspeed_rr_valid = 3;
434 // [km/h] [0.0|327.67]
435 optional double wheelspeed_rr = 4;
436 // 0x0:Invalid;0x1:D;0x2:N;0x3:R [bit] [0.0|3.0]
437 optional double wheelspeed_rl_direct = 5;
438 // 0x0:Invalid;0x1:D;0x2:N;0x3:R [bit] [0.0|3.0]
439 optional double wheelspeed_rr_direct = 6;
440 // [] [0.0|15.0]
441 optional double alivecounter_rear = 7;
442 // [] [0.0|255.0]
443 optional double checksum_rear = 8;
444}
445
447 // Report Message
448 // 0x0:Invalid;0x1:Valid [bit] [0.0|1.0]
449 optional bool vehiclespeedvalid = 1;
450 // [Km/h] [0.0|460.69]
451 optional double vehiclespeed = 2;
452 // 0x0:Invalid;0x1:D;0x2:N;0x3:R [bit] [0.0|3.0]
453 optional double vehiclerealdirect = 3;
454 // 0x0:Invalid;0x1:Valid [bit] [0.0|1.0]
455 optional bool wheelspeed_fl_valid = 4;
456 // [km/h] [0.0|327.67]
457 optional double wheelspeed_fl = 5;
458 // 0x0:Invalid;0x1:Valid [bit] [0.0|1.0]
459 optional bool wheelspeed_fr_valid = 6;
460 // [km/h] [0.0|327.67]
461 optional double wheelspeed_fr = 7;
462 // 0x0:Invalid;0x1:D;0x2:N;0x3:R [bit] [0.0|3.0]
463 optional double wheelspeed_fl_direct = 8;
464 // 0x0:Invalid;0x1:D;0x2:N;0x3:R [bit] [0.0|3.0]
465 optional double wheelspeed_fr_direct = 9;
466 // [] [0.0|15.0]
467 optional double alivecounter_front = 10;
468 // [] [0.0|255.0]
469 optional double checksum_front = 11;
470}
471
472message VehicleSpd {
473 optional double vehicle_spd = 1 [default = 0]; // unit:m/s
474}
475
476// Battery
477message Battery {
478 optional double battery_percent = 1; // unit:%, battery percentage left
479}
480message Safety {
481 optional int32 driving_mode = 1;
482}
483
484message Gas {
485 optional double gas_pedal_position = 1 [default = 0]; // manual gas
486}
487
488message Gear {
489 optional Chassis.GearPosition gear_state = 1;
490}
491
492message Brake {
493 optional double brake_pedal_position = 1;
494}
495
496// Electrical Power Steering
497message Eps {
498 optional double steering_angle = 1; // unit:degree
499}
500
501// Electrical Parking Brake
502message Epb {
504 PBRAKE_OFF = 0;
505 PBRAKE_TRANSITION = 1;
506 PBRAKE_ON = 2;
507 PBRAKE_FAULT = 3;
508 }
509 optional PBrakeType parking_brake_status = 4;
510}
511
512message Neolix_edu {
513 optional Aeb_systemstate_11 aeb_systemstate_11 = 1; // report message
514 optional Vcu_vehicle_fault_response_201 vcu_vehicle_fault_response_201 =
515 2; // report message
516 optional Vcu_powerstatus_214 vcu_powerstatus_214 = 3; // report message
517 optional Ads_light_horn_command_310 ads_light_horn_command_310 =
518 4; // control message
519 optional Ads_brake_command_46 ads_brake_command_46 = 5; // control message
520 optional Vcu_brake_report_47 vcu_brake_report_47 = 6; // report message
521 optional Vcu_eps_report_57 vcu_eps_report_57 = 7; // report message
522 optional Ads_eps_command_56 ads_eps_command_56 = 8; // control message
523 optional Ads_drive_command_50 ads_drive_command_50 = 9; // control message
524 optional Vcu_drive_report_52 vcu_drive_report_52 = 10; // report message
525 optional Ads_diagnosis_628 ads_diagnosis_628 = 11; // control message
526 optional Vcu_nm_401 vcu_nm_401 = 12; // report message
527 optional Vcu_vehicle_status_report_101 vcu_vehicle_status_report_101 =
528 13; // report message
529 optional Vcu_vehicle_info_response_502 vcu_vehicle_info_response_502 =
530 14; // report message
531 optional Aeb_diagnosis1_626 aeb_diagnosis1_626 = 15; // report message
532 optional Aeb_diagresp_718 aeb_diagresp_718 = 16; // report message
533 optional Pas_1st_data_311 pas_1st_data_311 = 17; // report message
534 optional Pas_2nd_data_312 pas_2nd_data_312 = 18; // report message
535 optional Aeb_wheelimpulse_355 aeb_wheelimpulse_355 = 19; // report message
536 optional Aeb_rearwheelspeed_354 aeb_rearwheelspeed_354 =
537 20; // report message
538 optional Aeb_frontwheelspeed_353 aeb_frontwheelspeed_353 =
539 21; // report message
540 optional VehicleSpd vehicle_spd = 50;
541 optional Battery battery = 51; // Battery info
542 optional Safety safety = 52; // safety
543 optional Gas gas = 53; // gas pedal
544 optional Gear gear = 54; // gear
545 optional Brake brake = 55; // brake pedal
546 optional Eps eps = 56; // Electronic Power Steering
547 optional Epb epb = 57; // Electronic parking brake
548}
syntax