From 12f908c1dd2e5ac9e9fe92c2668c770e5b5d0c11 Mon Sep 17 00:00:00 2001 From: aschwinn <al.schwinn@gsi.de> Date: Tue, 6 Jun 2017 16:14:18 +0200 Subject: [PATCH] Bug 1407 - Remove Plugin specific design validation Rules --- silecs-codegen/src/xml/genparam.py | 37 ++++--------------- silecs-codegen/src/xml/model/Register.py | 6 ++- .../client/Beckhoff_BC9020.silecsparam | 4 +- .../client/Beckhoff_CX9020.silecsparam | 4 +- .../client/Rabbit_BlockMode.silecsparam | 4 +- .../client/Rabbit_DeviceMode.silecsparam | 4 +- .../client/Schneider_M340.silecsparam | 4 +- .../Schneider_PremiumQuantum.silecsparam | 4 +- .../client/Siemens_Step7Block.silecsparam | 4 +- .../client/Siemens_Step7Device.silecsparam | 4 +- .../client/Siemens_TiaBlock.silecsparam | 4 +- .../client/Siemens_TiaDevice.silecsparam | 4 +- 12 files changed, 33 insertions(+), 50 deletions(-) diff --git a/silecs-codegen/src/xml/genparam.py b/silecs-codegen/src/xml/genparam.py index e93bb7c..60be9d2 100644 --- a/silecs-codegen/src/xml/genparam.py +++ b/silecs-codegen/src/xml/genparam.py @@ -482,38 +482,17 @@ def computeChecksumController( workspacePath, controllerNode, silecsVersion, PLC return CRC32 def computeChecksumClass(designDOM, CRC32, logTopics={'errorlog': True}): - blockList = designDOM.xpathEval("Block") + blockList = designDOM.xpathEval("//Block") for blockNode in blockList: blockName = blockNode.prop('name') blockMode = blockNode.prop('mode') - registerList = blockNode.xpathEval("Register") - for register in registerList: - regName = register.prop("name") - CRC32 = zlib.crc32(trim(regName),CRC32)& 0xffffffff - - regFormat = register.prop("format") - CRC32 = zlib.crc32(trim(regFormat),CRC32)& 0xffffffff - - try: - # array-dim1 is an optional attribute!!! - regDim1 = register.prop("array-dim1") - except: - regDim1 = "1" - CRC32 = zlib.crc32(trim(regDim1),CRC32)& 0xffffffff - - try: - # array-dim2 is an optional attribute!!! - regDim2 = register.prop("array-dim2") - except: - regDim2 = "1" - CRC32 = zlib.crc32(trim(regDim2),CRC32)& 0xffffffff - - try: - # string-len is an optional attribute!!! - stringLength = register.prop("string-len") - CRC32 = zlib.crc32(trim(stringLength),CRC32)& 0xffffffff - except: - pass + for registerNode in blockNode.xpathEval("Register"): + register = DesignRegister(registerNode) + CRC32 = zlib.crc32(trim(register.name),CRC32)& 0xffffffff + CRC32 = zlib.crc32(trim(register.format),CRC32)& 0xffffffff + CRC32 = zlib.crc32(trim(str(register.dim1)),CRC32)& 0xffffffff + CRC32 = zlib.crc32(trim(str(register.dim2)),CRC32)& 0xffffffff + CRC32 = zlib.crc32(trim(str(register.stringLength)),CRC32)& 0xffffffff return CRC32 #------------------------------------------------------------------------- diff --git a/silecs-codegen/src/xml/model/Register.py b/silecs-codegen/src/xml/model/Register.py index 8388b2d..6695e7e 100644 --- a/silecs-codegen/src/xml/model/Register.py +++ b/silecs-codegen/src/xml/model/Register.py @@ -61,6 +61,9 @@ class Register(object): def isArray2D(self): return self.valueType == 'array2D' or 'stringArray2D' + + def isStringType(self): + return self.valueType == 'string' or 'stringArray' or 'stringArray2D' #has some additionalValues class ParamRegister(Register): @@ -95,7 +98,8 @@ class DesignRegister(Register): self.fesaFieldName = "" if self.xmlNode.hasProp("fesaFieldName"): self.fesaFieldName = xmlNode.prop("fesaFieldName") - self.generateFesaValueItem = xsdBooleanToBoolean(xmlNode.prop("generateFesaValueItem")) + if self.xmlNode.hasProp("generateFesaValueItem"): #SilecsHEader does not have this attribute + self.generateFesaValueItem = xsdBooleanToBoolean(xmlNode.prop("generateFesaValueItem")) def getFesaName(self): if self.fesaFieldName == "": return self.name diff --git a/silecs-codegen/src/xml/test/generated_correct/client/Beckhoff_BC9020.silecsparam b/silecs-codegen/src/xml/test/generated_correct/client/Beckhoff_BC9020.silecsparam index a26d3ee..8095901 100644 --- a/silecs-codegen/src/xml/test/generated_correct/client/Beckhoff_BC9020.silecsparam +++ b/silecs-codegen/src/xml/test/generated_correct/client/Beckhoff_BC9020.silecsparam @@ -2,8 +2,8 @@ <SILECS-Param silecs-version="DEV"> <Mapping-Info> <Owner user-login="schwinn"/> - <Generation date="2017-06-06 11:12:20.813259"/> - <Deployment checksum="2843029646"/> + <Generation date="2017-06-06 16:10:01.024808"/> + <Deployment checksum="3184721915"/> </Mapping-Info> <SILECS-Mapping plc-name="Beckhoff_BC9020" plc-brand="BECKHOFF" plc-system="TWINCat" plc-model="BC9020" protocol="BLOCK_MODE" address="32768" domain="NotUsed" used-mem="TODO"> <SILECS-Class name="SilecsHeader" version="1.0.0" address="32768" used-mem="MW16384..MW16407 / 24 words"> diff --git a/silecs-codegen/src/xml/test/generated_correct/client/Beckhoff_CX9020.silecsparam b/silecs-codegen/src/xml/test/generated_correct/client/Beckhoff_CX9020.silecsparam index 03c1561..e36c8eb 100644 --- a/silecs-codegen/src/xml/test/generated_correct/client/Beckhoff_CX9020.silecsparam +++ b/silecs-codegen/src/xml/test/generated_correct/client/Beckhoff_CX9020.silecsparam @@ -2,8 +2,8 @@ <SILECS-Param silecs-version="DEV"> <Mapping-Info> <Owner user-login="schwinn"/> - <Generation date="2017-06-06 11:12:20.853125"/> - <Deployment checksum="427563505"/> + <Generation date="2017-06-06 16:10:01.058078"/> + <Deployment checksum="656547166"/> </Mapping-Info> <SILECS-Mapping plc-name="Beckhoff_CX9020" plc-brand="BECKHOFF" plc-system="TWINCat" plc-model="CX9020" protocol="BLOCK_MODE" address="24576" domain="NotUsed" used-mem="TODO"> <SILECS-Class name="SilecsHeader" version="1.0.0" address="24576" used-mem="MW12288..MW12313 / 26 words"> diff --git a/silecs-codegen/src/xml/test/generated_correct/client/Rabbit_BlockMode.silecsparam b/silecs-codegen/src/xml/test/generated_correct/client/Rabbit_BlockMode.silecsparam index b3275d4..d7f5f4a 100644 --- a/silecs-codegen/src/xml/test/generated_correct/client/Rabbit_BlockMode.silecsparam +++ b/silecs-codegen/src/xml/test/generated_correct/client/Rabbit_BlockMode.silecsparam @@ -2,8 +2,8 @@ <SILECS-Param silecs-version="DEV"> <Mapping-Info> <Owner user-login="schwinn"/> - <Generation date="2017-06-06 11:12:21.011368"/> - <Deployment checksum="3940683809"/> + <Generation date="2017-06-06 16:10:01.179699"/> + <Deployment checksum="1525793519"/> </Mapping-Info> <SILECS-Mapping plc-name="Rabbit_BlockMode" plc-brand="DIGI" plc-system="Standard-C" plc-model="Rabbit_RCM_4010" protocol="BLOCK_MODE" address="0" domain="NotUsed" used-mem="TODO"> <SILECS-Class name="SilecsHeader" version="1.0.0" address="0" used-mem="MW0..MW21 / 22 words"> diff --git a/silecs-codegen/src/xml/test/generated_correct/client/Rabbit_DeviceMode.silecsparam b/silecs-codegen/src/xml/test/generated_correct/client/Rabbit_DeviceMode.silecsparam index 3f7bedc..b3728a3 100644 --- a/silecs-codegen/src/xml/test/generated_correct/client/Rabbit_DeviceMode.silecsparam +++ b/silecs-codegen/src/xml/test/generated_correct/client/Rabbit_DeviceMode.silecsparam @@ -2,8 +2,8 @@ <SILECS-Param silecs-version="DEV"> <Mapping-Info> <Owner user-login="schwinn"/> - <Generation date="2017-06-06 11:12:20.972129"/> - <Deployment checksum="3940683809"/> + <Generation date="2017-06-06 16:10:01.151147"/> + <Deployment checksum="1525793519"/> </Mapping-Info> <SILECS-Mapping plc-name="Rabbit_DeviceMode" plc-brand="DIGI" plc-system="Standard-C" plc-model="Rabbit_RCM_4010" protocol="DEVICE_MODE" address="0" domain="NotUsed" used-mem="TODO"> <SILECS-Class name="SilecsHeader" version="1.0.0" address="0" used-mem="MW0..MW21 / 22 words"> diff --git a/silecs-codegen/src/xml/test/generated_correct/client/Schneider_M340.silecsparam b/silecs-codegen/src/xml/test/generated_correct/client/Schneider_M340.silecsparam index a4271a2..cc3ecef 100644 --- a/silecs-codegen/src/xml/test/generated_correct/client/Schneider_M340.silecsparam +++ b/silecs-codegen/src/xml/test/generated_correct/client/Schneider_M340.silecsparam @@ -2,8 +2,8 @@ <SILECS-Param silecs-version="DEV"> <Mapping-Info> <Owner user-login="schwinn"/> - <Generation date="2017-06-06 11:12:20.934851"/> - <Deployment checksum="3940683809"/> + <Generation date="2017-06-06 16:10:01.121096"/> + <Deployment checksum="1525793519"/> </Mapping-Info> <SILECS-Mapping plc-name="Schneider_M340" plc-brand="SCHNEIDER" plc-system="UNITY Pro" plc-model="M340" protocol="BLOCK_MODE" address="0" domain="NotUsed" used-mem="TODO"> <SILECS-Class name="SilecsHeader" version="1.0.0" address="0" used-mem="MW0..MW21 / 22 words"> diff --git a/silecs-codegen/src/xml/test/generated_correct/client/Schneider_PremiumQuantum.silecsparam b/silecs-codegen/src/xml/test/generated_correct/client/Schneider_PremiumQuantum.silecsparam index fc8dc15..cf3064a 100644 --- a/silecs-codegen/src/xml/test/generated_correct/client/Schneider_PremiumQuantum.silecsparam +++ b/silecs-codegen/src/xml/test/generated_correct/client/Schneider_PremiumQuantum.silecsparam @@ -2,8 +2,8 @@ <SILECS-Param silecs-version="DEV"> <Mapping-Info> <Owner user-login="schwinn"/> - <Generation date="2017-06-06 11:12:20.891171"/> - <Deployment checksum="3940683809"/> + <Generation date="2017-06-06 16:10:01.091104"/> + <Deployment checksum="1525793519"/> </Mapping-Info> <SILECS-Mapping plc-name="Schneider_PremiumQuantum" plc-brand="SCHNEIDER" plc-system="UNITY Pro" plc-model="Premium" protocol="BLOCK_MODE" address="0" domain="NotUsed" used-mem="TODO"> <SILECS-Class name="SilecsHeader" version="1.0.0" address="0" used-mem="MW0..MW21 / 22 words"> diff --git a/silecs-codegen/src/xml/test/generated_correct/client/Siemens_Step7Block.silecsparam b/silecs-codegen/src/xml/test/generated_correct/client/Siemens_Step7Block.silecsparam index 64589a2..ccde805 100644 --- a/silecs-codegen/src/xml/test/generated_correct/client/Siemens_Step7Block.silecsparam +++ b/silecs-codegen/src/xml/test/generated_correct/client/Siemens_Step7Block.silecsparam @@ -2,8 +2,8 @@ <SILECS-Param silecs-version="DEV"> <Mapping-Info> <Owner user-login="schwinn"/> - <Generation date="2017-06-06 11:12:20.641338"/> - <Deployment checksum="3940683809"/> + <Generation date="2017-06-06 16:10:00.914936"/> + <Deployment checksum="1525793519"/> </Mapping-Info> <SILECS-Mapping plc-name="Siemens_Step7Block" plc-brand="SIEMENS" plc-system="STEP-7" plc-model="SIMATIC_S7-300" protocol="DEVICE_MODE" address="0" domain="NotUsed" used-mem="TODO"> <SILECS-Class name="SilecsHeader" version="1.0.0" address="0" used-mem="DB0..DB0 / 48 bytes"> diff --git a/silecs-codegen/src/xml/test/generated_correct/client/Siemens_Step7Device.silecsparam b/silecs-codegen/src/xml/test/generated_correct/client/Siemens_Step7Device.silecsparam index 3c1e348..d210b15 100644 --- a/silecs-codegen/src/xml/test/generated_correct/client/Siemens_Step7Device.silecsparam +++ b/silecs-codegen/src/xml/test/generated_correct/client/Siemens_Step7Device.silecsparam @@ -2,8 +2,8 @@ <SILECS-Param silecs-version="DEV"> <Mapping-Info> <Owner user-login="schwinn"/> - <Generation date="2017-06-06 11:12:20.678230"/> - <Deployment checksum="3940683809"/> + <Generation date="2017-06-06 16:10:00.942946"/> + <Deployment checksum="1525793519"/> </Mapping-Info> <SILECS-Mapping plc-name="Siemens_Step7Device" plc-brand="SIEMENS" plc-system="STEP-7" plc-model="SIMATIC_S7-300" protocol="BLOCK_MODE" address="0" domain="NotUsed" used-mem="TODO"> <SILECS-Class name="SilecsHeader" version="1.0.0" address="0" used-mem="DB0..DB0 / 48 bytes"> diff --git a/silecs-codegen/src/xml/test/generated_correct/client/Siemens_TiaBlock.silecsparam b/silecs-codegen/src/xml/test/generated_correct/client/Siemens_TiaBlock.silecsparam index 5f82300..0e4b97f 100644 --- a/silecs-codegen/src/xml/test/generated_correct/client/Siemens_TiaBlock.silecsparam +++ b/silecs-codegen/src/xml/test/generated_correct/client/Siemens_TiaBlock.silecsparam @@ -2,8 +2,8 @@ <SILECS-Param silecs-version="DEV"> <Mapping-Info> <Owner user-login="schwinn"/> - <Generation date="2017-06-06 11:12:20.606090"/> - <Deployment checksum="3940683809"/> + <Generation date="2017-06-06 16:10:00.881636"/> + <Deployment checksum="1525793519"/> </Mapping-Info> <SILECS-Mapping plc-name="Siemens_TiaBlock" plc-brand="SIEMENS" plc-system="TIA-PORTAL" plc-model="SIMATIC_S7-300" protocol="BLOCK_MODE" address="0" domain="NotUsed" used-mem="TODO"> <SILECS-Class name="SilecsHeader" version="1.0.0" address="0" used-mem="DB0..DB0 / 48 bytes"> diff --git a/silecs-codegen/src/xml/test/generated_correct/client/Siemens_TiaDevice.silecsparam b/silecs-codegen/src/xml/test/generated_correct/client/Siemens_TiaDevice.silecsparam index 4938f35..bafa3a0 100644 --- a/silecs-codegen/src/xml/test/generated_correct/client/Siemens_TiaDevice.silecsparam +++ b/silecs-codegen/src/xml/test/generated_correct/client/Siemens_TiaDevice.silecsparam @@ -2,8 +2,8 @@ <SILECS-Param silecs-version="DEV"> <Mapping-Info> <Owner user-login="schwinn"/> - <Generation date="2017-06-06 11:12:20.553639"/> - <Deployment checksum="3940683809"/> + <Generation date="2017-06-06 16:10:00.846238"/> + <Deployment checksum="1525793519"/> </Mapping-Info> <SILECS-Mapping plc-name="Siemens_TiaDevice" plc-brand="SIEMENS" plc-system="TIA-PORTAL" plc-model="SIMATIC_S7-300" protocol="DEVICE_MODE" address="0" domain="NotUsed" used-mem="TODO"> <SILECS-Class name="SilecsHeader" version="1.0.0" address="0" used-mem="DB0..DB0 / 48 bytes"> -- GitLab