aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-rtacser.c
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2013-08-06 17:18:40 +0000
committerAnders Broman <anders.broman@ericsson.com>2013-08-06 17:18:40 +0000
commitfcc3728630b201053ccb0dc921ff4e1a5dd83081 (patch)
treeead1aee27239ebab0ec4d8625661de55158877ef /epan/dissectors/packet-rtacser.c
parent06c37f8665d65f9b1b57e7e07e4fdb4f5899abc2 (diff)
From Chris Bontje:
RTAC Serial Dissector Improvement for INFO Column Display. https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9016 svn path=/trunk/; revision=51172
Diffstat (limited to 'epan/dissectors/packet-rtacser.c')
-rw-r--r--epan/dissectors/packet-rtacser.c22
1 files changed, 20 insertions, 2 deletions
diff --git a/epan/dissectors/packet-rtacser.c b/epan/dissectors/packet-rtacser.c
index b8598c513f..cf0a834e48 100644
--- a/epan/dissectors/packet-rtacser.c
+++ b/epan/dissectors/packet-rtacser.c
@@ -146,6 +146,7 @@ dissect_rtacser_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
proto_item *rtacser_item, *ts_item, *cl_item, *data_payload;
proto_tree *rtacser_tree, *cl_tree;
int offset=0, len=0;
+ guint event_type;
guint32 timestamp1, timestamp2;
gboolean cts, dcd, dsr, rts, dtr, ring, mbok;
tvbuff_t *payload_tvb;
@@ -169,11 +170,16 @@ dissect_rtacser_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
proto_item_set_text(ts_item, "Arrived At Time: %u.%u" , timestamp1, timestamp2);
offset += 8;
+ /* Set INFO column with RTAC Serial Event Type */
+ event_type = tvb_get_guint8(tvb, offset);
+ col_clear(pinfo->cinfo, COL_INFO); /* clear out stuff in the info column */
+ col_add_fstr(pinfo->cinfo, COL_INFO, "%-21s", val_to_str_const(event_type, rtacser_eventtype_vals, "Unknown Type"));
+
/* Add event type to tree */
proto_tree_add_item(rtacser_tree, hf_rtacser_event_type, tvb, offset, 1, ENC_BIG_ENDIAN);
offset += 1;
- /* Retrieve and add EIA-232 serial control lines to tree */
+ /* Retrieve EIA-232 serial control line states */
cts = tvb_get_guint8(tvb, offset) & RTACSER_CTRL_CTS;
dcd = tvb_get_guint8(tvb, offset) & RTACSER_CTRL_DCD;
dsr = tvb_get_guint8(tvb, offset) & RTACSER_CTRL_DSR;
@@ -185,6 +191,18 @@ dissect_rtacser_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
cl_item = proto_tree_add_text(rtacser_tree, tvb, offset, 1, "Control Lines");
cl_tree = proto_item_add_subtree(cl_item, ett_rtacser_cl);
+ /* Add UART Control Line information to INFO column */
+ col_append_str(pinfo->cinfo, COL_INFO, " ( ");
+ (cts) ? col_append_str(pinfo->cinfo, COL_INFO, "CTS") : col_append_str(pinfo->cinfo, COL_INFO, "/CTS");
+ (dcd) ? col_append_sep_str(pinfo->cinfo, COL_INFO, NULL, "DCD") : col_append_sep_str(pinfo->cinfo, COL_INFO, NULL, "/DCD");
+ (dsr) ? col_append_sep_str(pinfo->cinfo, COL_INFO, NULL, "DSR") : col_append_sep_str(pinfo->cinfo, COL_INFO, NULL, "/DSR");
+ (rts) ? col_append_sep_str(pinfo->cinfo, COL_INFO, NULL, "RTS") : col_append_sep_str(pinfo->cinfo, COL_INFO, NULL, "/RTS");
+ (dtr) ? col_append_sep_str(pinfo->cinfo, COL_INFO, NULL, "DTR") : col_append_sep_str(pinfo->cinfo, COL_INFO, NULL, "/DTR");
+ (ring) ? col_append_sep_str(pinfo->cinfo, COL_INFO, NULL, "RING") : col_append_sep_str(pinfo->cinfo, COL_INFO, NULL, "/RING");
+ (mbok) ? col_append_sep_str(pinfo->cinfo, COL_INFO, NULL, "MBOK") : col_append_sep_str(pinfo->cinfo, COL_INFO, NULL, "/MBOK");
+ col_append_str(pinfo->cinfo, COL_INFO, " )");
+
+ /* Add UART Control Line information to tree */
proto_item_append_text(cl_item, " (");
(cts) ? proto_item_append_text(cl_item, "CTS, ") : proto_item_append_text(cl_item, "/CTS, ");
(dcd) ? proto_item_append_text(cl_item, "DCD, ") : proto_item_append_text(cl_item, "/DCD, ");
@@ -204,7 +222,7 @@ dissect_rtacser_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
proto_tree_add_item(cl_tree, hf_rtacser_ctrl_mbok, tvb, offset, 1, ENC_BIG_ENDIAN);
offset += 1;
- /* 2-byte footer with unknown purpose */
+ /* 2-byte footer */
proto_tree_add_item(rtacser_tree, hf_rtacser_footer, tvb, offset, 2, ENC_BIG_ENDIAN);
offset += 2;