aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-s7comm.c
diff options
context:
space:
mode:
authorJuergen Kosel <juergen.kosel@gmx.de>2018-11-16 18:13:46 +0100
committerAnders Broman <a.broman58@gmail.com>2018-11-18 21:29:10 +0000
commit353e7065ff66b1e320733cc859cd6ce183d74bb6 (patch)
tree85c5f0847f05c8cfe29c218b7245dc4b9bda1b54 /epan/dissectors/packet-s7comm.c
parent87862cb74b1518131cfb7dc90d32a7f8cbd3b5ae (diff)
s7comm: Add additional syntax ids 0x83 and 0x84 for NCK data access
Beside the standard NCK syntax id 0x82 the ids 0x83 and 0x84 are used for values with metric and inch units. Change-Id: I62bf2d2e583905c9fa90e4e7caa614a6fe6a7155 Signed-off-by: Juergen Kosel <juergen.kosel@gmx.de> Reviewed-on: https://code.wireshark.org/review/30674 Petri-Dish: Anders Broman <a.broman58@gmail.com> 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-s7comm.c')
-rw-r--r--epan/dissectors/packet-s7comm.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/epan/dissectors/packet-s7comm.c b/epan/dissectors/packet-s7comm.c
index d6bdca1acc..a15c27037f 100644
--- a/epan/dissectors/packet-s7comm.c
+++ b/epan/dissectors/packet-s7comm.c
@@ -436,10 +436,12 @@ static const value_string item_transportsizenames[] = {
#define S7COMM_SYNTAXID_ALARM_ACKSET 0x19 /* Alarm acknowledge message dataset */
#define S7COMM_SYNTAXID_ALARM_QUERYREQSET 0x1a /* Alarm query request dataset */
#define S7COMM_SYNTAXID_NOTIFY_INDSET 0x1c /* Notify indication dataset */
+#define S7COMM_SYNTAXID_NCK 0x82 /* Sinumerik NCK HMI access (current units) */
+#define S7COMM_SYNTAXID_NCK_METRIC 0x83 /* Sinumerik NCK HMI access metric units */
+#define S7COMM_SYNTAXID_NCK_INCH 0x84 /* Sinumerik NCK HMI access inch */
#define S7COMM_SYNTAXID_DRIVEESANY 0xa2 /* seen on Drive ES Starter with routing over S7 */
#define S7COMM_SYNTAXID_1200SYM 0xb2 /* Symbolic address mode of S7-1200 */
#define S7COMM_SYNTAXID_DBREAD 0xb0 /* Kind of DB block read, seen only at an S7-400 */
-#define S7COMM_SYNTAXID_NCK 0x82 /* Sinumerik NCK HMI access */
static const value_string item_syntaxid_names[] = {
{ S7COMM_SYNTAXID_S7ANY, "S7ANY" },
@@ -449,10 +451,12 @@ static const value_string item_syntaxid_names[] = {
{ S7COMM_SYNTAXID_ALARM_ACKSET, "ALARM_ACK" },
{ S7COMM_SYNTAXID_ALARM_QUERYREQSET, "ALARM_QUERYREQ" },
{ S7COMM_SYNTAXID_NOTIFY_INDSET, "NOTIFY_IND" },
+ { S7COMM_SYNTAXID_NCK, "NCK" },
+ { S7COMM_SYNTAXID_NCK_METRIC, "NCK_M" },
+ { S7COMM_SYNTAXID_NCK_INCH, "NCK_I" },
{ S7COMM_SYNTAXID_DRIVEESANY, "DRIVEESANY" },
{ S7COMM_SYNTAXID_1200SYM, "1200SYM" },
{ S7COMM_SYNTAXID_DBREAD, "DBREAD" },
- { S7COMM_SYNTAXID_NCK, "NCK" },
{ 0, NULL }
};
@@ -2556,7 +2560,7 @@ s7comm_syntaxid_1200sym(tvbuff_t *tvb,
/*******************************************************************************************************
*
* Addressdefinition for Sinumeric NCK access
- * type == 0x12, length == 8, syntax-ID == 0x82
+ * type == 0x12, length == 8, syntax-ID == 0x82 or == 0x83 or == 0x84
*
*******************************************************************************************************/
static guint32
@@ -2661,7 +2665,10 @@ s7comm_decode_param_item(tvbuff_t *tvb,
} else if (var_spec_type == 0x12 && var_spec_length >= 14 && var_spec_syntax_id == S7COMM_SYNTAXID_1200SYM) {
/* TIA S7 1200 symbolic address mode */
offset = s7comm_syntaxid_1200sym(tvb, offset, item_tree, var_spec_length);
- } else if (var_spec_type == 0x12 && var_spec_length == 8 && var_spec_syntax_id == S7COMM_SYNTAXID_NCK) {
+ } else if (var_spec_type == 0x12 && var_spec_length == 8
+ && ((var_spec_syntax_id == S7COMM_SYNTAXID_NCK)
+ || (var_spec_syntax_id == S7COMM_SYNTAXID_NCK_METRIC)
+ || (var_spec_syntax_id == S7COMM_SYNTAXID_NCK_INCH))) {
/* Sinumerik NCK access */
offset = s7comm_syntaxid_nck(tvb, offset, item_tree);
} else if (var_spec_type == 0x12 && var_spec_length == 10 && var_spec_syntax_id == S7COMM_SYNTAXID_DRIVEESANY) {