diff options
author | Tomas Kukosa <kukosa@herman.cz> | 2021-08-16 07:20:58 +0200 |
---|---|---|
committer | Wireshark GitLab Utility <gerald+gitlab-utility@wireshark.org> | 2021-08-25 16:29:23 +0000 |
commit | 522414a0915ff07f395a6227c18f5d6febcc5808 (patch) | |
tree | f4eca1f15618be77094ff1b68ccaa6848dc06d6e /epan/dissectors/asn1 | |
parent | 09a993da39976856e616ad7911a3ac72e5abfe6c (diff) |
ITS: use custom value format for DSRC element DeltaTime
Diffstat (limited to 'epan/dissectors/asn1')
-rw-r--r-- | epan/dissectors/asn1/its/its.cnf | 1 | ||||
-rw-r--r-- | epan/dissectors/asn1/its/packet-its-template.c | 16 |
2 files changed, 17 insertions, 0 deletions
diff --git a/epan/dissectors/asn1/its/its.cnf b/epan/dissectors/asn1/its/its.cnf index c2c129aa18..e789332205 100644 --- a/epan/dissectors/asn1/its/its.cnf +++ b/epan/dissectors/asn1/its/its.cnf @@ -315,6 +315,7 @@ TimeIntervalConfidence STRINGS=VALS(dsrc_TimeIntervalConfidence_val Velocity DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(dsrc_velocity_fmt) Angle DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(dsrc_angle_fmt) HeadingDSRC DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(dsrc_angle_fmt) +DeltaTime DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(dsrc_delta_time_fmt) #.END #.FIELD_ATTR diff --git a/epan/dissectors/asn1/its/packet-its-template.c b/epan/dissectors/asn1/its/packet-its-template.c index d6f0aad4f4..afab704493 100644 --- a/epan/dissectors/asn1/its/packet-its-template.c +++ b/epan/dissectors/asn1/its/packet-its-template.c @@ -644,6 +644,22 @@ dsrc_angle_fmt(gchar *s, guint32 v) g_snprintf(s, ITEM_LABEL_LENGTH, "%.2f° (%d)", v * 0.0125, v); } +static void +dsrc_delta_time_fmt(gchar *s, guint32 v) +{ + gint32 dt = (gint32)v; + if (dt == -122) { + g_snprintf(s, ITEM_LABEL_LENGTH, "unknown(%d)", dt); + } else if (dt == -121) { + g_snprintf(s, ITEM_LABEL_LENGTH, "moreThanMinus20Minutes(%d)", dt); + } else if (dt == 121) { + g_snprintf(s, ITEM_LABEL_LENGTH, "moreThanPlus20Minutes(%d)", dt); + } else { + g_snprintf(s, ITEM_LABEL_LENGTH, "%s%d:%02u (%d)", + (dt < 0) ? "-" : "", abs(dt) / 6, abs(dt) % 6 * 10, dt); + } +} + static int dissect_its_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) { |