/
bmw-e39.kcd
85 lines (69 loc) · 5.77 KB
/
bmw-e39.kcd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<!-- https://www.desmos.com/calculator -->
<!-- https://www.wolframalpha.com/calculators/equation-solver-calculator -->
<NetworkDefinition xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Definition.xsd" version="0.0.1">
<Document name="BMW-E39" version="0.0.1" author="kennygprs@gmail.com">BMW E39 CANBUS definition</Document>
<Node id="12" name="DME" />
<Bus name="PTCAN">
<Message id="0x316" name="DME_316">
<Producer>
<NodeRef id="12" />
</Producer>
<!-- testing these ignition status bits -->
<Signal name="engine.ignition_0" offset="0" length="1" />
<Signal name="engine.ignition_1" offset="1" length="1" />
<Signal name="engine_dsc_ok" offset="2" length="1" />
<Signal name="engine_smg_present" offset="3" length="1" />
<Signal name="engine_torque_intervention" offset="4" length="2" />
<Signal name="engine_ac_clutch" offset="6" length="1" />
<Signal name="engine_maf_error" offset="7" length="1" />
<Signal name="engine_torque_after_interventions" offset="8" length="8" ><Value unit="percent" slope="0.3921568627450980" max="100" /></Signal>
<Signal name="engine_rpm" offset="16" length="16"><Value unit="percent" slope="0.15625" max="10000" /></Signal>
<Signal name="engine_torque_before_interventions" offset="32" length="8" ><Value unit="percent" slope="0.3921568627450980" max="100" /></Signal>
<Signal name="engine_torque_loss" offset="40" length="8" ><Value unit="percent" slope="0.3921568627450980" max="100" /></Signal>
<Signal name="engine_torque_output" offset="56" length="8" ><Value unit="percent" slope="0.3921568627450980" max="100" /></Signal>
</Message>
<Message id="0x545" name="DME_545">
<Producer>
<NodeRef id="12" />
</Producer>
<!-- Byte 0 -->
<Signal name="dme_status_check_engine" offset="1" length="1"><Value unit="boolean" slope="1" intercept="0" min="0" max="1" /></Signal>
<Signal name="dme_status_cruise" offset="3" length="1"><Value unit="boolean" slope="1" intercept="0" min="0" max="1" /></Signal>
<Signal name="dme_status_eml" offset="4" length="1"><Value unit="boolean" slope="1" intercept="0" min="0" max="1" /></Signal>
<Signal name="dme_status_check_fuel_cap" offset="7" length="1"><Value unit="boolean" slope="1" intercept="0" min="0" max="1" /></Signal>
<!-- Byte 3 -->
<Signal name="dme_status_oil_level_error_s62" offset="24" length="1"><Value unit="boolean" slope="1" intercept="0" min="0" max="1" /></Signal>
<Signal name="dme_status_oil_level_warning" offset="25" length="1"><Value unit="boolean" slope="1" intercept="0" min="0" max="1" /></Signal>
<Signal name="dme_status_oil_level_error" offset="26" length="1"><Value unit="boolean" slope="1" intercept="0" min="0" max="1" /></Signal>
<Signal name="dme_status_coolant_overtemperature_light" offset="27" length="1"><Value unit="boolean" slope="1" intercept="0" min="0" max="1" /></Signal>
<Signal name="dme_status_tachometer_light_0" offset="28" length="1"><Value unit="boolean" slope="1" intercept="0" min="0" max="1" /></Signal>
<Signal name="dme_status_tachometer_light_1" offset="29" length="1"><Value unit="boolean" slope="1" intercept="0" min="0" max="1" /></Signal>
<Signal name="dme_status_tachometer_light_2" offset="30" length="1"><Value unit="boolean" slope="1" intercept="0" min="0" max="1" /></Signal>
<!-- Byte 5 -->
<Signal name="dme_status_battery_light" offset="40" length="1"><Value unit="boolean" slope="-1" intercept="0" min="0" max="1" /></Signal>
<Signal name="dme_status_ac_switch" offset="43" length="1"><Value unit="boolean" slope="1" intercept="0" min="0" max="1" /></Signal>
<Signal name="dme_status_oil_pressure_light" offset="44" length="1"><Value unit="boolean" slope="-1" intercept="0" min="0" max="1" /></Signal>
</Message>
<Message id="0x710" name="DME_710">
<Producer>
<NodeRef id="12" />
</Producer>
<Signal name="engine_fueling_active" offset="52" length="1"><Value unit="boolean" slope="1" intercept="0" min="0" max="1" /></Signal>
<Signal name="engine_fueling_cut" offset="51" length="1"><Value unit="boolean" slope="1" intercept="0" min="0" max="1" /></Signal>
<Signal name="engine_fueling_full_load" offset="53" length="1"><Value unit="boolean" slope="1" intercept="0" min="0" max="1" /></Signal>
</Message>
<Message id="0x720" name="DME_720">
<Producer>
<NodeRef id="12" />
</Producer>
<Signal name="temperature_coolant_c" offset="0" length="8" ><Value unit="celsius" slope="1" intercept="-48" min="-48" max="207" /></Signal>
<Signal name="temperature_intake_c" offset="8" length="8" ><Value unit="celsius" slope="1" intercept="-48" min="-48" max="207" /></Signal>
<Signal name="temperature_exhaust_c" offset="16" length="8" ><Value unit="celsius" slope="4" intercept="0" min="0" max="1020" /></Signal>
<Signal name="temperature_oil_c" offset="24" length="8" ><Value unit="celsius" slope="1" intercept="-48" min="-48" max="207" /></Signal>
<Signal name="battery_voltage" offset="32" length="8" ><Value unit="volts" slope="0.1" intercept="0" min="0" max="25.5" /></Signal>
<Signal name="vehicle_speed" offset="40" length="16"><Value unit="kph" slope="1" intercept="0" min="0" max="65535" /></Signal>
<Signal name="fuel_pump_duty" offset="56" length="8" ><Value unit="percent" slope="0.3921568627450980" intercept="0" min="0" max="100" /></Signal>
</Message>
</Bus>
</NetworkDefinition>
<!-- vim: set filetype=xml ts=2 sw=2 tw=0 noet :-->