diff --git a/generator/hyundai/.gitignore b/generator/hyundai/.gitignore index 2bee453..81f73f3 100644 --- a/generator/hyundai/.gitignore +++ b/generator/hyundai/.gitignore @@ -1 +1,2 @@ hyundai_kia_mando_front_radar.dbc +hyundai_kia_mando_corner_radar.dbc diff --git a/generator/hyundai/hyundai_kia_mando_corner_radar.py b/generator/hyundai/hyundai_kia_mando_corner_radar.py new file mode 100755 index 0000000..d4bcf67 --- /dev/null +++ b/generator/hyundai/hyundai_kia_mando_corner_radar.py @@ -0,0 +1,170 @@ +#!/usr/bin/env python3 +from collections import namedtuple +import os + +if __name__ == "__main__": + dbc_name = os.path.basename(__file__).replace(".py", ".dbc") + hyundai_path = os.path.dirname(os.path.realpath(__file__)) + with open(os.path.join(hyundai_path, dbc_name), "w") as f: + f.write(""" +VERSION "" + + +NS_ : + NS_DESC_ + CM_ + BA_DEF_ + BA_ + VAL_ + CAT_DEF_ + CAT_ + FILTER + BA_DEF_DEF_ + EV_DATA_ + ENVVAR_DATA_ + SGTYPE_ + SGTYPE_VAL_ + BA_DEF_SGTYPE_ + BA_SGTYPE_ + SIG_TYPE_REF_ + VAL_TABLE_ + SIG_GROUP_ + SIG_VALTYPE_ + SIGTYPE_VALTYPE_ + BO_TX_BU_ + BA_DEF_REL_ + BA_REL_ + BA_DEF_DEF_REL_ + BU_SG_REL_ + BU_EV_REL_ + BU_BO_REL_ + SG_MUL_VAL_ + +BS_: + +BU_: XXX +""") + + for a in [0x100, 0x200]: + f.write(f""" +BO_ {a} RADAR_POINTS_METADATA_0x{a:x}: 64 RADAR + SG_ SIGNAL_1 : 0|32@1+ (1,0) [0|255] "" XXX + SG_ SIGNAL_2 : 32|32@1+ (1,0) [0|65535] "" XXX + SG_ SIGNAL_3 : 64|4@1+ (1,0) [0|15] "" XXX + SG_ SIGNAL_4 : 68|4@1+ (1,0) [0|15] "" XXX + SG_ RADAR_POINT_COUNT : 72|8@1+ (1,0) [0|255] "" XXX + SG_ SIGNAL_6 : 80|7@1+ (0.015625,0) [0|3] "" XXX + SG_ SIGNAL_7 : 87|1@1+ (1,0) [0|1] "" XXX + SG_ SIGNAL_8 : 88|3@1+ (1,0) [0|7] "" XXX + SG_ SIGNAL_9 : 91|5@1+ (0.0625,0) [0|31] "" XXX + SG_ SIGNAL_10 : 96|8@1+ (1,0) [0|255] "" XXX + SG_ SIGNAL_11 : 104|7@1+ (0.015625,0) [0|127] "" XXX + SG_ SIGNAL_12 : 111|2@1+ (1,0) [0|65535] "" XXX + SG_ SIGNAL_13 : 113|7@1+ (0.015625,0) [0|127] "" XXX + SG_ SIGNAL_14 : 120|7@1+ (0.015625,0) [0|127] "" XXX + SG_ SIGNAL_15 : 127|3@1+ (1,0) [0|3] "" XXX + SG_ SIGNAL_16 : 130|2@1+ (1,0) [0|3] "" XXX + SG_ SIGNAL_17 : 133|2@0+ (1,0) [0|3] "" XXX + SG_ SIGNAL_18 : 134|1@0+ (1,0) [0|3] "" XXX + SG_ SIGNAL_19 : 135|3@1+ (1,0) [0|3] "" XXX + SG_ SIGNAL_20 : 138|8@1+ (1,0) [0|63] "" XXX + SG_ SIGNAL_21 : 146|2@1+ (1,0) [0|3] "" XXX + SG_ SIGNAL_22 : 148|1@1+ (1,0) [0|3] "" XXX + SG_ SIGNAL_23 : 149|4@1+ (1,0) [0|7] "" XXX + SG_ SIGNAL_24 : 153|1@1+ (1,0) [0|3] "" XXX + SG_ SIGNAL_25 : 154|2@1+ (1,0) [0|3] "" XXX + SG_ SIGNAL_26 : 157|2@0+ (1,0) [0|3] "" XXX + SG_ SIGNAL_27 : 158|7@1+ (0.125,0) [0|3] "" XXX + SG_ SIGNAL_28 : 165|7@1+ (0.015625,0) [0|31] "" XXX + SG_ SIGNAL_29 : 172|7@1+ (0.125,0) [0|3] "" XXX + SG_ SIGNAL_30 : 179|7@1+ (0.015625,0) [0|1] "" XXX + SG_ SIGNAL_31 : 186|4@1+ (1,0) [0|7] "" XXX + SG_ SIGNAL_32 : 190|14@1+ (0.015625,0) [0|15] "" XXX + SG_ SIGNAL_33 : 204|11@1+ (0.03125,0) [0|8191] "" XXX + SG_ SIGNAL_34 : 215|2@1+ (1,0) [0|3] "" XXX + SG_ SIGNAL_35 : 217|7@1+ (1,0) [0|127] "" XXX + SG_ SIGNAL_36 : 224|6@1+ (1,0) [0|63] "" XXX + SG_ SIGNAL_37 : 230|6@1+ (0.2,0) [0|31] "" XXX + SG_ SIGNAL_38 : 236|6@1+ (0.2,0) [0|7] "" XXX + SG_ SIGNAL_39 : 242|8@1+ (1,-90) [0|255] "" XXX + SG_ SIGNAL_40 : 250|6@1+ (1,0) [0|63] "" XXX + SG_ SIGNAL_41 : 256|8@1+ (0.25,0) [0|255] "" XXX + SG_ SIGNAL_42 : 264|3@1+ (1,0) [0|3] "" XXX + SG_ SIGNAL_43 : 267|12@1+ (0.01,0) [0|31] "" XXX + SG_ SIGNAL_44 : 279|32@1+ (1,0) [0|63] "" XXX + SG_ SIGNAL_45 : 311|1@1+ (1,0) [0|1] "" XXX + SG_ SIGNAL_46 : 312|2@1+ (1,0) [0|3] "" XXX + SG_ SIGNAL_47 : 314|32@1+ (1,0) [0|255] "" XXX + SG_ SIGNAL_48 : 346|6@1+ (1,0) [0|63] "" XXX + SG_ SIGNAL_49 : 352|7@1+ (0.25,0) [0|127] "" XXX + SG_ SIGNAL_50 : 359|6@1+ (0.03125,0) [0|31] "" XXX + SG_ SIGNAL_51 : 365|10@1+ (0.125,0) [0|3] "" XXX + SG_ SIGNAL_52 : 375|10@1+ (0.125,0) [0|63] "" XXX + SG_ SIGNAL_53 : 385|7@1+ (1,0) [0|127] "" XXX + SG_ SIGNAL_54 : 392|7@1+ (1,0) [0|127] "" XXX + SG_ SIGNAL_55 : 399|8@1+ (0.00390625,0) [0|31] "" XXX + SG_ SIGNAL_56 : 407|10@1+ (0.125,0) [0|63] "" XXX + SG_ SIGNAL_57 : 417|1@1+ (1,0) [0|3] "" XXX + SG_ SIGNAL_58 : 418|1@1+ (1,0) [0|3] "" XXX +""") + + # radar points are sent at 20 Hz in groups of 1 to 13 messages + # each message has 5 radar points for a total of 65 points max + # each radar point is 101 bits so the alignment is not consistent + RadarPointSignal = namedtuple("RadarPointSignal", ["name", "start", "length", "scale", "offset"]) + radar_point_signals = ( + RadarPointSignal("DISTANCE", 7, 14, 1/64, 0), + RadarPointSignal("", 21, 2, 1, 0), + RadarPointSignal("", 23, 8, 1/512, -127/512), + RadarPointSignal("REL_VELOCITY", 31, 13, 1/32, -66), + RadarPointSignal("", 44, 2, 1, 0), + RadarPointSignal("", 46, 2, 1, 0), + RadarPointSignal("AZIMUTH", 48, 12, 1/512, -2047/512), + RadarPointSignal("", 60, 2, 1, 0), + RadarPointSignal("", 62, 1, 1, 0), + RadarPointSignal("", 63, 7, 1, 0), + RadarPointSignal("", 70, 1, 1, 0), + RadarPointSignal("", 71, 6, 1, 0), + RadarPointSignal("", 77, 2, 1, 0), + RadarPointSignal("", 79, 8, 1/512, -127/512), + RadarPointSignal("", 87, 1, 1, 0), + RadarPointSignal("", 88, 2, 1, 0), + RadarPointSignal("", 90, 3, 1, 0), + # last 15 bits are controlled by LAYOUT_ID (seems to always zero, so below is layout 0) + RadarPointSignal("", 93, 6, 1, 0), + RadarPointSignal("", 99, 8, 1, 0), + RadarPointSignal("", 107, 1, 1, 0), + ) + radar_point_bit_count = sum([s.length for s in radar_point_signals]) + + for a in [0x101, 0x201]: + f.write(f""" +BO_ {a} RADAR_POINTS_0x{a:x}: 64 RADAR + SG_ MESSAGE_ID : 0|5@1+ (1,0) [0|31] "" XXX + SG_ LAYOUT_ID : 5|2@1+ (1,0) [0|3] "" XXX +""") + bit_idx = radar_point_signals[0].start + for i in range(5): + signal_idx = 1 + for sig in radar_point_signals: + if sig.name: + sig_name = f"POINT_{i+1}_{sig.name}" + else: + sig_name = f"POINT_{i+1}_SIGNAL_{signal_idx}" + signal_idx += 1 + + sig_start_idx = i * radar_point_bit_count + sig.start + assert bit_idx == sig_start_idx, f"signal overlap or gap!!! {bit_idx} != {sig_start_idx}" + min_val = round(sig.offset, 10) + max_val = round((2**sig.length - 1) * sig.scale + sig.offset, 10) + + f.write(f" SG_ {sig_name} : {sig_start_idx}|{sig.length}@1+ ({sig.scale},{sig.offset}) [{min_val}|{max_val}] \"\" XXX\n") + bit_idx += sig.length + + # checksum is across a group of 0x100/200 and 0x101/201 messages (no checksums inside the other messages) + # ccitt_crc16 = mkCrcFun(0x11021, initCrc=0xffff, xorOut=0x0000, rev=False) + for a in [0x104, 0x204]: + f.write(f""" +BO_ {a} RADAR_POINTS_CHECKSUM_0x{a:x}: 3 RADAR + SG_ CRC16 : 0|16@1+ (1,0) [0|65535] "" XXX +""") diff --git a/hyundai_kia_mando_corner_radar_generated.dbc b/hyundai_kia_mando_corner_radar_generated.dbc new file mode 100644 index 0000000..80627f9 --- /dev/null +++ b/hyundai_kia_mando_corner_radar_generated.dbc @@ -0,0 +1,374 @@ +CM_ "AUTOGENERATED FILE, DO NOT EDIT"; + +CM_ "hyundai_kia_mando_corner_radar.dbc starts here"; + +VERSION "" + + +NS_ : + NS_DESC_ + CM_ + BA_DEF_ + BA_ + VAL_ + CAT_DEF_ + CAT_ + FILTER + BA_DEF_DEF_ + EV_DATA_ + ENVVAR_DATA_ + SGTYPE_ + SGTYPE_VAL_ + BA_DEF_SGTYPE_ + BA_SGTYPE_ + SIG_TYPE_REF_ + VAL_TABLE_ + SIG_GROUP_ + SIG_VALTYPE_ + SIGTYPE_VALTYPE_ + BO_TX_BU_ + BA_DEF_REL_ + BA_REL_ + BA_DEF_DEF_REL_ + BU_SG_REL_ + BU_EV_REL_ + BU_BO_REL_ + SG_MUL_VAL_ + +BS_: + +BU_: XXX + +BO_ 256 RADAR_POINTS_METADATA_0x100: 64 RADAR + SG_ SIGNAL_1 : 0|32@1+ (1,0) [0|255] "" XXX + SG_ SIGNAL_2 : 32|32@1+ (1,0) [0|65535] "" XXX + SG_ SIGNAL_3 : 64|4@1+ (1,0) [0|15] "" XXX + SG_ SIGNAL_4 : 68|4@1+ (1,0) [0|15] "" XXX + SG_ RADAR_POINT_COUNT : 72|8@1+ (1,0) [0|255] "" XXX + SG_ SIGNAL_6 : 80|7@1+ (0.015625,0) [0|3] "" XXX + SG_ SIGNAL_7 : 87|1@1+ (1,0) [0|1] "" XXX + SG_ SIGNAL_8 : 88|3@1+ (1,0) [0|7] "" XXX + SG_ SIGNAL_9 : 91|5@1+ (0.0625,0) [0|31] "" XXX + SG_ SIGNAL_10 : 96|8@1+ (1,0) [0|255] "" XXX + SG_ SIGNAL_11 : 104|7@1+ (0.015625,0) [0|127] "" XXX + SG_ SIGNAL_12 : 111|2@1+ (1,0) [0|65535] "" XXX + SG_ SIGNAL_13 : 113|7@1+ (0.015625,0) [0|127] "" XXX + SG_ SIGNAL_14 : 120|7@1+ (0.015625,0) [0|127] "" XXX + SG_ SIGNAL_15 : 127|3@1+ (1,0) [0|3] "" XXX + SG_ SIGNAL_16 : 130|2@1+ (1,0) [0|3] "" XXX + SG_ SIGNAL_17 : 133|2@0+ (1,0) [0|3] "" XXX + SG_ SIGNAL_18 : 134|1@0+ (1,0) [0|3] "" XXX + SG_ SIGNAL_19 : 135|3@1+ (1,0) [0|3] "" XXX + SG_ SIGNAL_20 : 138|8@1+ (1,0) [0|63] "" XXX + SG_ SIGNAL_21 : 146|2@1+ (1,0) [0|3] "" XXX + SG_ SIGNAL_22 : 148|1@1+ (1,0) [0|3] "" XXX + SG_ SIGNAL_23 : 149|4@1+ (1,0) [0|7] "" XXX + SG_ SIGNAL_24 : 153|1@1+ (1,0) [0|3] "" XXX + SG_ SIGNAL_25 : 154|2@1+ (1,0) [0|3] "" XXX + SG_ SIGNAL_26 : 157|2@0+ (1,0) [0|3] "" XXX + SG_ SIGNAL_27 : 158|7@1+ (0.125,0) [0|3] "" XXX + SG_ SIGNAL_28 : 165|7@1+ (0.015625,0) [0|31] "" XXX + SG_ SIGNAL_29 : 172|7@1+ (0.125,0) [0|3] "" XXX + SG_ SIGNAL_30 : 179|7@1+ (0.015625,0) [0|1] "" XXX + SG_ SIGNAL_31 : 186|4@1+ (1,0) [0|7] "" XXX + SG_ SIGNAL_32 : 190|14@1+ (0.015625,0) [0|15] "" XXX + SG_ SIGNAL_33 : 204|11@1+ (0.03125,0) [0|8191] "" XXX + SG_ SIGNAL_34 : 215|2@1+ (1,0) [0|3] "" XXX + SG_ SIGNAL_35 : 217|7@1+ (1,0) [0|127] "" XXX + SG_ SIGNAL_36 : 224|6@1+ (1,0) [0|63] "" XXX + SG_ SIGNAL_37 : 230|6@1+ (0.2,0) [0|31] "" XXX + SG_ SIGNAL_38 : 236|6@1+ (0.2,0) [0|7] "" XXX + SG_ SIGNAL_39 : 242|8@1+ (1,-90) [0|255] "" XXX + SG_ SIGNAL_40 : 250|6@1+ (1,0) [0|63] "" XXX + SG_ SIGNAL_41 : 256|8@1+ (0.25,0) [0|255] "" XXX + SG_ SIGNAL_42 : 264|3@1+ (1,0) [0|3] "" XXX + SG_ SIGNAL_43 : 267|12@1+ (0.01,0) [0|31] "" XXX + SG_ SIGNAL_44 : 279|32@1+ (1,0) [0|63] "" XXX + SG_ SIGNAL_45 : 311|1@1+ (1,0) [0|1] "" XXX + SG_ SIGNAL_46 : 312|2@1+ (1,0) [0|3] "" XXX + SG_ SIGNAL_47 : 314|32@1+ (1,0) [0|255] "" XXX + SG_ SIGNAL_48 : 346|6@1+ (1,0) [0|63] "" XXX + SG_ SIGNAL_49 : 352|7@1+ (0.25,0) [0|127] "" XXX + SG_ SIGNAL_50 : 359|6@1+ (0.03125,0) [0|31] "" XXX + SG_ SIGNAL_51 : 365|10@1+ (0.125,0) [0|3] "" XXX + SG_ SIGNAL_52 : 375|10@1+ (0.125,0) [0|63] "" XXX + SG_ SIGNAL_53 : 385|7@1+ (1,0) [0|127] "" XXX + SG_ SIGNAL_54 : 392|7@1+ (1,0) [0|127] "" XXX + SG_ SIGNAL_55 : 399|8@1+ (0.00390625,0) [0|31] "" XXX + SG_ SIGNAL_56 : 407|10@1+ (0.125,0) [0|63] "" XXX + SG_ SIGNAL_57 : 417|1@1+ (1,0) [0|3] "" XXX + SG_ SIGNAL_58 : 418|1@1+ (1,0) [0|3] "" XXX + +BO_ 512 RADAR_POINTS_METADATA_0x200: 64 RADAR + SG_ SIGNAL_1 : 0|32@1+ (1,0) [0|255] "" XXX + SG_ SIGNAL_2 : 32|32@1+ (1,0) [0|65535] "" XXX + SG_ SIGNAL_3 : 64|4@1+ (1,0) [0|15] "" XXX + SG_ SIGNAL_4 : 68|4@1+ (1,0) [0|15] "" XXX + SG_ RADAR_POINT_COUNT : 72|8@1+ (1,0) [0|255] "" XXX + SG_ SIGNAL_6 : 80|7@1+ (0.015625,0) [0|3] "" XXX + SG_ SIGNAL_7 : 87|1@1+ (1,0) [0|1] "" XXX + SG_ SIGNAL_8 : 88|3@1+ (1,0) [0|7] "" XXX + SG_ SIGNAL_9 : 91|5@1+ (0.0625,0) [0|31] "" XXX + SG_ SIGNAL_10 : 96|8@1+ (1,0) [0|255] "" XXX + SG_ SIGNAL_11 : 104|7@1+ (0.015625,0) [0|127] "" XXX + SG_ SIGNAL_12 : 111|2@1+ (1,0) [0|65535] "" XXX + SG_ SIGNAL_13 : 113|7@1+ (0.015625,0) [0|127] "" XXX + SG_ SIGNAL_14 : 120|7@1+ (0.015625,0) [0|127] "" XXX + SG_ SIGNAL_15 : 127|3@1+ (1,0) [0|3] "" XXX + SG_ SIGNAL_16 : 130|2@1+ (1,0) [0|3] "" XXX + SG_ SIGNAL_17 : 133|2@0+ (1,0) [0|3] "" XXX + SG_ SIGNAL_18 : 134|1@0+ (1,0) [0|3] "" XXX + SG_ SIGNAL_19 : 135|3@1+ (1,0) [0|3] "" XXX + SG_ SIGNAL_20 : 138|8@1+ (1,0) [0|63] "" XXX + SG_ SIGNAL_21 : 146|2@1+ (1,0) [0|3] "" XXX + SG_ SIGNAL_22 : 148|1@1+ (1,0) [0|3] "" XXX + SG_ SIGNAL_23 : 149|4@1+ (1,0) [0|7] "" XXX + SG_ SIGNAL_24 : 153|1@1+ (1,0) [0|3] "" XXX + SG_ SIGNAL_25 : 154|2@1+ (1,0) [0|3] "" XXX + SG_ SIGNAL_26 : 157|2@0+ (1,0) [0|3] "" XXX + SG_ SIGNAL_27 : 158|7@1+ (0.125,0) [0|3] "" XXX + SG_ SIGNAL_28 : 165|7@1+ (0.015625,0) [0|31] "" XXX + SG_ SIGNAL_29 : 172|7@1+ (0.125,0) [0|3] "" XXX + SG_ SIGNAL_30 : 179|7@1+ (0.015625,0) [0|1] "" XXX + SG_ SIGNAL_31 : 186|4@1+ (1,0) [0|7] "" XXX + SG_ SIGNAL_32 : 190|14@1+ (0.015625,0) [0|15] "" XXX + SG_ SIGNAL_33 : 204|11@1+ (0.03125,0) [0|8191] "" XXX + SG_ SIGNAL_34 : 215|2@1+ (1,0) [0|3] "" XXX + SG_ SIGNAL_35 : 217|7@1+ (1,0) [0|127] "" XXX + SG_ SIGNAL_36 : 224|6@1+ (1,0) [0|63] "" XXX + SG_ SIGNAL_37 : 230|6@1+ (0.2,0) [0|31] "" XXX + SG_ SIGNAL_38 : 236|6@1+ (0.2,0) [0|7] "" XXX + SG_ SIGNAL_39 : 242|8@1+ (1,-90) [0|255] "" XXX + SG_ SIGNAL_40 : 250|6@1+ (1,0) [0|63] "" XXX + SG_ SIGNAL_41 : 256|8@1+ (0.25,0) [0|255] "" XXX + SG_ SIGNAL_42 : 264|3@1+ (1,0) [0|3] "" XXX + SG_ SIGNAL_43 : 267|12@1+ (0.01,0) [0|31] "" XXX + SG_ SIGNAL_44 : 279|32@1+ (1,0) [0|63] "" XXX + SG_ SIGNAL_45 : 311|1@1+ (1,0) [0|1] "" XXX + SG_ SIGNAL_46 : 312|2@1+ (1,0) [0|3] "" XXX + SG_ SIGNAL_47 : 314|32@1+ (1,0) [0|255] "" XXX + SG_ SIGNAL_48 : 346|6@1+ (1,0) [0|63] "" XXX + SG_ SIGNAL_49 : 352|7@1+ (0.25,0) [0|127] "" XXX + SG_ SIGNAL_50 : 359|6@1+ (0.03125,0) [0|31] "" XXX + SG_ SIGNAL_51 : 365|10@1+ (0.125,0) [0|3] "" XXX + SG_ SIGNAL_52 : 375|10@1+ (0.125,0) [0|63] "" XXX + SG_ SIGNAL_53 : 385|7@1+ (1,0) [0|127] "" XXX + SG_ SIGNAL_54 : 392|7@1+ (1,0) [0|127] "" XXX + SG_ SIGNAL_55 : 399|8@1+ (0.00390625,0) [0|31] "" XXX + SG_ SIGNAL_56 : 407|10@1+ (0.125,0) [0|63] "" XXX + SG_ SIGNAL_57 : 417|1@1+ (1,0) [0|3] "" XXX + SG_ SIGNAL_58 : 418|1@1+ (1,0) [0|3] "" XXX + +BO_ 257 RADAR_POINTS_0x101: 64 RADAR + SG_ MESSAGE_ID : 0|5@1+ (1,0) [0|31] "" XXX + SG_ LAYOUT_ID : 5|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_1_DISTANCE : 7|14@1+ (0.015625,0) [0|255.984375] "" XXX + SG_ POINT_1_SIGNAL_2 : 21|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_1_SIGNAL_3 : 23|8@1+ (0.001953125,-0.248046875) [-0.248046875|0.25] "" XXX + SG_ POINT_1_REL_VELOCITY : 31|13@1+ (0.03125,-66) [-66|189.96875] "" XXX + SG_ POINT_1_SIGNAL_5 : 44|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_1_SIGNAL_6 : 46|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_1_AZIMUTH : 48|12@1+ (0.001953125,-3.998046875) [-3.998046875|4.0] "" XXX + SG_ POINT_1_SIGNAL_8 : 60|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_1_SIGNAL_9 : 62|1@1+ (1,0) [0|1] "" XXX + SG_ POINT_1_SIGNAL_10 : 63|7@1+ (1,0) [0|127] "" XXX + SG_ POINT_1_SIGNAL_11 : 70|1@1+ (1,0) [0|1] "" XXX + SG_ POINT_1_SIGNAL_12 : 71|6@1+ (1,0) [0|63] "" XXX + SG_ POINT_1_SIGNAL_13 : 77|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_1_SIGNAL_14 : 79|8@1+ (0.001953125,-0.248046875) [-0.248046875|0.25] "" XXX + SG_ POINT_1_SIGNAL_15 : 87|1@1+ (1,0) [0|1] "" XXX + SG_ POINT_1_SIGNAL_16 : 88|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_1_SIGNAL_17 : 90|3@1+ (1,0) [0|7] "" XXX + SG_ POINT_1_SIGNAL_18 : 93|6@1+ (1,0) [0|63] "" XXX + SG_ POINT_1_SIGNAL_19 : 99|8@1+ (1,0) [0|255] "" XXX + SG_ POINT_1_SIGNAL_20 : 107|1@1+ (1,0) [0|1] "" XXX + SG_ POINT_2_DISTANCE : 108|14@1+ (0.015625,0) [0|255.984375] "" XXX + SG_ POINT_2_SIGNAL_2 : 122|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_2_SIGNAL_3 : 124|8@1+ (0.001953125,-0.248046875) [-0.248046875|0.25] "" XXX + SG_ POINT_2_REL_VELOCITY : 132|13@1+ (0.03125,-66) [-66|189.96875] "" XXX + SG_ POINT_2_SIGNAL_5 : 145|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_2_SIGNAL_6 : 147|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_2_AZIMUTH : 149|12@1+ (0.001953125,-3.998046875) [-3.998046875|4.0] "" XXX + SG_ POINT_2_SIGNAL_8 : 161|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_2_SIGNAL_9 : 163|1@1+ (1,0) [0|1] "" XXX + SG_ POINT_2_SIGNAL_10 : 164|7@1+ (1,0) [0|127] "" XXX + SG_ POINT_2_SIGNAL_11 : 171|1@1+ (1,0) [0|1] "" XXX + SG_ POINT_2_SIGNAL_12 : 172|6@1+ (1,0) [0|63] "" XXX + SG_ POINT_2_SIGNAL_13 : 178|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_2_SIGNAL_14 : 180|8@1+ (0.001953125,-0.248046875) [-0.248046875|0.25] "" XXX + SG_ POINT_2_SIGNAL_15 : 188|1@1+ (1,0) [0|1] "" XXX + SG_ POINT_2_SIGNAL_16 : 189|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_2_SIGNAL_17 : 191|3@1+ (1,0) [0|7] "" XXX + SG_ POINT_2_SIGNAL_18 : 194|6@1+ (1,0) [0|63] "" XXX + SG_ POINT_2_SIGNAL_19 : 200|8@1+ (1,0) [0|255] "" XXX + SG_ POINT_2_SIGNAL_20 : 208|1@1+ (1,0) [0|1] "" XXX + SG_ POINT_3_DISTANCE : 209|14@1+ (0.015625,0) [0|255.984375] "" XXX + SG_ POINT_3_SIGNAL_2 : 223|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_3_SIGNAL_3 : 225|8@1+ (0.001953125,-0.248046875) [-0.248046875|0.25] "" XXX + SG_ POINT_3_REL_VELOCITY : 233|13@1+ (0.03125,-66) [-66|189.96875] "" XXX + SG_ POINT_3_SIGNAL_5 : 246|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_3_SIGNAL_6 : 248|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_3_AZIMUTH : 250|12@1+ (0.001953125,-3.998046875) [-3.998046875|4.0] "" XXX + SG_ POINT_3_SIGNAL_8 : 262|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_3_SIGNAL_9 : 264|1@1+ (1,0) [0|1] "" XXX + SG_ POINT_3_SIGNAL_10 : 265|7@1+ (1,0) [0|127] "" XXX + SG_ POINT_3_SIGNAL_11 : 272|1@1+ (1,0) [0|1] "" XXX + SG_ POINT_3_SIGNAL_12 : 273|6@1+ (1,0) [0|63] "" XXX + SG_ POINT_3_SIGNAL_13 : 279|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_3_SIGNAL_14 : 281|8@1+ (0.001953125,-0.248046875) [-0.248046875|0.25] "" XXX + SG_ POINT_3_SIGNAL_15 : 289|1@1+ (1,0) [0|1] "" XXX + SG_ POINT_3_SIGNAL_16 : 290|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_3_SIGNAL_17 : 292|3@1+ (1,0) [0|7] "" XXX + SG_ POINT_3_SIGNAL_18 : 295|6@1+ (1,0) [0|63] "" XXX + SG_ POINT_3_SIGNAL_19 : 301|8@1+ (1,0) [0|255] "" XXX + SG_ POINT_3_SIGNAL_20 : 309|1@1+ (1,0) [0|1] "" XXX + SG_ POINT_4_DISTANCE : 310|14@1+ (0.015625,0) [0|255.984375] "" XXX + SG_ POINT_4_SIGNAL_2 : 324|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_4_SIGNAL_3 : 326|8@1+ (0.001953125,-0.248046875) [-0.248046875|0.25] "" XXX + SG_ POINT_4_REL_VELOCITY : 334|13@1+ (0.03125,-66) [-66|189.96875] "" XXX + SG_ POINT_4_SIGNAL_5 : 347|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_4_SIGNAL_6 : 349|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_4_AZIMUTH : 351|12@1+ (0.001953125,-3.998046875) [-3.998046875|4.0] "" XXX + SG_ POINT_4_SIGNAL_8 : 363|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_4_SIGNAL_9 : 365|1@1+ (1,0) [0|1] "" XXX + SG_ POINT_4_SIGNAL_10 : 366|7@1+ (1,0) [0|127] "" XXX + SG_ POINT_4_SIGNAL_11 : 373|1@1+ (1,0) [0|1] "" XXX + SG_ POINT_4_SIGNAL_12 : 374|6@1+ (1,0) [0|63] "" XXX + SG_ POINT_4_SIGNAL_13 : 380|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_4_SIGNAL_14 : 382|8@1+ (0.001953125,-0.248046875) [-0.248046875|0.25] "" XXX + SG_ POINT_4_SIGNAL_15 : 390|1@1+ (1,0) [0|1] "" XXX + SG_ POINT_4_SIGNAL_16 : 391|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_4_SIGNAL_17 : 393|3@1+ (1,0) [0|7] "" XXX + SG_ POINT_4_SIGNAL_18 : 396|6@1+ (1,0) [0|63] "" XXX + SG_ POINT_4_SIGNAL_19 : 402|8@1+ (1,0) [0|255] "" XXX + SG_ POINT_4_SIGNAL_20 : 410|1@1+ (1,0) [0|1] "" XXX + SG_ POINT_5_DISTANCE : 411|14@1+ (0.015625,0) [0|255.984375] "" XXX + SG_ POINT_5_SIGNAL_2 : 425|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_5_SIGNAL_3 : 427|8@1+ (0.001953125,-0.248046875) [-0.248046875|0.25] "" XXX + SG_ POINT_5_REL_VELOCITY : 435|13@1+ (0.03125,-66) [-66|189.96875] "" XXX + SG_ POINT_5_SIGNAL_5 : 448|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_5_SIGNAL_6 : 450|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_5_AZIMUTH : 452|12@1+ (0.001953125,-3.998046875) [-3.998046875|4.0] "" XXX + SG_ POINT_5_SIGNAL_8 : 464|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_5_SIGNAL_9 : 466|1@1+ (1,0) [0|1] "" XXX + SG_ POINT_5_SIGNAL_10 : 467|7@1+ (1,0) [0|127] "" XXX + SG_ POINT_5_SIGNAL_11 : 474|1@1+ (1,0) [0|1] "" XXX + SG_ POINT_5_SIGNAL_12 : 475|6@1+ (1,0) [0|63] "" XXX + SG_ POINT_5_SIGNAL_13 : 481|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_5_SIGNAL_14 : 483|8@1+ (0.001953125,-0.248046875) [-0.248046875|0.25] "" XXX + SG_ POINT_5_SIGNAL_15 : 491|1@1+ (1,0) [0|1] "" XXX + SG_ POINT_5_SIGNAL_16 : 492|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_5_SIGNAL_17 : 494|3@1+ (1,0) [0|7] "" XXX + SG_ POINT_5_SIGNAL_18 : 497|6@1+ (1,0) [0|63] "" XXX + SG_ POINT_5_SIGNAL_19 : 503|8@1+ (1,0) [0|255] "" XXX + SG_ POINT_5_SIGNAL_20 : 511|1@1+ (1,0) [0|1] "" XXX + +BO_ 513 RADAR_POINTS_0x201: 64 RADAR + SG_ MESSAGE_ID : 0|5@1+ (1,0) [0|31] "" XXX + SG_ LAYOUT_ID : 5|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_1_DISTANCE : 7|14@1+ (0.015625,0) [0|255.984375] "" XXX + SG_ POINT_1_SIGNAL_2 : 21|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_1_SIGNAL_3 : 23|8@1+ (0.001953125,-0.248046875) [-0.248046875|0.25] "" XXX + SG_ POINT_1_REL_VELOCITY : 31|13@1+ (0.03125,-66) [-66|189.96875] "" XXX + SG_ POINT_1_SIGNAL_5 : 44|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_1_SIGNAL_6 : 46|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_1_AZIMUTH : 48|12@1+ (0.001953125,-3.998046875) [-3.998046875|4.0] "" XXX + SG_ POINT_1_SIGNAL_8 : 60|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_1_SIGNAL_9 : 62|1@1+ (1,0) [0|1] "" XXX + SG_ POINT_1_SIGNAL_10 : 63|7@1+ (1,0) [0|127] "" XXX + SG_ POINT_1_SIGNAL_11 : 70|1@1+ (1,0) [0|1] "" XXX + SG_ POINT_1_SIGNAL_12 : 71|6@1+ (1,0) [0|63] "" XXX + SG_ POINT_1_SIGNAL_13 : 77|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_1_SIGNAL_14 : 79|8@1+ (0.001953125,-0.248046875) [-0.248046875|0.25] "" XXX + SG_ POINT_1_SIGNAL_15 : 87|1@1+ (1,0) [0|1] "" XXX + SG_ POINT_1_SIGNAL_16 : 88|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_1_SIGNAL_17 : 90|3@1+ (1,0) [0|7] "" XXX + SG_ POINT_1_SIGNAL_18 : 93|6@1+ (1,0) [0|63] "" XXX + SG_ POINT_1_SIGNAL_19 : 99|8@1+ (1,0) [0|255] "" XXX + SG_ POINT_1_SIGNAL_20 : 107|1@1+ (1,0) [0|1] "" XXX + SG_ POINT_2_DISTANCE : 108|14@1+ (0.015625,0) [0|255.984375] "" XXX + SG_ POINT_2_SIGNAL_2 : 122|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_2_SIGNAL_3 : 124|8@1+ (0.001953125,-0.248046875) [-0.248046875|0.25] "" XXX + SG_ POINT_2_REL_VELOCITY : 132|13@1+ (0.03125,-66) [-66|189.96875] "" XXX + SG_ POINT_2_SIGNAL_5 : 145|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_2_SIGNAL_6 : 147|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_2_AZIMUTH : 149|12@1+ (0.001953125,-3.998046875) [-3.998046875|4.0] "" XXX + SG_ POINT_2_SIGNAL_8 : 161|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_2_SIGNAL_9 : 163|1@1+ (1,0) [0|1] "" XXX + SG_ POINT_2_SIGNAL_10 : 164|7@1+ (1,0) [0|127] "" XXX + SG_ POINT_2_SIGNAL_11 : 171|1@1+ (1,0) [0|1] "" XXX + SG_ POINT_2_SIGNAL_12 : 172|6@1+ (1,0) [0|63] "" XXX + SG_ POINT_2_SIGNAL_13 : 178|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_2_SIGNAL_14 : 180|8@1+ (0.001953125,-0.248046875) [-0.248046875|0.25] "" XXX + SG_ POINT_2_SIGNAL_15 : 188|1@1+ (1,0) [0|1] "" XXX + SG_ POINT_2_SIGNAL_16 : 189|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_2_SIGNAL_17 : 191|3@1+ (1,0) [0|7] "" XXX + SG_ POINT_2_SIGNAL_18 : 194|6@1+ (1,0) [0|63] "" XXX + SG_ POINT_2_SIGNAL_19 : 200|8@1+ (1,0) [0|255] "" XXX + SG_ POINT_2_SIGNAL_20 : 208|1@1+ (1,0) [0|1] "" XXX + SG_ POINT_3_DISTANCE : 209|14@1+ (0.015625,0) [0|255.984375] "" XXX + SG_ POINT_3_SIGNAL_2 : 223|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_3_SIGNAL_3 : 225|8@1+ (0.001953125,-0.248046875) [-0.248046875|0.25] "" XXX + SG_ POINT_3_REL_VELOCITY : 233|13@1+ (0.03125,-66) [-66|189.96875] "" XXX + SG_ POINT_3_SIGNAL_5 : 246|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_3_SIGNAL_6 : 248|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_3_AZIMUTH : 250|12@1+ (0.001953125,-3.998046875) [-3.998046875|4.0] "" XXX + SG_ POINT_3_SIGNAL_8 : 262|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_3_SIGNAL_9 : 264|1@1+ (1,0) [0|1] "" XXX + SG_ POINT_3_SIGNAL_10 : 265|7@1+ (1,0) [0|127] "" XXX + SG_ POINT_3_SIGNAL_11 : 272|1@1+ (1,0) [0|1] "" XXX + SG_ POINT_3_SIGNAL_12 : 273|6@1+ (1,0) [0|63] "" XXX + SG_ POINT_3_SIGNAL_13 : 279|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_3_SIGNAL_14 : 281|8@1+ (0.001953125,-0.248046875) [-0.248046875|0.25] "" XXX + SG_ POINT_3_SIGNAL_15 : 289|1@1+ (1,0) [0|1] "" XXX + SG_ POINT_3_SIGNAL_16 : 290|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_3_SIGNAL_17 : 292|3@1+ (1,0) [0|7] "" XXX + SG_ POINT_3_SIGNAL_18 : 295|6@1+ (1,0) [0|63] "" XXX + SG_ POINT_3_SIGNAL_19 : 301|8@1+ (1,0) [0|255] "" XXX + SG_ POINT_3_SIGNAL_20 : 309|1@1+ (1,0) [0|1] "" XXX + SG_ POINT_4_DISTANCE : 310|14@1+ (0.015625,0) [0|255.984375] "" XXX + SG_ POINT_4_SIGNAL_2 : 324|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_4_SIGNAL_3 : 326|8@1+ (0.001953125,-0.248046875) [-0.248046875|0.25] "" XXX + SG_ POINT_4_REL_VELOCITY : 334|13@1+ (0.03125,-66) [-66|189.96875] "" XXX + SG_ POINT_4_SIGNAL_5 : 347|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_4_SIGNAL_6 : 349|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_4_AZIMUTH : 351|12@1+ (0.001953125,-3.998046875) [-3.998046875|4.0] "" XXX + SG_ POINT_4_SIGNAL_8 : 363|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_4_SIGNAL_9 : 365|1@1+ (1,0) [0|1] "" XXX + SG_ POINT_4_SIGNAL_10 : 366|7@1+ (1,0) [0|127] "" XXX + SG_ POINT_4_SIGNAL_11 : 373|1@1+ (1,0) [0|1] "" XXX + SG_ POINT_4_SIGNAL_12 : 374|6@1+ (1,0) [0|63] "" XXX + SG_ POINT_4_SIGNAL_13 : 380|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_4_SIGNAL_14 : 382|8@1+ (0.001953125,-0.248046875) [-0.248046875|0.25] "" XXX + SG_ POINT_4_SIGNAL_15 : 390|1@1+ (1,0) [0|1] "" XXX + SG_ POINT_4_SIGNAL_16 : 391|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_4_SIGNAL_17 : 393|3@1+ (1,0) [0|7] "" XXX + SG_ POINT_4_SIGNAL_18 : 396|6@1+ (1,0) [0|63] "" XXX + SG_ POINT_4_SIGNAL_19 : 402|8@1+ (1,0) [0|255] "" XXX + SG_ POINT_4_SIGNAL_20 : 410|1@1+ (1,0) [0|1] "" XXX + SG_ POINT_5_DISTANCE : 411|14@1+ (0.015625,0) [0|255.984375] "" XXX + SG_ POINT_5_SIGNAL_2 : 425|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_5_SIGNAL_3 : 427|8@1+ (0.001953125,-0.248046875) [-0.248046875|0.25] "" XXX + SG_ POINT_5_REL_VELOCITY : 435|13@1+ (0.03125,-66) [-66|189.96875] "" XXX + SG_ POINT_5_SIGNAL_5 : 448|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_5_SIGNAL_6 : 450|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_5_AZIMUTH : 452|12@1+ (0.001953125,-3.998046875) [-3.998046875|4.0] "" XXX + SG_ POINT_5_SIGNAL_8 : 464|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_5_SIGNAL_9 : 466|1@1+ (1,0) [0|1] "" XXX + SG_ POINT_5_SIGNAL_10 : 467|7@1+ (1,0) [0|127] "" XXX + SG_ POINT_5_SIGNAL_11 : 474|1@1+ (1,0) [0|1] "" XXX + SG_ POINT_5_SIGNAL_12 : 475|6@1+ (1,0) [0|63] "" XXX + SG_ POINT_5_SIGNAL_13 : 481|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_5_SIGNAL_14 : 483|8@1+ (0.001953125,-0.248046875) [-0.248046875|0.25] "" XXX + SG_ POINT_5_SIGNAL_15 : 491|1@1+ (1,0) [0|1] "" XXX + SG_ POINT_5_SIGNAL_16 : 492|2@1+ (1,0) [0|3] "" XXX + SG_ POINT_5_SIGNAL_17 : 494|3@1+ (1,0) [0|7] "" XXX + SG_ POINT_5_SIGNAL_18 : 497|6@1+ (1,0) [0|63] "" XXX + SG_ POINT_5_SIGNAL_19 : 503|8@1+ (1,0) [0|255] "" XXX + SG_ POINT_5_SIGNAL_20 : 511|1@1+ (1,0) [0|1] "" XXX + +BO_ 260 RADAR_POINTS_CHECKSUM_0x104: 3 RADAR + SG_ CRC16 : 0|16@1+ (1,0) [0|65535] "" XXX + +BO_ 516 RADAR_POINTS_CHECKSUM_0x204: 3 RADAR + SG_ CRC16 : 0|16@1+ (1,0) [0|65535] "" XXX