aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-artnet.c
diff options
context:
space:
mode:
authorJustin J. Novack <jnovack@gmail.com>2017-12-21 22:16:11 -0500
committerAnders Broman <a.broman58@gmail.com>2017-12-22 20:45:56 +0000
commit7099a833bedf89416149767bd02ac572406d00a6 (patch)
tree7141b828c78a3ac45fdb0a69554ff6353bf444aa /epan/dissectors/packet-artnet.c
parent8a961e8e157fc16a48a78ff908b006a3762b50d3 (diff)
Added ArtTrigger dissection
The ArtTrigger packet is used to send trigger macros to the network. The most common implementation involves a single controller broadcasting to all other devices. Please see page 41 of the referenced PDF for the packet definition of the ArtTrigger OpCode. https://www.artisticlicence.com/WebSiteMaster/User%20Guides/art-net.pdf Change-Id: Iec2e749732e5462cf04b9c6942df7379e4247255 Reviewed-on: https://code.wireshark.org/review/24936 Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'epan/dissectors/packet-artnet.c')
-rw-r--r--epan/dissectors/packet-artnet.c48
1 files changed, 48 insertions, 0 deletions
diff --git a/epan/dissectors/packet-artnet.c b/epan/dissectors/packet-artnet.c
index 8e733682a7..4ba6985523 100644
--- a/epan/dissectors/packet-artnet.c
+++ b/epan/dissectors/packet-artnet.c
@@ -1934,6 +1934,10 @@ static int hf_artnet_time_sync = -1;
/* ArtTrigger */
static int hf_artnet_trigger = -1;
+static int hf_artnet_trigger_oemcode = -1;
+static int hf_artnet_trigger_key = -1;
+static int hf_artnet_trigger_subkey = -1;
+static int hf_artnet_trigger_data = -1;
/* ArtDirectory */
static int hf_artnet_directory = -1;
@@ -3046,6 +3050,26 @@ dissect_artnet_time_sync(tvbuff_t *tvb _U_, guint offset, proto_tree *tree _U_)
static guint
dissect_artnet_trigger(tvbuff_t *tvb _U_, guint offset, proto_tree *tree _U_)
{
+ proto_tree_add_item(tree, hf_artnet_filler, tvb,
+ offset, 2, ENC_NA);
+ offset += 2;
+
+ proto_tree_add_item(tree, hf_artnet_trigger_oemcode, tvb,
+ offset, 2, ENC_BIG_ENDIAN);
+ offset += 2;
+
+ proto_tree_add_item(tree, hf_artnet_trigger_key, tvb,
+ offset, 1, ENC_BIG_ENDIAN);
+ offset += 1;
+
+ proto_tree_add_item(tree, hf_artnet_trigger_subkey, tvb,
+ offset, 1, ENC_BIG_ENDIAN);
+ offset += 1;
+
+ proto_tree_add_item(tree, hf_artnet_trigger_data, tvb,
+ offset, 512, ENC_NA);
+ offset += 512;
+
return offset;
}
@@ -5180,6 +5204,30 @@ proto_register_artnet(void) {
FT_NONE, BASE_NONE, NULL, 0,
"Art-Net ArtTrigger packet", HFILL }},
+ { &hf_artnet_trigger_oemcode,
+ { "OEM Code",
+ "artnet.trigger.oemcode",
+ FT_UINT16, BASE_HEX, 0, 0x0,
+ NULL, HFILL }},
+
+ { &hf_artnet_trigger_key,
+ { "Key",
+ "artnet.trigger.key",
+ FT_UINT8, BASE_HEX_DEC, 0, 0x0,
+ NULL, HFILL }},
+
+ { &hf_artnet_trigger_subkey,
+ { "SubKey",
+ "artnet.trigger.subkey",
+ FT_UINT8, BASE_HEX_DEC, 0, 0x0,
+ NULL, HFILL }},
+
+ { &hf_artnet_trigger_data,
+ { "Data",
+ "artnet.trigger.data",
+ FT_BYTES, BASE_NONE, NULL, 0x0,
+ NULL, HFILL }},
+
/* ArtDirectory */
{ &hf_artnet_directory,
{ "ArtDirectory packet",