You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by cd...@apache.org on 2019/10/11 17:02:38 UTC

[plc4x] 04/04: - Continued working on the mspec for s7 (Continued implementing the SZL handling)

This is an automated email from the ASF dual-hosted git repository.

cdutz pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git

commit 601410a6c31d6e72ba51ce4e7daad36c6e3dce5a
Author: Christofer Dutz <ch...@c-ware.de>
AuthorDate: Fri Oct 11 19:02:27 2019 +0200

    - Continued working on the mspec for s7 (Continued implementing the SZL handling)
---
 .../s7/src/main/resources/protocols/s7/s7.mspec     | 21 +++++++++------------
 1 file changed, 9 insertions(+), 12 deletions(-)

diff --git a/protocols/s7/src/main/resources/protocols/s7/s7.mspec b/protocols/s7/src/main/resources/protocols/s7/s7.mspec
index af14ad2..8c3371e 100644
--- a/protocols/s7/src/main/resources/protocols/s7/s7.mspec
+++ b/protocols/s7/src/main/resources/protocols/s7/s7.mspec
@@ -190,18 +190,15 @@
     ]
 ]
 
-// This part is actually specified: http://www.kleissler-online.de/Siemens/SFCs.pdf
-// http://www.efesotomasyon.com/html/siemens/OP-Liste_en.pdf
-// https://cache.industry.siemens.com/dl/files/697/101906697/att_118286/v1/net_s7-300_s7-400_di_do_drahtbruch_en.pdf
 [type 'SzlId'
-    [enum SzlModuleTypeClass 'typeClass']
-    [simple uint 4           'sublistExtract']
-    [enum SzlSublist         'sublistList']
+    [enum   SzlModuleTypeClass 'typeClass']
+    [simple uint 4             'sublistExtract']
+    [enum   SzlSublist         'sublistList']
 ]
 
 [type 'SzlDataTreeItem'
     [simple uint 16 'itemIndex']
-    [array  int 8 'mlfb' count '20']
+    [array  int 8   'mlfb' count '20']
     [simple uint 16 'moduleTypeId']
     [simple uint 16 'ausbg']
     [simple uint 16 'ausbe']
@@ -224,7 +221,7 @@
             [array S7VarPayloadStatusItem 'items' count 'CAST(parameter, S7ParameterWriteVarResponse).numItems']
         ]
         ['0x00','0x07' S7PayloadUserData
-            [array S7PayloadUserDataItem 'items' count 'COUNT(CAST(parameter, S7ParameterUserData).items)']
+            [array S7PayloadUserDataItem 'items' count 'COUNT(CAST(parameter, S7ParameterUserData).items)' ['CAST(CAST(parameter, S7ParameterUserData).items[0], S7ParameterUserDataItemCPUFunctions).cpuFunctionType']]
         ]
     ]
 ]
@@ -242,16 +239,16 @@
     [simple uint 8 'returnCode']
 ]
 
-[discriminatedType 'S7PayloadUserDataItem'
+[discriminatedType 'S7PayloadUserDataItem' [uint 4 'cpuFunctionType']
     [simple   uint 8 'returnCode']
     [simple   uint 8 'transportSize']
     [implicit uint 16 'dataLength' 'lengthInBytes - 4']
     [simple   SzlId   'szlId']
     [simple   uint 16 'szlIndex']
-    [typeSwitch ''
-        ['' S7PayloadUserDataItemCpuFunctionReadSzlRequest
+    [typeSwitch 'cpuFunctionType'
+        ['0x04' S7PayloadUserDataItemCpuFunctionReadSzlRequest
         ]
-        ['' S7PayloadUserDataItemCpuFunctionReadSzlResponse
+        ['0x08' S7PayloadUserDataItemCpuFunctionReadSzlResponse
             [const    uint 16 'szlItemLength' '28']
             [implicit uint 16 'szlItemCount'  'COUNT(items)']
             [array SzlDataTreeItem 'items' count 'szlItemCount']