diff --git a/silecs-codegen/src/xml/fesa/fesa_3_0_0/fesaTemplates.py b/silecs-codegen/src/xml/fesa/fesa_3_0_0/fesaTemplates.py index 413183cf2a67ed7d79607fe56f71f6b8bcda5ecf..d67a7460caf3138f4be43088d397e68fb2413cda 100644 --- a/silecs-codegen/src/xml/fesa/fesa_3_0_0/fesaTemplates.py +++ b/silecs-codegen/src/xml/fesa/fesa_3_0_0/fesaTemplates.py @@ -110,9 +110,6 @@ htop = """/* #include <${className}/GeneratedCode/ServiceLocator.h> """ -hTopBlock = """#include <${className}/Server/${blockName}.h> -""" - hTop2 = """ namespace ${className} { @@ -161,7 +158,6 @@ namespace ${className} static void updatePLCRegisters(Silecs::PLC* pPLC, const ServiceLocator* serviceLocator); static void updateFesaFields(Silecs::PLC* pPLC, const ServiceLocator* serviceLocator); - Abstract${className}(std::string blockName); virtual ~Abstract${className}(); @@ -556,7 +552,7 @@ cDatatypeSet = """ """ cSetStringReg = """ - pPLCDevice->getRegister("${regName}")->setValString(pDevice->${fesaFieldName}.get(pContext)); + pPLCDevice->getRegister("${regName}")->setValString(pDevice->${fesaFieldName}.get(${context})); """ cSetStringArrayReg = """ @@ -565,7 +561,7 @@ cSetStringArrayReg = """ uint32_t dim1 = pRegister->getDimension1(); std::string stdStringArray[dim1]; uint32_t fesaDim1; - const char** cStringArray = pDevice->${fesaFieldName}.get(fesaDim1, pContext); + const char** cStringArray = pDevice->${fesaFieldName}.get(fesaDim1${context}); for (unsigned int i=0; i<dim1; i++) stdStringArray[i] = (const char*)cStringArray[i]; pRegister->setValStringArray(stdStringArray, dim1); } @@ -579,7 +575,7 @@ cSetArrayReg = """ Silecs::Register* pRegister = pPLCDevice->getRegister("${regName}"); uint32_t dim1 = pRegister->getDimension1(); uint32_t fesaDim1; - pRegister->setVal${regType}Array(pDevice->${fesaFieldName}.get(fesaDim1, pContext), dim1); + pRegister->setVal${regType}Array(pDevice->${fesaFieldName}.get(fesaDim1${context}), dim1); } """ @@ -589,7 +585,7 @@ cSetArray2DReg = """ uint32_t dim1 = pRegister->getDimension1(); dim2 = pRegister->getDimension2(); uint32_t fesaDim1,fesaDim2; - pRegister->setVal${regType}Array2D(pDevice->${fesaFieldName}.get(fesaDim1, fesaDim2, pContext), dim1, dim2); + pRegister->setVal${regType}Array2D(pDevice->${fesaFieldName}.get(fesaDim1, fesaDim2${context}), dim1, dim2); } """ @@ -603,7 +599,7 @@ cSetStringArrayRegData = """ uint32_t dim1 = pRegister->getDimension1(); std::string stdStringArray[dim1]; uint32_t fesaDim1; - const char** cStringArray = (data.is${fesaFieldName_upper}Available() ? data.${fesaFieldName}.get(fesaDim1) : pDevice->${fesaFieldName}.get(fesaDim1, pContext)); + const char** cStringArray = (data.is${fesaFieldName_upper}Available() ? data.${fesaFieldName}.get(fesaDim1) : pDevice->${fesaFieldName}.get(fesaDim1${context})); for (unsigned int i=0; i<dim1; i++) stdStringArray[i] = (const char*)cStringArray[i]; pRegister->setValStringArray(stdStringArray, dim1); } @@ -618,7 +614,7 @@ cSetArrayRegData = """ uint32_t dim1 = pRegister->getDimension1(); uint32_t fesaDim1; (data.is${fesaFieldName_upper}Available()) ? pRegister->setVal${regType}Array( data.${fesaFieldName}.get(fesaDim1), dim1) : - pRegister->setVal${regType}Array( pDevice->${fesaFieldName}.get(fesaDim1, pContext), dim1); + pRegister->setVal${regType}Array( pDevice->${fesaFieldName}.get(fesaDim1${context}), dim1); } """ cSetArray2DRegData = """ @@ -628,7 +624,7 @@ cSetArray2DRegData = """ uint32_t dim2 = pRegister->getDimension2(); uint32_t fesaDim1,fesaDim2; (data.is${fesaFieldName_upper}Available()) ? pRegister->setVal${regType}Array2D(data.${fesaFieldName}.get(fesaDim1, fesaDim2), dim1, dim2) : - pRegister->setVal${regType}Array2D(pDevice->${fesaFieldName}.get(fesaDim1, fesaDim2, pContext), dim1, dim2); + pRegister->setVal${regType}Array2D(pDevice->${fesaFieldName}.get(fesaDim1, fesaDim2${context}), dim1, dim2); } """ @@ -685,12 +681,10 @@ def genCProject(): # Header file (.h) code generation sub-functions #================ ========================================================= + def genHTop(className): return htop.replace('${className}', className ) -def genHTopBlock(className, blockName): - return hTopBlock.replace('${className}', className).replace('${blockName}', blockName) - def genHTop2(className): return hTop2.replace('${className}', className) @@ -774,14 +768,20 @@ def genCDatatypeSet(blockName,propName,className): return cDatatypeSet.replace('${className}', className).replace('${blockName}', blockName).replace('${propName}', propName) def genCSetStringReg(register): - return cSetStringReg.replace('${regName}', register.name).replace('${fesaFieldName}', register.getFesaFieldName()) + context = ", pContext" + if register.isConfiguration(): + context = "" + return cSetStringReg.replace('${regName}', register.name).replace('${fesaFieldName}', register.getFesaFieldName()).replace('${context}', context) def genCSetStringArrayReg(register): - return cSetStringArrayReg.replace('${regName}', register.name).replace('${fesaFieldName}', register.getFesaFieldName()) + context = ", pContext" + if register.isConfiguration(): + context = "" + return cSetStringArrayReg.replace('${regName}', register.name).replace('${fesaFieldName}', register.getFesaFieldName()).replace('${context}', context) def genCSetScalarReg(register): cCast = "" - context = "pContext" + context = ", pContext" if register.isUnsigned(): cCast = "(" + register.getCType() + ")" if register.isConfiguration(): @@ -789,16 +789,28 @@ def genCSetScalarReg(register): return cSetScalarReg.replace('${regName}', register.name).replace('${regType}', register.getSilecsTypeCapitalized()).replace('${cCast}', cCast ).replace('${fesaFieldName}', register.getFesaFieldName()).replace('${context}', context) def genCSetArrayReg(register): - return cSetArrayReg.replace('${regName}', register.name).replace('${regType}', register.getSilecsTypeCapitalized()).replace('${fesaFieldName}', register.getFesaFieldName()) + context = ", pContext" + if register.isConfiguration(): + context = "" + return cSetArrayReg.replace('${regName}', register.name).replace('${regType}', register.getSilecsTypeCapitalized()).replace('${fesaFieldName}', register.getFesaFieldName()).replace('${context}', context) def genCSetArray2DReg(register): - return cSetArray2DReg.replace('${regName}', register.name).replace('${regType}', register.getSilecsTypeCapitalized()).replace('${fesaFieldName}', register.getFesaFieldName()) + context = ", pContext" + if register.isConfiguration(): + context = "" + return cSetArray2DReg.replace('${regName}', register.name).replace('${regType}', register.getSilecsTypeCapitalized()).replace('${fesaFieldName}', register.getFesaFieldName()).replace('${context}', context) def genCSetStringRegData(register): - return cSetStringRegData.replace('${regName}', register.name).replace('${fesaFieldName_upper}', register.getFesaFieldNameCapitalized()).replace('${fesaFieldName}', register.getFesaFieldName()) + context = ", pContext" + if register.isConfiguration(): + context = "" + return cSetStringRegData.replace('${regName}', register.name).replace('${fesaFieldName_upper}', register.getFesaFieldNameCapitalized()).replace('${fesaFieldName}', register.getFesaFieldName()).replace('${context}', context) def genCSetStringArrayRegData(register): - return cSetStringArrayRegData.replace('${regName}', register.name).replace('${fesaFieldName_upper}', register.getFesaFieldNameCapitalized()).replace('${fesaFieldName}', register.getFesaFieldName()) + context = ", pContext" + if register.isConfiguration(): + context = "" + return cSetStringArrayRegData.replace('${regName}', register.name).replace('${fesaFieldName_upper}', register.getFesaFieldNameCapitalized()).replace('${fesaFieldName}', register.getFesaFieldName()).replace('${context}', context) def genCSetScalarRegData(register): cCast = "" @@ -810,10 +822,16 @@ def genCSetScalarRegData(register): return cSetScalarRegData.replace('${regName}', register.name).replace('${fesaFieldName_upper}', register.getFesaFieldNameCapitalized()).replace('${regType}', register.getSilecsTypeCapitalized()).replace('${fesaFieldName}', register.getFesaFieldName()).replace('${cCast}', cCast).replace('${context}', context) def genCSetArrayRegData(register): - return cSetArrayRegData.replace('${regName}', register.name).replace('${fesaFieldName_upper}', register.getFesaFieldNameCapitalized()).replace('${regType}', register.getSilecsTypeCapitalized()).replace('${fesaFieldName}', register.getFesaFieldName()) + context = ", pContext" + if register.isConfiguration(): + context = "" + return cSetArrayRegData.replace('${regName}', register.name).replace('${fesaFieldName_upper}', register.getFesaFieldNameCapitalized()).replace('${regType}', register.getSilecsTypeCapitalized()).replace('${fesaFieldName}', register.getFesaFieldName()).replace('${context}', context) def genCSetArray2DRegData(register): - return cSetArray2DRegData.replace('${regName}', register.name).replace('${fesaFieldName_upper}', register.getFesaFieldNameCapitalized()).replace('${regType}', register.getSilecsTypeCapitalized()).replace('${fesaFieldName}', register.getFesaFieldName()) + context = ", pContext" + if register.isConfiguration(): + context = "" + return cSetArray2DRegData.replace('${regName}', register.name).replace('${fesaFieldName_upper}', register.getFesaFieldNameCapitalized()).replace('${regType}', register.getSilecsTypeCapitalized()).replace('${fesaFieldName}', register.getFesaFieldName()).replace('${context}', context) def genMakeDesign(centralMakefilePath): return makeDesign.replace('${centralMakefilePath}', centralMakefilePath) diff --git a/silecs-codegen/src/xml/fesa/fesa_3_0_0/generateFesaDesign.py b/silecs-codegen/src/xml/fesa/fesa_3_0_0/generateFesaDesign.py index 99749236a53c19b24b64a205232c2a128106bbdf..31ef79cbb6a1b3c05a950a5fb01db415bb4a7cac 100644 --- a/silecs-codegen/src/xml/fesa/fesa_3_0_0/generateFesaDesign.py +++ b/silecs-codegen/src/xml/fesa/fesa_3_0_0/generateFesaDesign.py @@ -393,8 +393,6 @@ class FESADesignGenerator3_0_0(object): else: raise Exception( "Cannot identify register-type to use for register:" + reg.name ) self.getOrCreateType(fieldNode,reg) - if reg.hasDefaultValue(): - self.addDefaultNode(fieldNode, reg.default) globalDataNode = getOrCreateChildElement(dataNode,'global-data') globalConfigurationNode = "" @@ -422,7 +420,7 @@ class FESADesignGenerator3_0_0(object): for block in designClass.getDesignBlocks(): if not block.generateFesaProperty: continue #skip this block - if block.isSetting(): + if block.isSetting() or block.isCommand(): propertyNode = self.getOrCreateFESAProperty(settingNode, actionsNode, block) else: propertyNode = self.getOrCreateFESAProperty(acquisitionNode,actionsNode,block) diff --git a/silecs-codegen/src/xml/fesa/fesa_3_0_0/generateSourceCode.py b/silecs-codegen/src/xml/fesa/fesa_3_0_0/generateSourceCode.py index a8fc5472a9541b1a9e2870a85bb17adff94b7fa4..b7392bb776b63f4bee73c96edac5193e704f6380 100644 --- a/silecs-codegen/src/xml/fesa/fesa_3_0_0/generateSourceCode.py +++ b/silecs-codegen/src/xml/fesa/fesa_3_0_0/generateSourceCode.py @@ -47,12 +47,6 @@ def findBlockServerSetActionName(fesaRoot, propName): def genHSource(className, silecsRoot, fesaRoot, sourcePath,logTopics): designClass = DesignClass.getDesignClassFromRootNode(silecsRoot) source = fesaTemplates.genHTop(className) - - for block in designClass.getDesignFesaBlocks(): - if block.isSetting(): - serverActionName = findBlockServerSetActionName(fesaRoot,block.getFesaName()) - source += fesaTemplates.genHTopBlock(className, serverActionName) - source += fesaTemplates.genHTop2(className) for block in designClass.getDesignFesaBlocks(): diff --git a/silecs-codegen/src/xml/model/Class/Register.py b/silecs-codegen/src/xml/model/Class/Register.py index 840bf2371bcf66392aaa1ea8aeb2439ea45237a8..1fddf316ef46cad4ac3926a4257fae39e3a43ed4 100644 --- a/silecs-codegen/src/xml/model/Class/Register.py +++ b/silecs-codegen/src/xml/model/Class/Register.py @@ -37,10 +37,6 @@ class Register(object): self.dim2 = 1 self.stringLength = 1 # ... currently needs to be default because of some old convention self.format = "" - self.default= "" # default value, if any - - if self.xmlNode.hasProp("default"): - self.default = xmlNode.prop("default") valueTypes = xmlNode.xpathEval("*[name()='scalar' or name()='array' or name()='array2D' or name()='string' or name()='stringArray' or name()='stringArray2D']") if not valueTypes: @@ -65,8 +61,6 @@ class Register(object): self.format = self.valueTypeNode.prop("format") - def hasDefaultValue(self): - return self.default != "" def getNameCapitalized(self): return iecommon.capitalizeString(self.name) diff --git a/silecs-codegen/src/xml/test/AllTypes.silecsdesign b/silecs-codegen/src/xml/test/AllTypes.silecsdesign index 32e28db9ac963c8eb8fa7b1ecda2f270ac0050dd..d72cc901edff1e0f66aec3d109a7f24cee0d52cd 100644 --- a/silecs-codegen/src/xml/test/AllTypes.silecsdesign +++ b/silecs-codegen/src/xml/test/AllTypes.silecsdesign @@ -62,60 +62,60 @@ </Acquisition-Register> </Acquisition-Block> <Setting-Block name="MyRWBlock" generateFesaProperty="true" fesaPropertyName="MyRWBlockProp"> - <Volatile-Register name="RW_int8" generateFesaValueItem="true"> + <Setting-Register name="RW_int8" generateFesaValueItem="true"> <array2D dim1="2" dim2="2" format="int8"/> - </Volatile-Register> - <Volatile-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa"> + </Setting-Register> + <Setting-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa"> <array2D dim1="2" dim2="2" format="uint8"/> - </Volatile-Register> - <Volatile-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa"> + </Setting-Register> + <Setting-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa"> <array2D dim1="2" dim2="2" format="int16"/> - </Volatile-Register> - <Volatile-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa"> + </Setting-Register> + <Setting-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa"> <array2D dim1="2" dim2="2" format="uint16"/> - </Volatile-Register> - <Volatile-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa"> + </Setting-Register> + <Setting-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa"> <array2D dim1="2" dim2="2" format="int32"/> - </Volatile-Register> - <Volatile-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa"> + </Setting-Register> + <Setting-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa"> <array2D dim1="2" dim2="2" format="uint32"/> - </Volatile-Register> + </Setting-Register> <!--<Register name="RW_int64" format="int64" synchro="MASTER" generateFesaValueItem="true" fesaFieldName="RW_int64_fesa" array-dim1="2" array-dim2="2"/> not Supported for Rabbit, Beckhoff, Siemens and Schneider --> <!--<Register name="RW_uint64" format="uint64" synchro="MASTER" generateFesaValueItem="true" fesaFieldName="RW_uint64_fesa" array-dim1="2" array-dim2="2"/> not Supported for Rabbit, Beckhoff, Siemens and Schneider --> - <Volatile-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa"> + <Setting-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa"> <array2D dim1="2" dim2="2" format="float32"/> - </Volatile-Register> + </Setting-Register> <!--<Register name="RW_float64" format="float64" synchro="MASTER" generateFesaValueItem="true" fesaFieldName="RW_float64_fesa" array-dim1="2" array-dim2="2"/> not Supported for Rabbit, Beckhoff, Siemens and Schneider --> - <Volatile-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa"> + <Setting-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa"> <stringArray2D dim1="2" dim2="2" string-length="64" format="string"/> - </Volatile-Register> - <Volatile-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa"> + </Setting-Register> + <Setting-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa"> <array2D dim1="2" dim2="2" format="date"/> - </Volatile-Register> - <Volatile-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa"> + </Setting-Register> + <Setting-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa"> <array2D dim1="2" dim2="2" format="char"/> - </Volatile-Register> - <Volatile-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa"> + </Setting-Register> + <Setting-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa"> <array2D dim1="2" dim2="2" format="byte"/> - </Volatile-Register> - <Volatile-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa"> + </Setting-Register> + <Setting-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa"> <array2D dim1="2" dim2="2" format="word"/> - </Volatile-Register> - <Volatile-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa"> + </Setting-Register> + <Setting-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa"> <array2D dim1="2" dim2="2" format="dword"/> - </Volatile-Register> - <Volatile-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa"> + </Setting-Register> + <Setting-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa"> <array2D dim1="2" dim2="2" format="int"/> - </Volatile-Register> - <Volatile-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa"> + </Setting-Register> + <Setting-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa"> <array2D dim1="2" dim2="2" format="dint"/> - </Volatile-Register> - <Volatile-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa"> + </Setting-Register> + <Setting-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa"> <array2D dim1="2" dim2="2" format="real"/> - </Volatile-Register> - <Volatile-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa"> + </Setting-Register> + <Setting-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa"> <array2D dim1="2" dim2="2" format="dt"/> - </Volatile-Register> + </Setting-Register> </Setting-Block> <Command-Block name="MyWOBlock" generateFesaProperty="true" fesaPropertyName="MyWOBlockProp"> <Setting-Register name="WO_int8" generateFesaValueItem="true"> @@ -173,5 +173,61 @@ <array dim="10" format="dt"/> </Setting-Register> </Command-Block> + <Configuration-Block name="MyCBlock" generateFesaProperty="true" fesaPropertyName="MyCBlockProp"> + <Configuration-Register name="C_int8" generateFesaValueItem="true"> + <array2D dim1="2" dim2="2" format="int8"/> + </Configuration-Register> + <Configuration-Register name="C_uint8" generateFesaValueItem="true" fesaFieldName="C_uint8_fesa"> + <array2D dim1="2" dim2="2" format="uint8"/> + </Configuration-Register> + <Configuration-Register name="C_int16" generateFesaValueItem="true" fesaFieldName="C_int16_fesa"> + <array2D dim1="2" dim2="2" format="int16"/> + </Configuration-Register> + <Configuration-Register name="C_uint16" generateFesaValueItem="true" fesaFieldName="C_uint16_fesa"> + <array2D dim1="2" dim2="2" format="uint16"/> + </Configuration-Register> + <Configuration-Register name="C_int32" generateFesaValueItem="true" fesaFieldName="C_int32_fesa"> + <array2D dim1="2" dim2="2" format="int32"/> + </Configuration-Register> + <Configuration-Register name="C_uint32" generateFesaValueItem="true" fesaFieldName="C_uint32_fesa"> + <array2D dim1="2" dim2="2" format="uint32"/> + </Configuration-Register> + <!--<Register name="C_int64" format="int64" synchro="MASTER" generateFesaValueItem="true" fesaFieldName="C_int64_fesa" array-dim1="2" array-dim2="2"/> not Supported for Rabbit, Beckhoff, Siemens and Schneider --> + <!--<Register name="C_uint64" format="uint64" synchro="MASTER" generateFesaValueItem="true" fesaFieldName="C_uint64_fesa" array-dim1="2" array-dim2="2"/> not Supported for Rabbit, Beckhoff, Siemens and Schneider --> + <Configuration-Register name="C_float32" generateFesaValueItem="true" fesaFieldName="C_float32_fesa"> + <array2D dim1="2" dim2="2" format="float32"/> + </Configuration-Register> + <!--<Register name="C_float64" format="float64" synchro="MASTER" generateFesaValueItem="true" fesaFieldName="C_float64_fesa" array-dim1="2" array-dim2="2"/> not Supported for Rabbit, Beckhoff, Siemens and Schneider --> + <Configuration-Register name="C_string" generateFesaValueItem="true" fesaFieldName="C_string_fesa"> + <stringArray2D dim1="2" dim2="2" string-length="64" format="string"/> + </Configuration-Register> + <Configuration-Register name="C_date" generateFesaValueItem="true" fesaFieldName="C_date_fesa"> + <array2D dim1="2" dim2="2" format="date"/> + </Configuration-Register> + <Configuration-Register name="C_char" generateFesaValueItem="true" fesaFieldName="C_char_fesa"> + <array2D dim1="2" dim2="2" format="char"/> + </Configuration-Register> + <Configuration-Register name="C_byte" generateFesaValueItem="true" fesaFieldName="C_byte_fesa"> + <array2D dim1="2" dim2="2" format="byte"/> + </Configuration-Register> + <Configuration-Register name="C_word" generateFesaValueItem="true" fesaFieldName="C_word_fesa"> + <array2D dim1="2" dim2="2" format="word"/> + </Configuration-Register> + <Configuration-Register name="C_dword" generateFesaValueItem="true" fesaFieldName="C_dword_fesa"> + <array2D dim1="2" dim2="2" format="dword"/> + </Configuration-Register> + <Configuration-Register name="C_int" generateFesaValueItem="true" fesaFieldName="C_int_fesa"> + <array2D dim1="2" dim2="2" format="int"/> + </Configuration-Register> + <Configuration-Register name="C_dint" generateFesaValueItem="true" fesaFieldName="C_dint_fesa"> + <array2D dim1="2" dim2="2" format="dint"/> + </Configuration-Register> + <Configuration-Register name="C_real" generateFesaValueItem="true" fesaFieldName="C_real_fesa"> + <array2D dim1="2" dim2="2" format="real"/> + </Configuration-Register> + <Configuration-Register name="C_dt" generateFesaValueItem="true" fesaFieldName="C_dt_fesa"> + <array2D dim1="2" dim2="2" format="dt"/> + </Configuration-Register> + </Configuration-Block> </SILECS-Class> </SILECS-Design> diff --git a/silecs-codegen/src/xml/test/AllTypesFESA.silecsdesign b/silecs-codegen/src/xml/test/AllTypesFESA.silecsdesign index 219be566a846587d4828fd99621b4c80879c253d..a4c90afbafe18308fe0f3f40e53e88d2f9238a8f 100644 --- a/silecs-codegen/src/xml/test/AllTypesFESA.silecsdesign +++ b/silecs-codegen/src/xml/test/AllTypesFESA.silecsdesign @@ -62,58 +62,58 @@ </Acquisition-Register> </Acquisition-Block> <Setting-Block name="MyRWBlock" generateFesaProperty="true" fesaPropertyName="MyRWBlockProp"> - <Volatile-Register name="RW_int8" generateFesaValueItem="true"> + <Setting-Register name="RW_int8" generateFesaValueItem="true"> <array2D dim1="2" dim2="2" format="int8"/> - </Volatile-Register> - <Volatile-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa"> + </Setting-Register> + <Setting-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa"> <array2D dim1="2" dim2="2" format="uint8"/> - </Volatile-Register> - <Volatile-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa"> + </Setting-Register> + <Setting-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa"> <array2D dim1="2" dim2="2" format="int16"/> - </Volatile-Register> - <Volatile-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa"> + </Setting-Register> + <Setting-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa"> <array2D dim1="2" dim2="2" format="uint16"/> - </Volatile-Register> - <Volatile-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa"> + </Setting-Register> + <Setting-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa"> <array2D dim1="2" dim2="2" format="int32"/> - </Volatile-Register> - <Volatile-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa"> + </Setting-Register> + <Setting-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa"> <array2D dim1="2" dim2="2" format="uint32"/> - </Volatile-Register> + </Setting-Register> <!-- <Register name="RW_int64" format="int64" synchro="MASTER" generateFesaValueItem="true" fesaFieldName="RW_int64_fesa" array-dim1="2" array-dim2="2"/> not Supported for Beckhoff, Siemens and Schneider --> <!--<Register name="RW_uint64" format="uint64" synchro="MASTER" generateFesaValueItem="true" fesaFieldName="RW_uint64_fesa" array-dim1="2" array-dim2="2"/> not Supported for Beckhoff, Siemens and Schneider --> - <Volatile-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa"> + <Setting-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa"> <array2D dim1="2" dim2="2" format="float32"/> - </Volatile-Register> + </Setting-Register> <!--<Register name="RW_float64" format="float64" synchro="MASTER" generateFesaValueItem="true" fesaFieldName="RW_float64_fesa" array-dim1="2" array-dim2="2"/> not Supported for Rabbit, Beckhoff, Siemens and Schneider --> <!-- <Register name="RW_string" format="string" synchro="MASTER" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" array-dim1="2" array-dim2="2"/> 2d string arrays not supported in FESA --> - <Volatile-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa"> + <Setting-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa"> <array2D dim1="2" dim2="2" format="date"/> - </Volatile-Register> - <Volatile-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa"> + </Setting-Register> + <Setting-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa"> <array2D dim1="2" dim2="2" format="char"/> - </Volatile-Register> - <Volatile-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa"> + </Setting-Register> + <Setting-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa"> <array2D dim1="2" dim2="2" format="byte"/> - </Volatile-Register> - <Volatile-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa"> + </Setting-Register> + <Setting-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa"> <array2D dim1="2" dim2="2" format="word"/> - </Volatile-Register> - <Volatile-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa"> + </Setting-Register> + <Setting-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa"> <array2D dim1="2" dim2="2" format="dword"/> - </Volatile-Register> - <Volatile-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa"> + </Setting-Register> + <Setting-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa"> <array2D dim1="2" dim2="2" format="int"/> - </Volatile-Register> - <Volatile-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa"> + </Setting-Register> + <Setting-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa"> <array2D dim1="2" dim2="2" format="dint"/> - </Volatile-Register> - <Volatile-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa"> + </Setting-Register> + <Setting-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa"> <array2D dim1="2" dim2="2" format="real"/> - </Volatile-Register> - <Volatile-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa"> + </Setting-Register> + <Setting-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa"> <array2D dim1="2" dim2="2" format="dt"/> - </Volatile-Register> + </Setting-Register> </Setting-Block> <Command-Block name="MyWOBlock" generateFesaProperty="true" fesaPropertyName="MyWOBlockProp"> <Setting-Register name="WO_int8" generateFesaValueItem="true"> @@ -171,5 +171,61 @@ <array dim="10" format="dt"/> </Setting-Register> </Command-Block> + <Configuration-Block name="MyCBlock" generateFesaProperty="true" fesaPropertyName="MyCBlockProp"> + <Configuration-Register name="C_int8" generateFesaValueItem="true"> + <array2D dim1="2" dim2="2" format="int8"/> + </Configuration-Register> + <Configuration-Register name="C_uint8" generateFesaValueItem="true" fesaFieldName="C_uint8_fesa"> + <array2D dim1="2" dim2="2" format="uint8"/> + </Configuration-Register> + <Configuration-Register name="C_int16" generateFesaValueItem="true" fesaFieldName="C_int16_fesa"> + <array2D dim1="2" dim2="2" format="int16"/> + </Configuration-Register> + <Configuration-Register name="C_uint16" generateFesaValueItem="true" fesaFieldName="C_uint16_fesa"> + <array2D dim1="2" dim2="2" format="uint16"/> + </Configuration-Register> + <Configuration-Register name="C_int32" generateFesaValueItem="true" fesaFieldName="C_int32_fesa"> + <array2D dim1="2" dim2="2" format="int32"/> + </Configuration-Register> + <Configuration-Register name="C_uint32" generateFesaValueItem="true" fesaFieldName="C_uint32_fesa"> + <array2D dim1="2" dim2="2" format="uint32"/> + </Configuration-Register> + <!--<Register name="C_int64" format="int64" synchro="MASTER" generateFesaValueItem="true" fesaFieldName="C_int64_fesa" array-dim1="2" array-dim2="2"/> not Supported for Rabbit, Beckhoff, Siemens and Schneider --> + <!--<Register name="C_uint64" format="uint64" synchro="MASTER" generateFesaValueItem="true" fesaFieldName="C_uint64_fesa" array-dim1="2" array-dim2="2"/> not Supported for Rabbit, Beckhoff, Siemens and Schneider --> + <Configuration-Register name="C_float32" generateFesaValueItem="true" fesaFieldName="C_float32_fesa"> + <array2D dim1="2" dim2="2" format="float32"/> + </Configuration-Register> + <!--<Register name="C_float64" format="float64" synchro="MASTER" generateFesaValueItem="true" fesaFieldName="C_float64_fesa" array-dim1="2" array-dim2="2"/> not Supported for Rabbit, Beckhoff, Siemens and Schneider --> + <!--<Configuration-Register name="C_string" generateFesaValueItem="true" fesaFieldName="C_string_fesa"> + <stringArray2D dim1="2" dim2="2" string-length="64" format="string"/> + </Configuration-Register>--> + <Configuration-Register name="C_date" generateFesaValueItem="true" fesaFieldName="C_date_fesa"> + <array2D dim1="2" dim2="2" format="date"/> + </Configuration-Register> + <Configuration-Register name="C_char" generateFesaValueItem="true" fesaFieldName="C_char_fesa"> + <array2D dim1="2" dim2="2" format="char"/> + </Configuration-Register> + <Configuration-Register name="C_byte" generateFesaValueItem="true" fesaFieldName="C_byte_fesa"> + <array2D dim1="2" dim2="2" format="byte"/> + </Configuration-Register> + <Configuration-Register name="C_word" generateFesaValueItem="true" fesaFieldName="C_word_fesa"> + <array2D dim1="2" dim2="2" format="word"/> + </Configuration-Register> + <Configuration-Register name="C_dword" generateFesaValueItem="true" fesaFieldName="C_dword_fesa"> + <array2D dim1="2" dim2="2" format="dword"/> + </Configuration-Register> + <Configuration-Register name="C_int" generateFesaValueItem="true" fesaFieldName="C_int_fesa"> + <array2D dim1="2" dim2="2" format="int"/> + </Configuration-Register> + <Configuration-Register name="C_dint" generateFesaValueItem="true" fesaFieldName="C_dint_fesa"> + <array2D dim1="2" dim2="2" format="dint"/> + </Configuration-Register> + <Configuration-Register name="C_real" generateFesaValueItem="true" fesaFieldName="C_real_fesa"> + <array2D dim1="2" dim2="2" format="real"/> + </Configuration-Register> + <Configuration-Register name="C_dt" generateFesaValueItem="true" fesaFieldName="C_dt_fesa"> + <array2D dim1="2" dim2="2" format="dt"/> + </Configuration-Register> + </Configuration-Block> </SILECS-Class> </SILECS-Design> diff --git a/silecs-codegen/src/xml/test/generated_correct/AllTypes.cpp b/silecs-codegen/src/xml/test/generated_correct/AllTypes.cpp index 89727b8a2ee05978b8bdf420d5e32c3a5921ce0c..a92a7168e7f1a6eeda4546e513a5ea84435abf4e 100644 --- a/silecs-codegen/src/xml/test/generated_correct/AllTypes.cpp +++ b/silecs-codegen/src/xml/test/generated_correct/AllTypes.cpp @@ -14,10 +14,10 @@ namespace AllTypes Silecs::Service* AbstractAllTypes::pService_ = NULL; Silecs::Cluster* AbstractAllTypes::pCluster_ = NULL; bool AbstractAllTypes::isInitialized_ = false; - MyROBlock_Type AllTypes::MyROBlock("MyROBlock"); MyRWBlock_Type AllTypes::MyRWBlock("MyRWBlock"); MyWOBlock_Type AllTypes::MyWOBlock("MyWOBlock"); + MyCBlock_Type AllTypes::MyCBlock("MyCBlock"); //------------------------------------------------------------------------------------------------------------- // Constructor & Destructor methods @@ -34,6 +34,9 @@ namespace AllTypes MyWOBlock_Type::MyWOBlock_Type(std::string name): AbstractAllTypes(name) {} MyWOBlock_Type::~MyWOBlock_Type() {} + MyCBlock_Type::MyCBlock_Type(std::string name): AbstractAllTypes(name) {} + MyCBlock_Type::~MyCBlock_Type() {} + //--------------------------------------------------------------------------------------------------------- // Set-up the SILECS components for the AbstractAllTypes class (service & cluster) @@ -62,16 +65,14 @@ namespace AllTypes // (from 'plcHostName' FESA field defined on that purpose). Silecs::PLC* pPLC = pCluster_->getPLC(pDevice->plcHostName.get()); - // Update the PLC Slave registers from related FESA fields just before synchronising done at connection time - setPLCSlaveRegisters(pPLC, serviceLocator); + // Update PLC registers from related FESA fields just before synchronising done at connection time + updatePLCRegisters(pPLC, serviceLocator); // Connect the PLC if not already connected if (!pPLC->isEnabled()) { pPLC->connect(/*synchroMode=*/Silecs::FULL_SYNCHRO, /*connectNow=*/true); if (pPLC->isConnected()) - { // Update FESA fields from related PLC Master registers just after synchronising done at connection time - getPLCMasterRegisters(pPLC, serviceLocator); - } + updateFesaFields(pPLC, serviceLocator); } } } @@ -93,22 +94,24 @@ namespace AllTypes } //--------------------------------------------------------------------------------------------------------- - // Synchronise PLC SLAVE/MASTER registers and related FESA fields (automatically called by the setup method @connection time) - void AbstractAllTypes::setPLCSlaveRegisters(Silecs::PLC* pPLC, const ServiceLocator* serviceLocator) + //automatically called by the setup method at connection time) + void AbstractAllTypes::updatePLCRegisters(Silecs::PLC* pPLC, const ServiceLocator* serviceLocator) { fesa::NoneContext noneContext; - AllTypes::MyRWBlock.setPLCDevices(pPLC, serviceLocator, false, &noneContext); - AllTypes::MyWOBlock.setPLCDevices(pPLC, serviceLocator, false, &noneContext); + AllTypes::MyCBlock.setPLCDevices(pPLC, serviceLocator, false, &noneContext); } - void AbstractAllTypes::getPLCMasterRegisters(Silecs::PLC* pPLC, const ServiceLocator* serviceLocator) + //--------------------------------------------------------------------------------------------------------- + //automatically called by the setup method at connection time) + void AbstractAllTypes::updateFesaFields(Silecs::PLC* pPLC, const ServiceLocator* serviceLocator) { - fesa::NoneContext noneContext; //MASTER acquisition fields are not consistent, can be set with none-context + fesa::NoneContext noneContext; AllTypes::MyROBlock.getPLCDevices(pPLC, serviceLocator, false, &noneContext); AllTypes::MyRWBlock.getPLCDevices(pPLC, serviceLocator, false, &noneContext); } + //--------------------------------------------------------------------------------------------------------- // General methods to synchronize the FESA fields and related PLC registers of the FESA server @@ -373,7 +376,7 @@ namespace AllTypes { Silecs::Register* pRegister = pPLCDevice->getRegister("RW_int8"); uint32_t dim1 = pRegister->getDimension1(); - dim2 = pRegister->getDimension2(); + uint32_t dim2 = pRegister->getDimension2(); uint32_t fesaDim1,fesaDim2; pRegister->setValInt8Array2D(pDevice->RW_int8.get(fesaDim1, fesaDim2, pContext), dim1, dim2); } @@ -381,15 +384,15 @@ namespace AllTypes { Silecs::Register* pRegister = pPLCDevice->getRegister("RW_uint8"); uint32_t dim1 = pRegister->getDimension1(); - dim2 = pRegister->getDimension2(); + uint32_t dim2 = pRegister->getDimension2(); uint32_t fesaDim1,fesaDim2; - pRegister->setValUInt8Array2D( pDevice->RW_uint8_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2); //use automatic conversion for JAVA non-supported type + pRegister->setValUInt8Array2D(pDevice->RW_uint8_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2); } { Silecs::Register* pRegister = pPLCDevice->getRegister("RW_int16"); uint32_t dim1 = pRegister->getDimension1(); - dim2 = pRegister->getDimension2(); + uint32_t dim2 = pRegister->getDimension2(); uint32_t fesaDim1,fesaDim2; pRegister->setValInt16Array2D(pDevice->RW_int16_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2); } @@ -397,15 +400,15 @@ namespace AllTypes { Silecs::Register* pRegister = pPLCDevice->getRegister("RW_uint16"); uint32_t dim1 = pRegister->getDimension1(); - dim2 = pRegister->getDimension2(); + uint32_t dim2 = pRegister->getDimension2(); uint32_t fesaDim1,fesaDim2; - pRegister->setValUInt16Array2D( pDevice->RW_uint16_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2); //use automatic conversion for JAVA non-supported type + pRegister->setValUInt16Array2D(pDevice->RW_uint16_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2); } { Silecs::Register* pRegister = pPLCDevice->getRegister("RW_int32"); uint32_t dim1 = pRegister->getDimension1(); - dim2 = pRegister->getDimension2(); + uint32_t dim2 = pRegister->getDimension2(); uint32_t fesaDim1,fesaDim2; pRegister->setValInt32Array2D(pDevice->RW_int32_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2); } @@ -413,15 +416,15 @@ namespace AllTypes { Silecs::Register* pRegister = pPLCDevice->getRegister("RW_uint32"); uint32_t dim1 = pRegister->getDimension1(); - dim2 = pRegister->getDimension2(); + uint32_t dim2 = pRegister->getDimension2(); uint32_t fesaDim1,fesaDim2; - pRegister->setValUInt32Array2D( pDevice->RW_uint32_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2); //use automatic conversion for JAVA non-supported type + pRegister->setValUInt32Array2D(pDevice->RW_uint32_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2); } { Silecs::Register* pRegister = pPLCDevice->getRegister("RW_float32"); uint32_t dim1 = pRegister->getDimension1(); - dim2 = pRegister->getDimension2(); + uint32_t dim2 = pRegister->getDimension2(); uint32_t fesaDim1,fesaDim2; pRegister->setValFloat32Array2D(pDevice->RW_float32_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2); } @@ -429,7 +432,7 @@ namespace AllTypes { Silecs::Register* pRegister = pPLCDevice->getRegister("RW_date"); uint32_t dim1 = pRegister->getDimension1(); - dim2 = pRegister->getDimension2(); + uint32_t dim2 = pRegister->getDimension2(); uint32_t fesaDim1,fesaDim2; pRegister->setValDateArray2D(pDevice->RW_date_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2); } @@ -437,7 +440,7 @@ namespace AllTypes { Silecs::Register* pRegister = pPLCDevice->getRegister("RW_char"); uint32_t dim1 = pRegister->getDimension1(); - dim2 = pRegister->getDimension2(); + uint32_t dim2 = pRegister->getDimension2(); uint32_t fesaDim1,fesaDim2; pRegister->setValInt8Array2D(pDevice->RW_char_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2); } @@ -445,31 +448,31 @@ namespace AllTypes { Silecs::Register* pRegister = pPLCDevice->getRegister("RW_byte"); uint32_t dim1 = pRegister->getDimension1(); - dim2 = pRegister->getDimension2(); + uint32_t dim2 = pRegister->getDimension2(); uint32_t fesaDim1,fesaDim2; - pRegister->setValUInt8Array2D( pDevice->RW_byte_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2); //use automatic conversion for JAVA non-supported type + pRegister->setValUInt8Array2D(pDevice->RW_byte_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2); } { Silecs::Register* pRegister = pPLCDevice->getRegister("RW_word"); uint32_t dim1 = pRegister->getDimension1(); - dim2 = pRegister->getDimension2(); + uint32_t dim2 = pRegister->getDimension2(); uint32_t fesaDim1,fesaDim2; - pRegister->setValUInt16Array2D( pDevice->RW_word_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2); //use automatic conversion for JAVA non-supported type + pRegister->setValUInt16Array2D(pDevice->RW_word_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2); } { Silecs::Register* pRegister = pPLCDevice->getRegister("RW_dword"); uint32_t dim1 = pRegister->getDimension1(); - dim2 = pRegister->getDimension2(); + uint32_t dim2 = pRegister->getDimension2(); uint32_t fesaDim1,fesaDim2; - pRegister->setValUInt32Array2D( pDevice->RW_dword_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2); //use automatic conversion for JAVA non-supported type + pRegister->setValUInt32Array2D(pDevice->RW_dword_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2); } { Silecs::Register* pRegister = pPLCDevice->getRegister("RW_int"); uint32_t dim1 = pRegister->getDimension1(); - dim2 = pRegister->getDimension2(); + uint32_t dim2 = pRegister->getDimension2(); uint32_t fesaDim1,fesaDim2; pRegister->setValInt16Array2D(pDevice->RW_int_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2); } @@ -477,7 +480,7 @@ namespace AllTypes { Silecs::Register* pRegister = pPLCDevice->getRegister("RW_dint"); uint32_t dim1 = pRegister->getDimension1(); - dim2 = pRegister->getDimension2(); + uint32_t dim2 = pRegister->getDimension2(); uint32_t fesaDim1,fesaDim2; pRegister->setValInt32Array2D(pDevice->RW_dint_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2); } @@ -485,7 +488,7 @@ namespace AllTypes { Silecs::Register* pRegister = pPLCDevice->getRegister("RW_real"); uint32_t dim1 = pRegister->getDimension1(); - dim2 = pRegister->getDimension2(); + uint32_t dim2 = pRegister->getDimension2(); uint32_t fesaDim1,fesaDim2; pRegister->setValFloat32Array2D(pDevice->RW_real_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2); } @@ -493,7 +496,7 @@ namespace AllTypes { Silecs::Register* pRegister = pPLCDevice->getRegister("RW_dt"); uint32_t dim1 = pRegister->getDimension1(); - dim2 = pRegister->getDimension2(); + uint32_t dim2 = pRegister->getDimension2(); uint32_t fesaDim1,fesaDim2; pRegister->setValDateArray2D(pDevice->RW_dt_fesa.get(fesaDim1, fesaDim2, pContext), dim1, dim2); } @@ -678,9 +681,9 @@ namespace AllTypes Silecs::Register* pRegister = pPLCDevice->getRegister("WO_uint8"); uint32_t dim1 = pRegister->getDimension1(); uint32_t fesaDim1; - pRegister->setValUInt8Array(pDevice->WO_uint8_fesa.get(fesaDim1, pContext), dim1); //use automatic conversion for JAVA non-supported type + pRegister->setValUInt8Array(pDevice->WO_uint8_fesa.get(fesaDim1, pContext), dim1); } - + { Silecs::Register* pRegister = pPLCDevice->getRegister("WO_int16"); uint32_t dim1 = pRegister->getDimension1(); @@ -692,9 +695,9 @@ namespace AllTypes Silecs::Register* pRegister = pPLCDevice->getRegister("WO_uint16"); uint32_t dim1 = pRegister->getDimension1(); uint32_t fesaDim1; - pRegister->setValUInt16Array(pDevice->WO_uint16_fesa.get(fesaDim1, pContext), dim1); //use automatic conversion for JAVA non-supported type + pRegister->setValUInt16Array(pDevice->WO_uint16_fesa.get(fesaDim1, pContext), dim1); } - + { Silecs::Register* pRegister = pPLCDevice->getRegister("WO_int32"); uint32_t dim1 = pRegister->getDimension1(); @@ -706,9 +709,9 @@ namespace AllTypes Silecs::Register* pRegister = pPLCDevice->getRegister("WO_uint32"); uint32_t dim1 = pRegister->getDimension1(); uint32_t fesaDim1; - pRegister->setValUInt32Array(pDevice->WO_uint32_fesa.get(fesaDim1, pContext), dim1); //use automatic conversion for JAVA non-supported type + pRegister->setValUInt32Array(pDevice->WO_uint32_fesa.get(fesaDim1, pContext), dim1); } - + { Silecs::Register* pRegister = pPLCDevice->getRegister("WO_float32"); uint32_t dim1 = pRegister->getDimension1(); @@ -744,23 +747,23 @@ namespace AllTypes Silecs::Register* pRegister = pPLCDevice->getRegister("WO_byte"); uint32_t dim1 = pRegister->getDimension1(); uint32_t fesaDim1; - pRegister->setValUInt8Array(pDevice->WO_byte_fesa.get(fesaDim1, pContext), dim1); //use automatic conversion for JAVA non-supported type + pRegister->setValUInt8Array(pDevice->WO_byte_fesa.get(fesaDim1, pContext), dim1); } - + { Silecs::Register* pRegister = pPLCDevice->getRegister("WO_word"); uint32_t dim1 = pRegister->getDimension1(); uint32_t fesaDim1; - pRegister->setValUInt16Array(pDevice->WO_word_fesa.get(fesaDim1, pContext), dim1); //use automatic conversion for JAVA non-supported type + pRegister->setValUInt16Array(pDevice->WO_word_fesa.get(fesaDim1, pContext), dim1); } - + { Silecs::Register* pRegister = pPLCDevice->getRegister("WO_dword"); uint32_t dim1 = pRegister->getDimension1(); uint32_t fesaDim1; - pRegister->setValUInt32Array(pDevice->WO_dword_fesa.get(fesaDim1, pContext), dim1); //use automatic conversion for JAVA non-supported type + pRegister->setValUInt32Array(pDevice->WO_dword_fesa.get(fesaDim1, pContext), dim1); } - + { Silecs::Register* pRegister = pPLCDevice->getRegister("WO_int"); uint32_t dim1 = pRegister->getDimension1(); @@ -942,5 +945,302 @@ namespace AllTypes if (sendNow) pPLCDevice->send(blockName_); } + + void MyCBlock_Type::setOneDevice(Device* pDevice, const bool sendNow, MultiplexingContext* pContext) + { + if( !isInitialized_ ) + { + throw fesa::FesaException(__FILE__, __LINE__, "SILECS-Service not initialized yet - AllTypes::setup needs to be called before any plc-interaction can be done"); + } + Silecs::PLC* pPLC = pCluster_->getPLC(pDevice->plcHostName.get()); + Silecs::Device* pPLCDevice = pPLC->getDevice(pDevice->plcDeviceLabel.get()); + + { + Silecs::Register* pRegister = pPLCDevice->getRegister("C_int8"); + uint32_t dim1 = pRegister->getDimension1(); + uint32_t dim2 = pRegister->getDimension2(); + uint32_t fesaDim1,fesaDim2; + pRegister->setValInt8Array2D(pDevice->C_int8.get(fesaDim1, fesaDim2), dim1, dim2); + } + + { + Silecs::Register* pRegister = pPLCDevice->getRegister("C_uint8"); + uint32_t dim1 = pRegister->getDimension1(); + uint32_t dim2 = pRegister->getDimension2(); + uint32_t fesaDim1,fesaDim2; + pRegister->setValUInt8Array2D(pDevice->C_uint8_fesa.get(fesaDim1, fesaDim2), dim1, dim2); + } + + { + Silecs::Register* pRegister = pPLCDevice->getRegister("C_int16"); + uint32_t dim1 = pRegister->getDimension1(); + uint32_t dim2 = pRegister->getDimension2(); + uint32_t fesaDim1,fesaDim2; + pRegister->setValInt16Array2D(pDevice->C_int16_fesa.get(fesaDim1, fesaDim2), dim1, dim2); + } + + { + Silecs::Register* pRegister = pPLCDevice->getRegister("C_uint16"); + uint32_t dim1 = pRegister->getDimension1(); + uint32_t dim2 = pRegister->getDimension2(); + uint32_t fesaDim1,fesaDim2; + pRegister->setValUInt16Array2D(pDevice->C_uint16_fesa.get(fesaDim1, fesaDim2), dim1, dim2); + } + + { + Silecs::Register* pRegister = pPLCDevice->getRegister("C_int32"); + uint32_t dim1 = pRegister->getDimension1(); + uint32_t dim2 = pRegister->getDimension2(); + uint32_t fesaDim1,fesaDim2; + pRegister->setValInt32Array2D(pDevice->C_int32_fesa.get(fesaDim1, fesaDim2), dim1, dim2); + } + + { + Silecs::Register* pRegister = pPLCDevice->getRegister("C_uint32"); + uint32_t dim1 = pRegister->getDimension1(); + uint32_t dim2 = pRegister->getDimension2(); + uint32_t fesaDim1,fesaDim2; + pRegister->setValUInt32Array2D(pDevice->C_uint32_fesa.get(fesaDim1, fesaDim2), dim1, dim2); + } + + { + Silecs::Register* pRegister = pPLCDevice->getRegister("C_float32"); + uint32_t dim1 = pRegister->getDimension1(); + uint32_t dim2 = pRegister->getDimension2(); + uint32_t fesaDim1,fesaDim2; + pRegister->setValFloat32Array2D(pDevice->C_float32_fesa.get(fesaDim1, fesaDim2), dim1, dim2); + } + + { + Silecs::Register* pRegister = pPLCDevice->getRegister("C_date"); + uint32_t dim1 = pRegister->getDimension1(); + uint32_t dim2 = pRegister->getDimension2(); + uint32_t fesaDim1,fesaDim2; + pRegister->setValDateArray2D(pDevice->C_date_fesa.get(fesaDim1, fesaDim2), dim1, dim2); + } + + { + Silecs::Register* pRegister = pPLCDevice->getRegister("C_char"); + uint32_t dim1 = pRegister->getDimension1(); + uint32_t dim2 = pRegister->getDimension2(); + uint32_t fesaDim1,fesaDim2; + pRegister->setValInt8Array2D(pDevice->C_char_fesa.get(fesaDim1, fesaDim2), dim1, dim2); + } + + { + Silecs::Register* pRegister = pPLCDevice->getRegister("C_byte"); + uint32_t dim1 = pRegister->getDimension1(); + uint32_t dim2 = pRegister->getDimension2(); + uint32_t fesaDim1,fesaDim2; + pRegister->setValUInt8Array2D(pDevice->C_byte_fesa.get(fesaDim1, fesaDim2), dim1, dim2); + } + + { + Silecs::Register* pRegister = pPLCDevice->getRegister("C_word"); + uint32_t dim1 = pRegister->getDimension1(); + uint32_t dim2 = pRegister->getDimension2(); + uint32_t fesaDim1,fesaDim2; + pRegister->setValUInt16Array2D(pDevice->C_word_fesa.get(fesaDim1, fesaDim2), dim1, dim2); + } + + { + Silecs::Register* pRegister = pPLCDevice->getRegister("C_dword"); + uint32_t dim1 = pRegister->getDimension1(); + uint32_t dim2 = pRegister->getDimension2(); + uint32_t fesaDim1,fesaDim2; + pRegister->setValUInt32Array2D(pDevice->C_dword_fesa.get(fesaDim1, fesaDim2), dim1, dim2); + } + + { + Silecs::Register* pRegister = pPLCDevice->getRegister("C_int"); + uint32_t dim1 = pRegister->getDimension1(); + uint32_t dim2 = pRegister->getDimension2(); + uint32_t fesaDim1,fesaDim2; + pRegister->setValInt16Array2D(pDevice->C_int_fesa.get(fesaDim1, fesaDim2), dim1, dim2); + } + + { + Silecs::Register* pRegister = pPLCDevice->getRegister("C_dint"); + uint32_t dim1 = pRegister->getDimension1(); + uint32_t dim2 = pRegister->getDimension2(); + uint32_t fesaDim1,fesaDim2; + pRegister->setValInt32Array2D(pDevice->C_dint_fesa.get(fesaDim1, fesaDim2), dim1, dim2); + } + + { + Silecs::Register* pRegister = pPLCDevice->getRegister("C_real"); + uint32_t dim1 = pRegister->getDimension1(); + uint32_t dim2 = pRegister->getDimension2(); + uint32_t fesaDim1,fesaDim2; + pRegister->setValFloat32Array2D(pDevice->C_real_fesa.get(fesaDim1, fesaDim2), dim1, dim2); + } + + { + Silecs::Register* pRegister = pPLCDevice->getRegister("C_dt"); + uint32_t dim1 = pRegister->getDimension1(); + uint32_t dim2 = pRegister->getDimension2(); + uint32_t fesaDim1,fesaDim2; + pRegister->setValDateArray2D(pDevice->C_dt_fesa.get(fesaDim1, fesaDim2), dim1, dim2); + } + + if (sendNow) pPLCDevice->send(blockName_); + } + + void MyCBlock_Type::setOneDevice(Device* pDevice, MyCBlockPropPropertyData& data, bool sendNow, MultiplexingContext* pContext) + { + if( !isInitialized_ ) + { + throw fesa::FesaException(__FILE__, __LINE__, "SILECS-Service not initialized yet - AllTypes::setup needs to be called before any plc-interaction can be done"); + } + Silecs::PLC* pPLC = pCluster_->getPLC(pDevice->plcHostName.get()); + Silecs::Device* pPLCDevice = pPLC->getDevice(pDevice->plcDeviceLabel.get()); + + { + Silecs::Register* pRegister = pPLCDevice->getRegister("C_int8"); + uint32_t dim1 = pRegister->getDimension1(); + uint32_t dim2 = pRegister->getDimension2(); + uint32_t fesaDim1,fesaDim2; + (data.isC_int8Available()) ? pRegister->setValInt8Array2D(data.C_int8.get(fesaDim1, fesaDim2), dim1, dim2) : + pRegister->setValInt8Array2D(pDevice->C_int8.get(fesaDim1, fesaDim2), dim1, dim2); + } + + { + Silecs::Register* pRegister = pPLCDevice->getRegister("C_uint8"); + uint32_t dim1 = pRegister->getDimension1(); + uint32_t dim2 = pRegister->getDimension2(); + uint32_t fesaDim1,fesaDim2; + (data.isC_uint8_fesaAvailable()) ? pRegister->setValUInt8Array2D(data.C_uint8_fesa.get(fesaDim1, fesaDim2), dim1, dim2) : + pRegister->setValUInt8Array2D(pDevice->C_uint8_fesa.get(fesaDim1, fesaDim2), dim1, dim2); + } + + { + Silecs::Register* pRegister = pPLCDevice->getRegister("C_int16"); + uint32_t dim1 = pRegister->getDimension1(); + uint32_t dim2 = pRegister->getDimension2(); + uint32_t fesaDim1,fesaDim2; + (data.isC_int16_fesaAvailable()) ? pRegister->setValInt16Array2D(data.C_int16_fesa.get(fesaDim1, fesaDim2), dim1, dim2) : + pRegister->setValInt16Array2D(pDevice->C_int16_fesa.get(fesaDim1, fesaDim2), dim1, dim2); + } + + { + Silecs::Register* pRegister = pPLCDevice->getRegister("C_uint16"); + uint32_t dim1 = pRegister->getDimension1(); + uint32_t dim2 = pRegister->getDimension2(); + uint32_t fesaDim1,fesaDim2; + (data.isC_uint16_fesaAvailable()) ? pRegister->setValUInt16Array2D(data.C_uint16_fesa.get(fesaDim1, fesaDim2), dim1, dim2) : + pRegister->setValUInt16Array2D(pDevice->C_uint16_fesa.get(fesaDim1, fesaDim2), dim1, dim2); + } + + { + Silecs::Register* pRegister = pPLCDevice->getRegister("C_int32"); + uint32_t dim1 = pRegister->getDimension1(); + uint32_t dim2 = pRegister->getDimension2(); + uint32_t fesaDim1,fesaDim2; + (data.isC_int32_fesaAvailable()) ? pRegister->setValInt32Array2D(data.C_int32_fesa.get(fesaDim1, fesaDim2), dim1, dim2) : + pRegister->setValInt32Array2D(pDevice->C_int32_fesa.get(fesaDim1, fesaDim2), dim1, dim2); + } + + { + Silecs::Register* pRegister = pPLCDevice->getRegister("C_uint32"); + uint32_t dim1 = pRegister->getDimension1(); + uint32_t dim2 = pRegister->getDimension2(); + uint32_t fesaDim1,fesaDim2; + (data.isC_uint32_fesaAvailable()) ? pRegister->setValUInt32Array2D(data.C_uint32_fesa.get(fesaDim1, fesaDim2), dim1, dim2) : + pRegister->setValUInt32Array2D(pDevice->C_uint32_fesa.get(fesaDim1, fesaDim2), dim1, dim2); + } + + { + Silecs::Register* pRegister = pPLCDevice->getRegister("C_float32"); + uint32_t dim1 = pRegister->getDimension1(); + uint32_t dim2 = pRegister->getDimension2(); + uint32_t fesaDim1,fesaDim2; + (data.isC_float32_fesaAvailable()) ? pRegister->setValFloat32Array2D(data.C_float32_fesa.get(fesaDim1, fesaDim2), dim1, dim2) : + pRegister->setValFloat32Array2D(pDevice->C_float32_fesa.get(fesaDim1, fesaDim2), dim1, dim2); + } + + { + Silecs::Register* pRegister = pPLCDevice->getRegister("C_date"); + uint32_t dim1 = pRegister->getDimension1(); + uint32_t dim2 = pRegister->getDimension2(); + uint32_t fesaDim1,fesaDim2; + (data.isC_date_fesaAvailable()) ? pRegister->setValDateArray2D(data.C_date_fesa.get(fesaDim1, fesaDim2), dim1, dim2) : + pRegister->setValDateArray2D(pDevice->C_date_fesa.get(fesaDim1, fesaDim2), dim1, dim2); + } + + { + Silecs::Register* pRegister = pPLCDevice->getRegister("C_char"); + uint32_t dim1 = pRegister->getDimension1(); + uint32_t dim2 = pRegister->getDimension2(); + uint32_t fesaDim1,fesaDim2; + (data.isC_char_fesaAvailable()) ? pRegister->setValInt8Array2D(data.C_char_fesa.get(fesaDim1, fesaDim2), dim1, dim2) : + pRegister->setValInt8Array2D(pDevice->C_char_fesa.get(fesaDim1, fesaDim2), dim1, dim2); + } + + { + Silecs::Register* pRegister = pPLCDevice->getRegister("C_byte"); + uint32_t dim1 = pRegister->getDimension1(); + uint32_t dim2 = pRegister->getDimension2(); + uint32_t fesaDim1,fesaDim2; + (data.isC_byte_fesaAvailable()) ? pRegister->setValUInt8Array2D(data.C_byte_fesa.get(fesaDim1, fesaDim2), dim1, dim2) : + pRegister->setValUInt8Array2D(pDevice->C_byte_fesa.get(fesaDim1, fesaDim2), dim1, dim2); + } + + { + Silecs::Register* pRegister = pPLCDevice->getRegister("C_word"); + uint32_t dim1 = pRegister->getDimension1(); + uint32_t dim2 = pRegister->getDimension2(); + uint32_t fesaDim1,fesaDim2; + (data.isC_word_fesaAvailable()) ? pRegister->setValUInt16Array2D(data.C_word_fesa.get(fesaDim1, fesaDim2), dim1, dim2) : + pRegister->setValUInt16Array2D(pDevice->C_word_fesa.get(fesaDim1, fesaDim2), dim1, dim2); + } + + { + Silecs::Register* pRegister = pPLCDevice->getRegister("C_dword"); + uint32_t dim1 = pRegister->getDimension1(); + uint32_t dim2 = pRegister->getDimension2(); + uint32_t fesaDim1,fesaDim2; + (data.isC_dword_fesaAvailable()) ? pRegister->setValUInt32Array2D(data.C_dword_fesa.get(fesaDim1, fesaDim2), dim1, dim2) : + pRegister->setValUInt32Array2D(pDevice->C_dword_fesa.get(fesaDim1, fesaDim2), dim1, dim2); + } + + { + Silecs::Register* pRegister = pPLCDevice->getRegister("C_int"); + uint32_t dim1 = pRegister->getDimension1(); + uint32_t dim2 = pRegister->getDimension2(); + uint32_t fesaDim1,fesaDim2; + (data.isC_int_fesaAvailable()) ? pRegister->setValInt16Array2D(data.C_int_fesa.get(fesaDim1, fesaDim2), dim1, dim2) : + pRegister->setValInt16Array2D(pDevice->C_int_fesa.get(fesaDim1, fesaDim2), dim1, dim2); + } + + { + Silecs::Register* pRegister = pPLCDevice->getRegister("C_dint"); + uint32_t dim1 = pRegister->getDimension1(); + uint32_t dim2 = pRegister->getDimension2(); + uint32_t fesaDim1,fesaDim2; + (data.isC_dint_fesaAvailable()) ? pRegister->setValInt32Array2D(data.C_dint_fesa.get(fesaDim1, fesaDim2), dim1, dim2) : + pRegister->setValInt32Array2D(pDevice->C_dint_fesa.get(fesaDim1, fesaDim2), dim1, dim2); + } + + { + Silecs::Register* pRegister = pPLCDevice->getRegister("C_real"); + uint32_t dim1 = pRegister->getDimension1(); + uint32_t dim2 = pRegister->getDimension2(); + uint32_t fesaDim1,fesaDim2; + (data.isC_real_fesaAvailable()) ? pRegister->setValFloat32Array2D(data.C_real_fesa.get(fesaDim1, fesaDim2), dim1, dim2) : + pRegister->setValFloat32Array2D(pDevice->C_real_fesa.get(fesaDim1, fesaDim2), dim1, dim2); + } + + { + Silecs::Register* pRegister = pPLCDevice->getRegister("C_dt"); + uint32_t dim1 = pRegister->getDimension1(); + uint32_t dim2 = pRegister->getDimension2(); + uint32_t fesaDim1,fesaDim2; + (data.isC_dt_fesaAvailable()) ? pRegister->setValDateArray2D(data.C_dt_fesa.get(fesaDim1, fesaDim2), dim1, dim2) : + pRegister->setValDateArray2D(pDevice->C_dt_fesa.get(fesaDim1, fesaDim2), dim1, dim2); + } + + if (sendNow) pPLCDevice->send(blockName_); + + } } diff --git a/silecs-codegen/src/xml/test/generated_correct/AllTypes.h b/silecs-codegen/src/xml/test/generated_correct/AllTypes.h index 79ecda2f0d7ca86297803f3be6d334078b928da3..302485eabbb24a147c68b8bc603178a2100bda3e 100644 --- a/silecs-codegen/src/xml/test/generated_correct/AllTypes.h +++ b/silecs-codegen/src/xml/test/generated_correct/AllTypes.h @@ -10,8 +10,6 @@ #include <SilecsService.h> #include <fesa-core/Synchronization/MultiplexingContext.h> #include <AllTypes/GeneratedCode/ServiceLocator.h> -#include <AllTypes/Server/SetMyRWBlockProp.h> -#include <AllTypes/Server/SetMyWOBlockProp.h> namespace AllTypes { @@ -57,8 +55,8 @@ namespace AllTypes static void setup(const ServiceLocator* serviceLocator); static void cleanup(); static bool isInitialized(){ return AbstractAllTypes::isInitialized_; } - static void setPLCSlaveRegisters(Silecs::PLC* pPLC, const ServiceLocator* serviceLocator); - static void getPLCMasterRegisters(Silecs::PLC* pPLC, const ServiceLocator* serviceLocator); + static void updatePLCRegisters(Silecs::PLC* pPLC, const ServiceLocator* serviceLocator); + static void updateFesaFields(Silecs::PLC* pPLC, const ServiceLocator* serviceLocator); AbstractAllTypes(std::string blockName); virtual ~AbstractAllTypes(); @@ -122,6 +120,7 @@ namespace AllTypes BLOCK_RO( MyROBlock, MyROBlockProp ); BLOCK_RW( MyRWBlock, MyRWBlockProp ); BLOCK_WO( MyWOBlock, MyWOBlockProp ); + BLOCK_WO( MyCBlock, MyCBlockProp ); /*--------------------------------------------------------------------------------------------------------- * INTERFACE @@ -143,7 +142,8 @@ namespace AllTypes static MyROBlock_Type MyROBlock; static MyRWBlock_Type MyRWBlock; - static MyWOBlock_Type MyWOBlock; + static MyWOBlock_Type MyWOBlock; + static MyCBlock_Type MyCBlock; }; } diff --git a/silecs-codegen/src/xml/test/generated_correct/AllTypesFESA.design b/silecs-codegen/src/xml/test/generated_correct/AllTypesFESA.design index d6d300c11a3b60a1fd2eb604d3bd85f367c9852e..4b25e6602f826fb3af5c527dd5684e320a303741 100644 --- a/silecs-codegen/src/xml/test/generated_correct/AllTypesFESA.design +++ b/silecs-codegen/src/xml/test/generated_correct/AllTypesFESA.design @@ -256,7 +256,7 @@ corresponding string array containing keys to illustrate the meaning of the deta <acquisition-context-field-ref field-name-ref="acquisitionContext"/> </acquisition-context-item> </GSI-Acquisition-Property> - <GSI-Acquisition-Property name="MyROBlockProp" subscribable="true" multiplexed="false" on-change="true" visibility="development"><value-item name="RO_dt_fesa" direction="OUT"><scalar type="double"/><data-field-ref field-name-ref="RO_dt_fesa"/></value-item><value-item name="RO_real_fesa" direction="OUT"><scalar type="float"/><data-field-ref field-name-ref="RO_real_fesa"/></value-item><value-item name="RO_dint_fesa" direction="OUT"><scalar type="int32_t"/><data-field-ref field-name-ref="RO_dint_fesa"/></value-item><value-item name="RO_int_fesa" direction="OUT"><scalar type="int16_t"/><data-field-ref field-name-ref="RO_int_fesa"/></value-item><value-item name="RO_dword_fesa" direction="OUT"><scalar type="int64_t"/><data-field-ref field-name-ref="RO_dword_fesa"/></value-item><value-item name="RO_word_fesa" direction="OUT"><scalar type="int32_t"/><data-field-ref field-name-ref="RO_word_fesa"/></value-item><value-item name="RO_byte_fesa" direction="OUT"><scalar type="int16_t"/><data-field-ref field-name-ref="RO_byte_fesa"/></value-item><value-item name="RO_char_fesa" direction="OUT"><scalar type="int8_t"/><data-field-ref field-name-ref="RO_char_fesa"/></value-item><value-item name="RO_date_fesa" direction="OUT"><scalar type="double"/><data-field-ref field-name-ref="RO_date_fesa"/></value-item><value-item name="RO_string_fesa" direction="OUT"><array type="char"><dim>64</dim></array><data-field-ref field-name-ref="RO_string_fesa"/></value-item><value-item name="RO_float32_fesa" direction="OUT"><scalar type="float"/><data-field-ref field-name-ref="RO_float32_fesa"/></value-item><value-item name="RO_uint32_fesa" direction="OUT"><scalar type="int64_t"/><data-field-ref field-name-ref="RO_uint32_fesa"/></value-item><value-item name="RO_int32_fesa" direction="OUT"><scalar type="int32_t"/><data-field-ref field-name-ref="RO_int32_fesa"/></value-item><value-item name="RO_uint16_fesa" direction="OUT"><scalar type="int32_t"/><data-field-ref field-name-ref="RO_uint16_fesa"/></value-item><value-item name="RO_int16_fesa" direction="OUT"><scalar type="int16_t"/><data-field-ref field-name-ref="RO_int16_fesa"/></value-item><value-item name="RO_uint8_fesa" direction="OUT"><scalar type="int16_t"/><data-field-ref field-name-ref="RO_uint8_fesa"/></value-item><value-item name="RO_int8" direction="OUT"><scalar type="int8_t"/><data-field-ref field-name-ref="RO_int8"/></value-item><acq-stamp-item direction="OUT" name="acqStamp"><scalar type="int64_t"/></acq-stamp-item><update-flag-item direction="OUT" optional="true" name="updateFlags"><builtin-type-scalar data-type-name-ref="NOTIFICATION_UPDATE"/></update-flag-item><cycle-name-item direction="OUT" optional="true" name="cycleName"><array type="char"><dim>32</dim></array></cycle-name-item><cycle-stamp-item direction="OUT" optional="true" name="cycleStamp"><scalar type="int64_t"/></cycle-stamp-item><get-action><server-action-ref server-action-name-ref="GetMyROBlockProp"/></get-action><acquisition-context-item direction="OUT"><processIndex direction="OUT" name="processIndex"><scalar type="int32_t"/></processIndex><sequenceIndex direction="OUT" name="sequenceIndex"><scalar type="int32_t"/></sequenceIndex><chainIndex direction="OUT" name="chainIndex"><scalar type="int32_t"/></chainIndex><eventNumber direction="OUT" name="eventNumber"><scalar type="int32_t"/></eventNumber><timingGroupID direction="OUT" name="timingGroupID"><scalar type="int32_t"/></timingGroupID><acquisitionStamp direction="OUT" name="acquisitionStamp"><scalar type="int64_t"/></acquisitionStamp><eventStamp direction="OUT" name="eventStamp"><scalar type="int64_t"/></eventStamp><processStartStamp direction="OUT" name="processStartStamp"><scalar type="int64_t"/></processStartStamp><sequenceStartStamp direction="OUT" name="sequenceStartStamp"><scalar type="int64_t"/></sequenceStartStamp><chainStartStamp direction="OUT" name="chainStartStamp"><scalar type="int64_t"/></chainStartStamp><acquisition-context-field-ref field-name-ref="acquisitionContext"/></acquisition-context-item></GSI-Acquisition-Property><GSI-Version-Property multiplexed="false" name="Version" on-change="false" subscribable="false" visibility="operational"> + <GSI-Acquisition-Property name="MyROBlockProp" subscribable="true" multiplexed="false" on-change="true" visibility="development"><value-item name="RO_dt_fesa" direction="OUT"><scalar type="double"/><data-field-ref field-name-ref="RO_dt_fesa"/></value-item><value-item name="RO_real_fesa" direction="OUT"><scalar type="float"/><data-field-ref field-name-ref="RO_real_fesa"/></value-item><value-item name="RO_dint_fesa" direction="OUT"><scalar type="int32_t"/><data-field-ref field-name-ref="RO_dint_fesa"/></value-item><value-item name="RO_int_fesa" direction="OUT"><scalar type="int16_t"/><data-field-ref field-name-ref="RO_int_fesa"/></value-item><value-item name="RO_dword_fesa" direction="OUT"><scalar type="int64_t"/><data-field-ref field-name-ref="RO_dword_fesa"/></value-item><value-item name="RO_word_fesa" direction="OUT"><scalar type="int32_t"/><data-field-ref field-name-ref="RO_word_fesa"/></value-item><value-item name="RO_byte_fesa" direction="OUT"><scalar type="int16_t"/><data-field-ref field-name-ref="RO_byte_fesa"/></value-item><value-item name="RO_char_fesa" direction="OUT"><scalar type="int8_t"/><data-field-ref field-name-ref="RO_char_fesa"/></value-item><value-item name="RO_date_fesa" direction="OUT"><scalar type="double"/><data-field-ref field-name-ref="RO_date_fesa"/></value-item><value-item name="RO_string_fesa" direction="OUT"><array type="char"><dim>64</dim></array><data-field-ref field-name-ref="RO_string_fesa"/></value-item><value-item name="RO_float32_fesa" direction="OUT"><scalar type="float"/><data-field-ref field-name-ref="RO_float32_fesa"/></value-item><value-item name="RO_uint32_fesa" direction="OUT"><scalar type="int64_t"/><data-field-ref field-name-ref="RO_uint32_fesa"/></value-item><value-item name="RO_int32_fesa" direction="OUT"><scalar type="int32_t"/><data-field-ref field-name-ref="RO_int32_fesa"/></value-item><value-item name="RO_uint16_fesa" direction="OUT"><scalar type="int32_t"/><data-field-ref field-name-ref="RO_uint16_fesa"/></value-item><value-item name="RO_int16_fesa" direction="OUT"><scalar type="int16_t"/><data-field-ref field-name-ref="RO_int16_fesa"/></value-item><value-item name="RO_uint8_fesa" direction="OUT"><scalar type="int16_t"/><data-field-ref field-name-ref="RO_uint8_fesa"/></value-item><value-item name="RO_int8" direction="OUT"><scalar type="int8_t"/><data-field-ref field-name-ref="RO_int8"/></value-item><acq-stamp-item direction="OUT" name="acqStamp"><scalar type="int64_t"/></acq-stamp-item><update-flag-item direction="OUT" optional="true" name="updateFlags"><builtin-type-scalar data-type-name-ref="NOTIFICATION_UPDATE"/></update-flag-item><cycle-name-item direction="OUT" optional="true" name="cycleName"><array type="char"><dim>32</dim></array></cycle-name-item><cycle-stamp-item direction="OUT" optional="true" name="cycleStamp"><scalar type="int64_t"/></cycle-stamp-item><get-action><server-action-ref server-action-name-ref="GetMyROBlockProp"/></get-action><acquisition-context-item direction="OUT"><processIndex direction="OUT" name="processIndex"><scalar type="int32_t"/></processIndex><sequenceIndex direction="OUT" name="sequenceIndex"><scalar type="int32_t"/></sequenceIndex><chainIndex direction="OUT" name="chainIndex"><scalar type="int32_t"/></chainIndex><eventNumber direction="OUT" name="eventNumber"><scalar type="int32_t"/></eventNumber><timingGroupID direction="OUT" name="timingGroupID"><scalar type="int32_t"/></timingGroupID><acquisitionStamp direction="OUT" name="acquisitionStamp"><scalar type="int64_t"/></acquisitionStamp><eventStamp direction="OUT" name="eventStamp"><scalar type="int64_t"/></eventStamp><processStartStamp direction="OUT" name="processStartStamp"><scalar type="int64_t"/></processStartStamp><sequenceStartStamp direction="OUT" name="sequenceStartStamp"><scalar type="int64_t"/></sequenceStartStamp><chainStartStamp direction="OUT" name="chainStartStamp"><scalar type="int64_t"/></chainStartStamp><acquisition-context-field-ref field-name-ref="acquisitionContext"/></acquisition-context-item></GSI-Acquisition-Property><GSI-Acquisition-Property name="MyCBlockProp" subscribable="true" multiplexed="false" on-change="true" visibility="development"><value-item name="C_dt_fesa" direction="OUT"><array2D type="double"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="C_dt_fesa"/></value-item><value-item name="C_real_fesa" direction="OUT"><array2D type="float"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="C_real_fesa"/></value-item><value-item name="C_dint_fesa" direction="OUT"><array2D type="int32_t"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="C_dint_fesa"/></value-item><value-item name="C_int_fesa" direction="OUT"><array2D type="int16_t"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="C_int_fesa"/></value-item><value-item name="C_dword_fesa" direction="OUT"><array2D type="int64_t"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="C_dword_fesa"/></value-item><value-item name="C_word_fesa" direction="OUT"><array2D type="int32_t"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="C_word_fesa"/></value-item><value-item name="C_byte_fesa" direction="OUT"><array2D type="int16_t"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="C_byte_fesa"/></value-item><value-item name="C_char_fesa" direction="OUT"><array2D type="int8_t"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="C_char_fesa"/></value-item><value-item name="C_date_fesa" direction="OUT"><array2D type="double"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="C_date_fesa"/></value-item><value-item name="C_float32_fesa" direction="OUT"><array2D type="float"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="C_float32_fesa"/></value-item><value-item name="C_uint32_fesa" direction="OUT"><array2D type="int64_t"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="C_uint32_fesa"/></value-item><value-item name="C_int32_fesa" direction="OUT"><array2D type="int32_t"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="C_int32_fesa"/></value-item><value-item name="C_uint16_fesa" direction="OUT"><array2D type="int32_t"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="C_uint16_fesa"/></value-item><value-item name="C_int16_fesa" direction="OUT"><array2D type="int16_t"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="C_int16_fesa"/></value-item><value-item name="C_uint8_fesa" direction="OUT"><array2D type="int16_t"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="C_uint8_fesa"/></value-item><value-item name="C_int8" direction="OUT"><array2D type="int8_t"><dim1>2</dim1><dim2>2</dim2></array2D><data-field-ref field-name-ref="C_int8"/></value-item><acq-stamp-item direction="OUT" name="acqStamp"><scalar type="int64_t"/></acq-stamp-item><update-flag-item direction="OUT" optional="true" name="updateFlags"><builtin-type-scalar data-type-name-ref="NOTIFICATION_UPDATE"/></update-flag-item><cycle-name-item direction="OUT" optional="true" name="cycleName"><array type="char"><dim>32</dim></array></cycle-name-item><cycle-stamp-item direction="OUT" optional="true" name="cycleStamp"><scalar type="int64_t"/></cycle-stamp-item><get-action><server-action-ref server-action-name-ref="GetMyCBlockProp"/></get-action><acquisition-context-item direction="OUT"><processIndex direction="OUT" name="processIndex"><scalar type="int32_t"/></processIndex><sequenceIndex direction="OUT" name="sequenceIndex"><scalar type="int32_t"/></sequenceIndex><chainIndex direction="OUT" name="chainIndex"><scalar type="int32_t"/></chainIndex><eventNumber direction="OUT" name="eventNumber"><scalar type="int32_t"/></eventNumber><timingGroupID direction="OUT" name="timingGroupID"><scalar type="int32_t"/></timingGroupID><acquisitionStamp direction="OUT" name="acquisitionStamp"><scalar type="int64_t"/></acquisitionStamp><eventStamp direction="OUT" name="eventStamp"><scalar type="int64_t"/></eventStamp><processStartStamp direction="OUT" name="processStartStamp"><scalar type="int64_t"/></processStartStamp><sequenceStartStamp direction="OUT" name="sequenceStartStamp"><scalar type="int64_t"/></sequenceStartStamp><chainStartStamp direction="OUT" name="chainStartStamp"><scalar type="int64_t"/></chainStartStamp><acquisition-context-field-ref field-name-ref="acquisitionContext"/></acquisition-context-item></GSI-Acquisition-Property><GSI-Version-Property multiplexed="false" name="Version" on-change="false" subscribable="false" visibility="operational"> <description>Returns the current software and hardware versions of a piece of equipment.</description> <acq-stamp-item direction="OUT" name="acqStamp"> <scalar type="int64_t"/> @@ -609,7 +609,7 @@ corresponding string array containing keys to illustrate the meaning of the deta <data> <device-data> <configuration> - <field name="plcDeviceLabel"><description>Name of the related SILECS instance within the PLC mapping</description><array type="char"><dim>128</dim></array></field><field name="plcHostName"><description>Hostname of the PLC that contains the related SILECS class device</description><array type="char"><dim>128</dim></array></field><GSI-detailed-status-labels-field name="detailedStatus_labels"> + <field name="C_dt_fesa"><array2D type="double"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="C_real_fesa"><array2D type="float"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="C_dint_fesa"><array2D type="int32_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="C_int_fesa"><array2D type="int16_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="C_dword_fesa"><array2D type="int64_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="C_word_fesa"><array2D type="int32_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="C_byte_fesa"><array2D type="int16_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="C_char_fesa"><array2D type="int8_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="C_date_fesa"><array2D type="double"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="C_float32_fesa"><array2D type="float"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="C_uint32_fesa"><array2D type="int64_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="C_int32_fesa"><array2D type="int32_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="C_uint16_fesa"><array2D type="int32_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="C_int16_fesa"><array2D type="int16_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="C_uint8_fesa"><array2D type="int16_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="C_int8"><array2D type="int8_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="plcDeviceLabel"><description>Name of the related SILECS instance within the PLC mapping</description><array type="char"><dim>128</dim></array></field><field name="plcHostName"><description>Hostname of the PLC that contains the related SILECS class device</description><array type="char"><dim>128</dim></array></field><GSI-detailed-status-labels-field name="detailedStatus_labels"> <array2D type="char"> <custom-constant-dim1 constant-name-ref="DETAILED_STATUS_SIZE"/> <custom-constant-dim2 constant-name-ref="MAX_DETAILED_STATUS_LABEL_LENGTH"/> @@ -632,7 +632,7 @@ corresponding string array containing keys to illustrate the meaning of the deta </GSI-module-status-labels-field> </configuration> <setting> - <field name="WO_dt_fesa" multiplexed="false" persistent="true"><array type="double"><dim>10</dim></array></field><field name="WO_real_fesa" multiplexed="false" persistent="true"><array type="float"><dim>10</dim></array></field><field name="WO_dint_fesa" multiplexed="false" persistent="true"><array type="int32_t"><dim>10</dim></array></field><field name="WO_int_fesa" multiplexed="false" persistent="true"><array type="int16_t"><dim>10</dim></array></field><field name="WO_dword_fesa" multiplexed="false" persistent="true"><array type="int64_t"><dim>10</dim></array></field><field name="WO_word_fesa" multiplexed="false" persistent="true"><array type="int32_t"><dim>10</dim></array></field><field name="WO_byte_fesa" multiplexed="false" persistent="true"><array type="int16_t"><dim>10</dim></array></field><field name="WO_char_fesa" multiplexed="false" persistent="true"><array type="int8_t"><dim>10</dim></array></field><field name="WO_date_fesa" multiplexed="false" persistent="true"><array type="double"><dim>10</dim></array></field><field name="WO_string_fesa" multiplexed="false" persistent="true"><array2D type="char"><dim1>10</dim1><dim2>64</dim2></array2D></field><field name="WO_float32_fesa" multiplexed="false" persistent="true"><array type="float"><dim>10</dim></array></field><field name="WO_uint32_fesa" multiplexed="false" persistent="true"><array type="int64_t"><dim>10</dim></array></field><field name="WO_int32_fesa" multiplexed="false" persistent="true"><array type="int32_t"><dim>10</dim></array></field><field name="WO_uint16_fesa" multiplexed="false" persistent="true"><array type="int32_t"><dim>10</dim></array></field><field name="WO_int16_fesa" multiplexed="false" persistent="true"><array type="int16_t"><dim>10</dim></array></field><field name="WO_uint8_fesa" multiplexed="false" persistent="true"><array type="int16_t"><dim>10</dim></array></field><field name="WO_int8" multiplexed="false" persistent="true"><array type="int8_t"><dim>10</dim></array></field><field name="RW_dt_fesa" multiplexed="false" persistent="false"><array2D type="double"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_real_fesa" multiplexed="false" persistent="false"><array2D type="float"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_dint_fesa" multiplexed="false" persistent="false"><array2D type="int32_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_int_fesa" multiplexed="false" persistent="false"><array2D type="int16_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_dword_fesa" multiplexed="false" persistent="false"><array2D type="int64_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_word_fesa" multiplexed="false" persistent="false"><array2D type="int32_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_byte_fesa" multiplexed="false" persistent="false"><array2D type="int16_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_char_fesa" multiplexed="false" persistent="false"><array2D type="int8_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_date_fesa" multiplexed="false" persistent="false"><array2D type="double"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_float32_fesa" multiplexed="false" persistent="false"><array2D type="float"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_uint32_fesa" multiplexed="false" persistent="false"><array2D type="int64_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_int32_fesa" multiplexed="false" persistent="false"><array2D type="int32_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_uint16_fesa" multiplexed="false" persistent="false"><array2D type="int32_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_int16_fesa" multiplexed="false" persistent="false"><array2D type="int16_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_uint8_fesa" multiplexed="false" persistent="false"><array2D type="int16_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_int8" multiplexed="false" persistent="false"><array2D type="int8_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><GSI-power-field multiplexed="false" name="power" persistent="false"> + <field name="WO_dt_fesa" multiplexed="false" persistent="true"><array type="double"><dim>10</dim></array></field><field name="WO_real_fesa" multiplexed="false" persistent="true"><array type="float"><dim>10</dim></array></field><field name="WO_dint_fesa" multiplexed="false" persistent="true"><array type="int32_t"><dim>10</dim></array></field><field name="WO_int_fesa" multiplexed="false" persistent="true"><array type="int16_t"><dim>10</dim></array></field><field name="WO_dword_fesa" multiplexed="false" persistent="true"><array type="int64_t"><dim>10</dim></array></field><field name="WO_word_fesa" multiplexed="false" persistent="true"><array type="int32_t"><dim>10</dim></array></field><field name="WO_byte_fesa" multiplexed="false" persistent="true"><array type="int16_t"><dim>10</dim></array></field><field name="WO_char_fesa" multiplexed="false" persistent="true"><array type="int8_t"><dim>10</dim></array></field><field name="WO_date_fesa" multiplexed="false" persistent="true"><array type="double"><dim>10</dim></array></field><field name="WO_string_fesa" multiplexed="false" persistent="true"><array2D type="char"><dim1>10</dim1><dim2>64</dim2></array2D></field><field name="WO_float32_fesa" multiplexed="false" persistent="true"><array type="float"><dim>10</dim></array></field><field name="WO_uint32_fesa" multiplexed="false" persistent="true"><array type="int64_t"><dim>10</dim></array></field><field name="WO_int32_fesa" multiplexed="false" persistent="true"><array type="int32_t"><dim>10</dim></array></field><field name="WO_uint16_fesa" multiplexed="false" persistent="true"><array type="int32_t"><dim>10</dim></array></field><field name="WO_int16_fesa" multiplexed="false" persistent="true"><array type="int16_t"><dim>10</dim></array></field><field name="WO_uint8_fesa" multiplexed="false" persistent="true"><array type="int16_t"><dim>10</dim></array></field><field name="WO_int8" multiplexed="false" persistent="true"><array type="int8_t"><dim>10</dim></array></field><field name="RW_dt_fesa" multiplexed="false" persistent="true"><array2D type="double"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_real_fesa" multiplexed="false" persistent="true"><array2D type="float"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_dint_fesa" multiplexed="false" persistent="true"><array2D type="int32_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_int_fesa" multiplexed="false" persistent="true"><array2D type="int16_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_dword_fesa" multiplexed="false" persistent="true"><array2D type="int64_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_word_fesa" multiplexed="false" persistent="true"><array2D type="int32_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_byte_fesa" multiplexed="false" persistent="true"><array2D type="int16_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_char_fesa" multiplexed="false" persistent="true"><array2D type="int8_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_date_fesa" multiplexed="false" persistent="true"><array2D type="double"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_float32_fesa" multiplexed="false" persistent="true"><array2D type="float"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_uint32_fesa" multiplexed="false" persistent="true"><array2D type="int64_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_int32_fesa" multiplexed="false" persistent="true"><array2D type="int32_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_uint16_fesa" multiplexed="false" persistent="true"><array2D type="int32_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_int16_fesa" multiplexed="false" persistent="true"><array2D type="int16_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_uint8_fesa" multiplexed="false" persistent="true"><array2D type="int16_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><field name="RW_int8" multiplexed="false" persistent="true"><array2D type="int8_t"><dim1>2</dim1><dim2>2</dim2></array2D></field><GSI-power-field multiplexed="false" name="power" persistent="false"> <custom-type-scalar data-type-name-ref="DEVICE_POWER"/> </GSI-power-field> </setting> @@ -698,6 +698,6 @@ corresponding string array containing keys to illustrate the meaning of the deta <get-server-action implementation="default" name="StatusGetAction"/> <get-server-action implementation="default" name="VersionGetAction"/> <get-server-action implementation="default" name="ModuleStatusGetAction"/> - <get-server-action name="GetMyROBlockProp" implementation="custom"/><set-server-action name="SetMyRWBlockProp" implementation="custom"/><get-server-action name="GetMyRWBlockProp" implementation="custom"/><set-server-action name="SetMyWOBlockProp" implementation="custom"/></actions> + <get-server-action name="GetMyROBlockProp" implementation="custom"/><set-server-action name="SetMyRWBlockProp" implementation="custom"/><get-server-action name="GetMyRWBlockProp" implementation="custom"/><set-server-action name="SetMyWOBlockProp" implementation="custom"/><get-server-action name="GetMyCBlockProp" implementation="custom"/></actions> </equipment-model> 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 11250f892fda94f20b88d15e682c0e7eb4e7ca9c..70ee79b851f440d31b521726f23c8321176b0b31 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-07-27 16:14:06.421145"/> - <Deployment checksum="1037751963"/> + <Generation date="2018-01-31 10:48:11.878641"/> + <Deployment checksum="2903751780"/> </Mapping-Info> <SILECS-Mapping plc-name="Beckhoff_BC9020" plc-brand="BECKHOFF" plc-system="TWINCat-2" plc-model="BC9020" protocol="BLOCK_MODE" address="32768" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" domain="" used-mem="TODO"> <SILECS-Class name="SilecsHeader" version="1.0.0" address="32768" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="MW0..MW23/24 words" used-DI="0 word" used-DO="0 word" used-AI="0 word" used-AO="0 word"> @@ -23,7 +23,7 @@ </Acquisition-Block> <Instance label="SilecsHeader" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/> </SILECS-Class> - <SILECS-Class name="AllTypes" version="0.1.0" address="32816" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="MW24..MW1783/1760 words" used-DI="0 word" used-DO="0 word" used-AI="0 word" used-AO="0 word"> + <SILECS-Class name="AllTypes" version="0.1.0" address="32816" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="MW24..MW2251/2228 words" used-DI="0 word" used-DO="0 word" used-AI="0 word" used-AO="0 word"> <Acquisition-Block name="MyROBlock" size="53" address="32816" mem-size="122"> <Acquisition-Register name="RO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="1"> <scalar format="int8"/> @@ -78,57 +78,57 @@ </Acquisition-Register> </Acquisition-Block> <Setting-Block name="MyRWBlock" size="212" address="33060" mem-size="468"> - <Volatile-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="4"> + <Setting-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="4"> <array2D dim1="2" dim2="2" format="int8"/> - </Volatile-Register> - <Volatile-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="4" mem-size="4"> + </Setting-Register> + <Setting-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="4" mem-size="4"> <array2D dim1="2" dim2="2" format="uint8"/> - </Volatile-Register> - <Volatile-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="8" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="8" mem-size="8"> <array2D dim1="2" dim2="2" format="int16"/> - </Volatile-Register> - <Volatile-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="16" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="16" mem-size="8"> <array2D dim1="2" dim2="2" format="uint16"/> - </Volatile-Register> - <Volatile-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="24" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="24" mem-size="16"> <array2D dim1="2" dim2="2" format="int32"/> - </Volatile-Register> - <Volatile-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="40" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="40" mem-size="16"> <array2D dim1="2" dim2="2" format="uint32"/> - </Volatile-Register> - <Volatile-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="56" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="56" mem-size="16"> <array2D dim1="2" dim2="2" format="float32"/> - </Volatile-Register> - <Volatile-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="72" mem-size="260"> + </Setting-Register> + <Setting-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="72" mem-size="260"> <stringArray2D dim1="2" dim2="2" string-length="64" format="string"/> - </Volatile-Register> - <Volatile-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="332" mem-size="32"> + </Setting-Register> + <Setting-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="332" mem-size="32"> <array2D dim1="2" dim2="2" format="date"/> - </Volatile-Register> - <Volatile-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="364" mem-size="4"> + </Setting-Register> + <Setting-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="364" mem-size="4"> <array2D dim1="2" dim2="2" format="char"/> - </Volatile-Register> - <Volatile-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="368" mem-size="4"> + </Setting-Register> + <Setting-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="368" mem-size="4"> <array2D dim1="2" dim2="2" format="byte"/> - </Volatile-Register> - <Volatile-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="372" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="372" mem-size="8"> <array2D dim1="2" dim2="2" format="word"/> - </Volatile-Register> - <Volatile-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="380" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="380" mem-size="16"> <array2D dim1="2" dim2="2" format="dword"/> - </Volatile-Register> - <Volatile-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="396" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="396" mem-size="8"> <array2D dim1="2" dim2="2" format="int"/> - </Volatile-Register> - <Volatile-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="404" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="404" mem-size="16"> <array2D dim1="2" dim2="2" format="dint"/> - </Volatile-Register> - <Volatile-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="420" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="420" mem-size="16"> <array2D dim1="2" dim2="2" format="real"/> - </Volatile-Register> - <Volatile-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="436" mem-size="32"> + </Setting-Register> + <Setting-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="436" mem-size="32"> <array2D dim1="2" dim2="2" format="dt"/> - </Volatile-Register> + </Setting-Register> </Setting-Block> <Command-Block name="MyWOBlock" size="530" address="33996" mem-size="1170"> <Setting-Register name="WO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="10"> @@ -183,6 +183,59 @@ <array dim="10" format="dt"/> </Setting-Register> </Command-Block> + <Configuration-Block name="MyCBlock" size="212" address="36336" mem-size="468"> + <Configuration-Register name="C_int8" generateFesaValueItem="true" size="1" address="0" mem-size="4"> + <array2D dim1="2" dim2="2" format="int8"/> + </Configuration-Register> + <Configuration-Register name="C_uint8" generateFesaValueItem="true" fesaFieldName="C_uint8_fesa" size="1" address="4" mem-size="4"> + <array2D dim1="2" dim2="2" format="uint8"/> + </Configuration-Register> + <Configuration-Register name="C_int16" generateFesaValueItem="true" fesaFieldName="C_int16_fesa" size="2" address="8" mem-size="8"> + <array2D dim1="2" dim2="2" format="int16"/> + </Configuration-Register> + <Configuration-Register name="C_uint16" generateFesaValueItem="true" fesaFieldName="C_uint16_fesa" size="2" address="16" mem-size="8"> + <array2D dim1="2" dim2="2" format="uint16"/> + </Configuration-Register> + <Configuration-Register name="C_int32" generateFesaValueItem="true" fesaFieldName="C_int32_fesa" size="4" address="24" mem-size="16"> + <array2D dim1="2" dim2="2" format="int32"/> + </Configuration-Register> + <Configuration-Register name="C_uint32" generateFesaValueItem="true" fesaFieldName="C_uint32_fesa" size="4" address="40" mem-size="16"> + <array2D dim1="2" dim2="2" format="uint32"/> + </Configuration-Register> + <Configuration-Register name="C_float32" generateFesaValueItem="true" fesaFieldName="C_float32_fesa" size="4" address="56" mem-size="16"> + <array2D dim1="2" dim2="2" format="float32"/> + </Configuration-Register> + <Configuration-Register name="C_string" generateFesaValueItem="true" fesaFieldName="C_string_fesa" size="1" address="72" mem-size="260"> + <stringArray2D dim1="2" dim2="2" string-length="64" format="string"/> + </Configuration-Register> + <Configuration-Register name="C_date" generateFesaValueItem="true" fesaFieldName="C_date_fesa" size="8" address="332" mem-size="32"> + <array2D dim1="2" dim2="2" format="date"/> + </Configuration-Register> + <Configuration-Register name="C_char" generateFesaValueItem="true" fesaFieldName="C_char_fesa" size="1" address="364" mem-size="4"> + <array2D dim1="2" dim2="2" format="char"/> + </Configuration-Register> + <Configuration-Register name="C_byte" generateFesaValueItem="true" fesaFieldName="C_byte_fesa" size="1" address="368" mem-size="4"> + <array2D dim1="2" dim2="2" format="byte"/> + </Configuration-Register> + <Configuration-Register name="C_word" generateFesaValueItem="true" fesaFieldName="C_word_fesa" size="2" address="372" mem-size="8"> + <array2D dim1="2" dim2="2" format="word"/> + </Configuration-Register> + <Configuration-Register name="C_dword" generateFesaValueItem="true" fesaFieldName="C_dword_fesa" size="4" address="380" mem-size="16"> + <array2D dim1="2" dim2="2" format="dword"/> + </Configuration-Register> + <Configuration-Register name="C_int" generateFesaValueItem="true" fesaFieldName="C_int_fesa" size="2" address="396" mem-size="8"> + <array2D dim1="2" dim2="2" format="int"/> + </Configuration-Register> + <Configuration-Register name="C_dint" generateFesaValueItem="true" fesaFieldName="C_dint_fesa" size="4" address="404" mem-size="16"> + <array2D dim1="2" dim2="2" format="dint"/> + </Configuration-Register> + <Configuration-Register name="C_real" generateFesaValueItem="true" fesaFieldName="C_real_fesa" size="4" address="420" mem-size="16"> + <array2D dim1="2" dim2="2" format="real"/> + </Configuration-Register> + <Configuration-Register name="C_dt" generateFesaValueItem="true" fesaFieldName="C_dt_fesa" size="8" address="436" mem-size="32"> + <array2D dim1="2" dim2="2" format="dt"/> + </Configuration-Register> + </Configuration-Block> <Instance label="testDevice1" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/> <Instance label="testDevice2" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/> </SILECS-Class> diff --git a/silecs-codegen/src/xml/test/generated_correct/client/Beckhoff_CX9020_TC2.silecsparam b/silecs-codegen/src/xml/test/generated_correct/client/Beckhoff_CX9020_TC2.silecsparam index b1393097bbd7f2a35ad1856383fca7b84ca5cd34..76c23b00b403ccec86e7c51d60c2e5287ae302f6 100644 --- a/silecs-codegen/src/xml/test/generated_correct/client/Beckhoff_CX9020_TC2.silecsparam +++ b/silecs-codegen/src/xml/test/generated_correct/client/Beckhoff_CX9020_TC2.silecsparam @@ -2,8 +2,8 @@ <SILECS-Param silecs-version="DEV"> <Mapping-Info> <Owner user-login="schwinn"/> - <Generation date="2017-07-28 12:11:45.390885"/> - <Deployment checksum="2754857673"/> + <Generation date="2018-01-31 10:48:11.926827"/> + <Deployment checksum="2305663869"/> </Mapping-Info> <SILECS-Mapping plc-name="Beckhoff_CX9020_TC2" plc-brand="BECKHOFF" plc-system="TWINCat-2" plc-model="CX9020" protocol="BLOCK_MODE" address="24576" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" domain="" used-mem="TODO"> <SILECS-Class name="SilecsHeader" version="1.0.0" address="24576" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="MW0..MW51/52 words" used-DI="0 word" used-DO="0 word" used-AI="0 word" used-AO="0 word"> @@ -23,7 +23,7 @@ </Acquisition-Block> <Instance label="SilecsHeader" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/> </SILECS-Class> - <SILECS-Class name="AllTypes" version="0.1.0" address="24628" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="MW52..MW3587/3536 words" used-DI="0 word" used-DO="0 word" used-AI="0 word" used-AO="0 word"> + <SILECS-Class name="AllTypes" version="0.1.0" address="24628" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="MW52..MW4523/4472 words" used-DI="0 word" used-DO="0 word" used-AI="0 word" used-AO="0 word"> <Acquisition-Block name="MyROBlock" size="53" address="24628" mem-size="128"> <Acquisition-Register name="RO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="1"> <scalar format="int8"/> @@ -78,57 +78,57 @@ </Acquisition-Register> </Acquisition-Block> <Setting-Block name="MyRWBlock" size="212" address="24884" mem-size="468"> - <Volatile-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="4"> + <Setting-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="4"> <array2D dim1="2" dim2="2" format="int8"/> - </Volatile-Register> - <Volatile-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="4" mem-size="4"> + </Setting-Register> + <Setting-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="4" mem-size="4"> <array2D dim1="2" dim2="2" format="uint8"/> - </Volatile-Register> - <Volatile-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="8" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="8" mem-size="8"> <array2D dim1="2" dim2="2" format="int16"/> - </Volatile-Register> - <Volatile-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="16" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="16" mem-size="8"> <array2D dim1="2" dim2="2" format="uint16"/> - </Volatile-Register> - <Volatile-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="24" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="24" mem-size="16"> <array2D dim1="2" dim2="2" format="int32"/> - </Volatile-Register> - <Volatile-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="40" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="40" mem-size="16"> <array2D dim1="2" dim2="2" format="uint32"/> - </Volatile-Register> - <Volatile-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="56" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="56" mem-size="16"> <array2D dim1="2" dim2="2" format="float32"/> - </Volatile-Register> - <Volatile-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="72" mem-size="260"> + </Setting-Register> + <Setting-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="72" mem-size="260"> <stringArray2D dim1="2" dim2="2" string-length="64" format="string"/> - </Volatile-Register> - <Volatile-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="332" mem-size="32"> + </Setting-Register> + <Setting-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="332" mem-size="32"> <array2D dim1="2" dim2="2" format="date"/> - </Volatile-Register> - <Volatile-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="364" mem-size="4"> + </Setting-Register> + <Setting-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="364" mem-size="4"> <array2D dim1="2" dim2="2" format="char"/> - </Volatile-Register> - <Volatile-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="368" mem-size="4"> + </Setting-Register> + <Setting-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="368" mem-size="4"> <array2D dim1="2" dim2="2" format="byte"/> - </Volatile-Register> - <Volatile-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="372" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="372" mem-size="8"> <array2D dim1="2" dim2="2" format="word"/> - </Volatile-Register> - <Volatile-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="380" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="380" mem-size="16"> <array2D dim1="2" dim2="2" format="dword"/> - </Volatile-Register> - <Volatile-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="396" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="396" mem-size="8"> <array2D dim1="2" dim2="2" format="int"/> - </Volatile-Register> - <Volatile-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="404" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="404" mem-size="16"> <array2D dim1="2" dim2="2" format="dint"/> - </Volatile-Register> - <Volatile-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="420" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="420" mem-size="16"> <array2D dim1="2" dim2="2" format="real"/> - </Volatile-Register> - <Volatile-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="436" mem-size="32"> + </Setting-Register> + <Setting-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="436" mem-size="32"> <array2D dim1="2" dim2="2" format="dt"/> - </Volatile-Register> + </Setting-Register> </Setting-Block> <Command-Block name="MyWOBlock" size="530" address="25820" mem-size="1172"> <Setting-Register name="WO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="10"> @@ -183,6 +183,59 @@ <array dim="10" format="dt"/> </Setting-Register> </Command-Block> + <Configuration-Block name="MyCBlock" size="212" address="28164" mem-size="468"> + <Configuration-Register name="C_int8" generateFesaValueItem="true" size="1" address="0" mem-size="4"> + <array2D dim1="2" dim2="2" format="int8"/> + </Configuration-Register> + <Configuration-Register name="C_uint8" generateFesaValueItem="true" fesaFieldName="C_uint8_fesa" size="1" address="4" mem-size="4"> + <array2D dim1="2" dim2="2" format="uint8"/> + </Configuration-Register> + <Configuration-Register name="C_int16" generateFesaValueItem="true" fesaFieldName="C_int16_fesa" size="2" address="8" mem-size="8"> + <array2D dim1="2" dim2="2" format="int16"/> + </Configuration-Register> + <Configuration-Register name="C_uint16" generateFesaValueItem="true" fesaFieldName="C_uint16_fesa" size="2" address="16" mem-size="8"> + <array2D dim1="2" dim2="2" format="uint16"/> + </Configuration-Register> + <Configuration-Register name="C_int32" generateFesaValueItem="true" fesaFieldName="C_int32_fesa" size="4" address="24" mem-size="16"> + <array2D dim1="2" dim2="2" format="int32"/> + </Configuration-Register> + <Configuration-Register name="C_uint32" generateFesaValueItem="true" fesaFieldName="C_uint32_fesa" size="4" address="40" mem-size="16"> + <array2D dim1="2" dim2="2" format="uint32"/> + </Configuration-Register> + <Configuration-Register name="C_float32" generateFesaValueItem="true" fesaFieldName="C_float32_fesa" size="4" address="56" mem-size="16"> + <array2D dim1="2" dim2="2" format="float32"/> + </Configuration-Register> + <Configuration-Register name="C_string" generateFesaValueItem="true" fesaFieldName="C_string_fesa" size="1" address="72" mem-size="260"> + <stringArray2D dim1="2" dim2="2" string-length="64" format="string"/> + </Configuration-Register> + <Configuration-Register name="C_date" generateFesaValueItem="true" fesaFieldName="C_date_fesa" size="8" address="332" mem-size="32"> + <array2D dim1="2" dim2="2" format="date"/> + </Configuration-Register> + <Configuration-Register name="C_char" generateFesaValueItem="true" fesaFieldName="C_char_fesa" size="1" address="364" mem-size="4"> + <array2D dim1="2" dim2="2" format="char"/> + </Configuration-Register> + <Configuration-Register name="C_byte" generateFesaValueItem="true" fesaFieldName="C_byte_fesa" size="1" address="368" mem-size="4"> + <array2D dim1="2" dim2="2" format="byte"/> + </Configuration-Register> + <Configuration-Register name="C_word" generateFesaValueItem="true" fesaFieldName="C_word_fesa" size="2" address="372" mem-size="8"> + <array2D dim1="2" dim2="2" format="word"/> + </Configuration-Register> + <Configuration-Register name="C_dword" generateFesaValueItem="true" fesaFieldName="C_dword_fesa" size="4" address="380" mem-size="16"> + <array2D dim1="2" dim2="2" format="dword"/> + </Configuration-Register> + <Configuration-Register name="C_int" generateFesaValueItem="true" fesaFieldName="C_int_fesa" size="2" address="396" mem-size="8"> + <array2D dim1="2" dim2="2" format="int"/> + </Configuration-Register> + <Configuration-Register name="C_dint" generateFesaValueItem="true" fesaFieldName="C_dint_fesa" size="4" address="404" mem-size="16"> + <array2D dim1="2" dim2="2" format="dint"/> + </Configuration-Register> + <Configuration-Register name="C_real" generateFesaValueItem="true" fesaFieldName="C_real_fesa" size="4" address="420" mem-size="16"> + <array2D dim1="2" dim2="2" format="real"/> + </Configuration-Register> + <Configuration-Register name="C_dt" generateFesaValueItem="true" fesaFieldName="C_dt_fesa" size="8" address="436" mem-size="32"> + <array2D dim1="2" dim2="2" format="dt"/> + </Configuration-Register> + </Configuration-Block> <Instance label="testDevice1" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/> <Instance label="testDevice2" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/> </SILECS-Class> diff --git a/silecs-codegen/src/xml/test/generated_correct/client/Beckhoff_CX9020_TC3.silecsparam b/silecs-codegen/src/xml/test/generated_correct/client/Beckhoff_CX9020_TC3.silecsparam index 069dc75fc1f2c7ae305944aacd40f23d60757d87..21b1f9d2b8d124af58dba9f8e64514f20114980b 100644 --- a/silecs-codegen/src/xml/test/generated_correct/client/Beckhoff_CX9020_TC3.silecsparam +++ b/silecs-codegen/src/xml/test/generated_correct/client/Beckhoff_CX9020_TC3.silecsparam @@ -2,8 +2,8 @@ <SILECS-Param silecs-version="DEV"> <Mapping-Info> <Owner user-login="schwinn"/> - <Generation date="2017-07-28 12:11:45.427012"/> - <Deployment checksum="2754857673"/> + <Generation date="2018-01-31 10:48:11.976073"/> + <Deployment checksum="2305663869"/> </Mapping-Info> <SILECS-Mapping plc-name="Beckhoff_CX9020_TC3" plc-brand="BECKHOFF" plc-system="TWINCat-3" plc-model="CX9020" protocol="BLOCK_MODE" address="24576" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" domain="" used-mem="TODO"> <SILECS-Class name="SilecsHeader" version="1.0.0" address="24576" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="MW0..MW25/26 words" used-DI="0 word" used-DO="0 word" used-AI="0 word" used-AO="0 word"> @@ -23,7 +23,7 @@ </Acquisition-Block> <Instance label="SilecsHeader" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/> </SILECS-Class> - <SILECS-Class name="AllTypes" version="0.1.0" address="24628" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="MW26..MW1793/1768 words" used-DI="0 word" used-DO="0 word" used-AI="0 word" used-AO="0 word"> + <SILECS-Class name="AllTypes" version="0.1.0" address="24628" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="MW26..MW2261/2236 words" used-DI="0 word" used-DO="0 word" used-AI="0 word" used-AO="0 word"> <Acquisition-Block name="MyROBlock" size="53" address="24628" mem-size="128"> <Acquisition-Register name="RO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="1"> <scalar format="int8"/> @@ -78,57 +78,57 @@ </Acquisition-Register> </Acquisition-Block> <Setting-Block name="MyRWBlock" size="212" address="24884" mem-size="468"> - <Volatile-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="4"> + <Setting-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="4"> <array2D dim1="2" dim2="2" format="int8"/> - </Volatile-Register> - <Volatile-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="4" mem-size="4"> + </Setting-Register> + <Setting-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="4" mem-size="4"> <array2D dim1="2" dim2="2" format="uint8"/> - </Volatile-Register> - <Volatile-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="8" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="8" mem-size="8"> <array2D dim1="2" dim2="2" format="int16"/> - </Volatile-Register> - <Volatile-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="16" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="16" mem-size="8"> <array2D dim1="2" dim2="2" format="uint16"/> - </Volatile-Register> - <Volatile-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="24" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="24" mem-size="16"> <array2D dim1="2" dim2="2" format="int32"/> - </Volatile-Register> - <Volatile-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="40" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="40" mem-size="16"> <array2D dim1="2" dim2="2" format="uint32"/> - </Volatile-Register> - <Volatile-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="56" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="56" mem-size="16"> <array2D dim1="2" dim2="2" format="float32"/> - </Volatile-Register> - <Volatile-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="72" mem-size="260"> + </Setting-Register> + <Setting-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="72" mem-size="260"> <stringArray2D dim1="2" dim2="2" string-length="64" format="string"/> - </Volatile-Register> - <Volatile-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="332" mem-size="32"> + </Setting-Register> + <Setting-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="332" mem-size="32"> <array2D dim1="2" dim2="2" format="date"/> - </Volatile-Register> - <Volatile-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="364" mem-size="4"> + </Setting-Register> + <Setting-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="364" mem-size="4"> <array2D dim1="2" dim2="2" format="char"/> - </Volatile-Register> - <Volatile-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="368" mem-size="4"> + </Setting-Register> + <Setting-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="368" mem-size="4"> <array2D dim1="2" dim2="2" format="byte"/> - </Volatile-Register> - <Volatile-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="372" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="372" mem-size="8"> <array2D dim1="2" dim2="2" format="word"/> - </Volatile-Register> - <Volatile-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="380" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="380" mem-size="16"> <array2D dim1="2" dim2="2" format="dword"/> - </Volatile-Register> - <Volatile-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="396" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="396" mem-size="8"> <array2D dim1="2" dim2="2" format="int"/> - </Volatile-Register> - <Volatile-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="404" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="404" mem-size="16"> <array2D dim1="2" dim2="2" format="dint"/> - </Volatile-Register> - <Volatile-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="420" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="420" mem-size="16"> <array2D dim1="2" dim2="2" format="real"/> - </Volatile-Register> - <Volatile-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="436" mem-size="32"> + </Setting-Register> + <Setting-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="436" mem-size="32"> <array2D dim1="2" dim2="2" format="dt"/> - </Volatile-Register> + </Setting-Register> </Setting-Block> <Command-Block name="MyWOBlock" size="530" address="25820" mem-size="1172"> <Setting-Register name="WO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="10"> @@ -183,6 +183,59 @@ <array dim="10" format="dt"/> </Setting-Register> </Command-Block> + <Configuration-Block name="MyCBlock" size="212" address="28164" mem-size="468"> + <Configuration-Register name="C_int8" generateFesaValueItem="true" size="1" address="0" mem-size="4"> + <array2D dim1="2" dim2="2" format="int8"/> + </Configuration-Register> + <Configuration-Register name="C_uint8" generateFesaValueItem="true" fesaFieldName="C_uint8_fesa" size="1" address="4" mem-size="4"> + <array2D dim1="2" dim2="2" format="uint8"/> + </Configuration-Register> + <Configuration-Register name="C_int16" generateFesaValueItem="true" fesaFieldName="C_int16_fesa" size="2" address="8" mem-size="8"> + <array2D dim1="2" dim2="2" format="int16"/> + </Configuration-Register> + <Configuration-Register name="C_uint16" generateFesaValueItem="true" fesaFieldName="C_uint16_fesa" size="2" address="16" mem-size="8"> + <array2D dim1="2" dim2="2" format="uint16"/> + </Configuration-Register> + <Configuration-Register name="C_int32" generateFesaValueItem="true" fesaFieldName="C_int32_fesa" size="4" address="24" mem-size="16"> + <array2D dim1="2" dim2="2" format="int32"/> + </Configuration-Register> + <Configuration-Register name="C_uint32" generateFesaValueItem="true" fesaFieldName="C_uint32_fesa" size="4" address="40" mem-size="16"> + <array2D dim1="2" dim2="2" format="uint32"/> + </Configuration-Register> + <Configuration-Register name="C_float32" generateFesaValueItem="true" fesaFieldName="C_float32_fesa" size="4" address="56" mem-size="16"> + <array2D dim1="2" dim2="2" format="float32"/> + </Configuration-Register> + <Configuration-Register name="C_string" generateFesaValueItem="true" fesaFieldName="C_string_fesa" size="1" address="72" mem-size="260"> + <stringArray2D dim1="2" dim2="2" string-length="64" format="string"/> + </Configuration-Register> + <Configuration-Register name="C_date" generateFesaValueItem="true" fesaFieldName="C_date_fesa" size="8" address="332" mem-size="32"> + <array2D dim1="2" dim2="2" format="date"/> + </Configuration-Register> + <Configuration-Register name="C_char" generateFesaValueItem="true" fesaFieldName="C_char_fesa" size="1" address="364" mem-size="4"> + <array2D dim1="2" dim2="2" format="char"/> + </Configuration-Register> + <Configuration-Register name="C_byte" generateFesaValueItem="true" fesaFieldName="C_byte_fesa" size="1" address="368" mem-size="4"> + <array2D dim1="2" dim2="2" format="byte"/> + </Configuration-Register> + <Configuration-Register name="C_word" generateFesaValueItem="true" fesaFieldName="C_word_fesa" size="2" address="372" mem-size="8"> + <array2D dim1="2" dim2="2" format="word"/> + </Configuration-Register> + <Configuration-Register name="C_dword" generateFesaValueItem="true" fesaFieldName="C_dword_fesa" size="4" address="380" mem-size="16"> + <array2D dim1="2" dim2="2" format="dword"/> + </Configuration-Register> + <Configuration-Register name="C_int" generateFesaValueItem="true" fesaFieldName="C_int_fesa" size="2" address="396" mem-size="8"> + <array2D dim1="2" dim2="2" format="int"/> + </Configuration-Register> + <Configuration-Register name="C_dint" generateFesaValueItem="true" fesaFieldName="C_dint_fesa" size="4" address="404" mem-size="16"> + <array2D dim1="2" dim2="2" format="dint"/> + </Configuration-Register> + <Configuration-Register name="C_real" generateFesaValueItem="true" fesaFieldName="C_real_fesa" size="4" address="420" mem-size="16"> + <array2D dim1="2" dim2="2" format="real"/> + </Configuration-Register> + <Configuration-Register name="C_dt" generateFesaValueItem="true" fesaFieldName="C_dt_fesa" size="8" address="436" mem-size="32"> + <array2D dim1="2" dim2="2" format="dt"/> + </Configuration-Register> + </Configuration-Block> <Instance label="testDevice1" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/> <Instance label="testDevice2" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/> </SILECS-Class> 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 547f7eff5ee62111d0793ecfa54214bde2bd7205..9d4a8c0c5409fb22ca0d6d8081accdf8e04ff51c 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-07-27 16:14:06.611199"/> - <Deployment checksum="308863231"/> + <Generation date="2018-01-31 10:48:12.122661"/> + <Deployment checksum="582399177"/> </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" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" domain="" used-mem="TODO"> <SILECS-Class name="SilecsHeader" version="1.0.0" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="MW0..MW21/22 words" used-DI="0 word" used-DO="0 word" used-AI="0 word" used-AO="0 word"> @@ -23,7 +23,7 @@ </Acquisition-Block> <Instance label="SilecsHeader" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/> </SILECS-Class> - <SILECS-Class name="AllTypes" version="0.1.0" address="44" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="MW22..MW1821/1800 words" used-DI="0 word" used-DO="0 word" used-AI="0 word" used-AO="0 word"> + <SILECS-Class name="AllTypes" version="0.1.0" address="44" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="MW22..MW2301/2280 words" used-DI="0 word" used-DO="0 word" used-AI="0 word" used-AO="0 word"> <Acquisition-Block name="MyROBlock" size="53" address="44" mem-size="120"> <Acquisition-Register name="RO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="2"> <scalar format="int8"/> @@ -78,57 +78,57 @@ </Acquisition-Register> </Acquisition-Block> <Setting-Block name="MyRWBlock" size="212" address="284" mem-size="480"> - <Volatile-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="8"> + <Setting-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="8"> <array2D dim1="2" dim2="2" format="int8"/> - </Volatile-Register> - <Volatile-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="8" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="8" mem-size="8"> <array2D dim1="2" dim2="2" format="uint8"/> - </Volatile-Register> - <Volatile-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="16" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="16" mem-size="8"> <array2D dim1="2" dim2="2" format="int16"/> - </Volatile-Register> - <Volatile-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="24" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="24" mem-size="8"> <array2D dim1="2" dim2="2" format="uint16"/> - </Volatile-Register> - <Volatile-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="32" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="32" mem-size="16"> <array2D dim1="2" dim2="2" format="int32"/> - </Volatile-Register> - <Volatile-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="48" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="48" mem-size="16"> <array2D dim1="2" dim2="2" format="uint32"/> - </Volatile-Register> - <Volatile-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="64" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="64" mem-size="16"> <array2D dim1="2" dim2="2" format="float32"/> - </Volatile-Register> - <Volatile-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="80" mem-size="256"> + </Setting-Register> + <Setting-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="80" mem-size="256"> <stringArray2D dim1="2" dim2="2" string-length="64" format="string"/> - </Volatile-Register> - <Volatile-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="336" mem-size="32"> + </Setting-Register> + <Setting-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="336" mem-size="32"> <array2D dim1="2" dim2="2" format="date"/> - </Volatile-Register> - <Volatile-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="368" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="368" mem-size="8"> <array2D dim1="2" dim2="2" format="char"/> - </Volatile-Register> - <Volatile-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="376" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="376" mem-size="8"> <array2D dim1="2" dim2="2" format="byte"/> - </Volatile-Register> - <Volatile-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="384" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="384" mem-size="8"> <array2D dim1="2" dim2="2" format="word"/> - </Volatile-Register> - <Volatile-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="392" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="392" mem-size="16"> <array2D dim1="2" dim2="2" format="dword"/> - </Volatile-Register> - <Volatile-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="408" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="408" mem-size="8"> <array2D dim1="2" dim2="2" format="int"/> - </Volatile-Register> - <Volatile-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="416" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="416" mem-size="16"> <array2D dim1="2" dim2="2" format="dint"/> - </Volatile-Register> - <Volatile-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="432" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="432" mem-size="16"> <array2D dim1="2" dim2="2" format="real"/> - </Volatile-Register> - <Volatile-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="448" mem-size="32"> + </Setting-Register> + <Setting-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="448" mem-size="32"> <array2D dim1="2" dim2="2" format="dt"/> - </Volatile-Register> + </Setting-Register> </Setting-Block> <Command-Block name="MyWOBlock" size="530" address="1244" mem-size="1200"> <Setting-Register name="WO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="20"> @@ -183,6 +183,59 @@ <array dim="10" format="dt"/> </Setting-Register> </Command-Block> + <Configuration-Block name="MyCBlock" size="212" address="3644" mem-size="480"> + <Configuration-Register name="C_int8" generateFesaValueItem="true" size="1" address="0" mem-size="8"> + <array2D dim1="2" dim2="2" format="int8"/> + </Configuration-Register> + <Configuration-Register name="C_uint8" generateFesaValueItem="true" fesaFieldName="C_uint8_fesa" size="1" address="8" mem-size="8"> + <array2D dim1="2" dim2="2" format="uint8"/> + </Configuration-Register> + <Configuration-Register name="C_int16" generateFesaValueItem="true" fesaFieldName="C_int16_fesa" size="2" address="16" mem-size="8"> + <array2D dim1="2" dim2="2" format="int16"/> + </Configuration-Register> + <Configuration-Register name="C_uint16" generateFesaValueItem="true" fesaFieldName="C_uint16_fesa" size="2" address="24" mem-size="8"> + <array2D dim1="2" dim2="2" format="uint16"/> + </Configuration-Register> + <Configuration-Register name="C_int32" generateFesaValueItem="true" fesaFieldName="C_int32_fesa" size="4" address="32" mem-size="16"> + <array2D dim1="2" dim2="2" format="int32"/> + </Configuration-Register> + <Configuration-Register name="C_uint32" generateFesaValueItem="true" fesaFieldName="C_uint32_fesa" size="4" address="48" mem-size="16"> + <array2D dim1="2" dim2="2" format="uint32"/> + </Configuration-Register> + <Configuration-Register name="C_float32" generateFesaValueItem="true" fesaFieldName="C_float32_fesa" size="4" address="64" mem-size="16"> + <array2D dim1="2" dim2="2" format="float32"/> + </Configuration-Register> + <Configuration-Register name="C_string" generateFesaValueItem="true" fesaFieldName="C_string_fesa" size="1" address="80" mem-size="256"> + <stringArray2D dim1="2" dim2="2" string-length="64" format="string"/> + </Configuration-Register> + <Configuration-Register name="C_date" generateFesaValueItem="true" fesaFieldName="C_date_fesa" size="8" address="336" mem-size="32"> + <array2D dim1="2" dim2="2" format="date"/> + </Configuration-Register> + <Configuration-Register name="C_char" generateFesaValueItem="true" fesaFieldName="C_char_fesa" size="1" address="368" mem-size="8"> + <array2D dim1="2" dim2="2" format="char"/> + </Configuration-Register> + <Configuration-Register name="C_byte" generateFesaValueItem="true" fesaFieldName="C_byte_fesa" size="1" address="376" mem-size="8"> + <array2D dim1="2" dim2="2" format="byte"/> + </Configuration-Register> + <Configuration-Register name="C_word" generateFesaValueItem="true" fesaFieldName="C_word_fesa" size="2" address="384" mem-size="8"> + <array2D dim1="2" dim2="2" format="word"/> + </Configuration-Register> + <Configuration-Register name="C_dword" generateFesaValueItem="true" fesaFieldName="C_dword_fesa" size="4" address="392" mem-size="16"> + <array2D dim1="2" dim2="2" format="dword"/> + </Configuration-Register> + <Configuration-Register name="C_int" generateFesaValueItem="true" fesaFieldName="C_int_fesa" size="2" address="408" mem-size="8"> + <array2D dim1="2" dim2="2" format="int"/> + </Configuration-Register> + <Configuration-Register name="C_dint" generateFesaValueItem="true" fesaFieldName="C_dint_fesa" size="4" address="416" mem-size="16"> + <array2D dim1="2" dim2="2" format="dint"/> + </Configuration-Register> + <Configuration-Register name="C_real" generateFesaValueItem="true" fesaFieldName="C_real_fesa" size="4" address="432" mem-size="16"> + <array2D dim1="2" dim2="2" format="real"/> + </Configuration-Register> + <Configuration-Register name="C_dt" generateFesaValueItem="true" fesaFieldName="C_dt_fesa" size="8" address="448" mem-size="32"> + <array2D dim1="2" dim2="2" format="dt"/> + </Configuration-Register> + </Configuration-Block> <Instance label="testDevice1" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/> <Instance label="testDevice2" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/> </SILECS-Class> 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 8405a9d5208473a1a478ac8d5f48464348b03cd4..05907d64f98bbba4d880f4a1638fe126e9711d87 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-07-27 16:14:06.572989"/> - <Deployment checksum="308863231"/> + <Generation date="2018-01-31 10:48:12.087466"/> + <Deployment checksum="582399177"/> </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" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" domain="" used-mem="TODO"> <SILECS-Class name="SilecsHeader" version="1.0.0" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="MW0..MW21/22 words" used-DI="0 word" used-DO="0 word" used-AI="0 word" used-AO="0 word"> @@ -23,7 +23,7 @@ </Acquisition-Block> <Instance label="SilecsHeader" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/> </SILECS-Class> - <SILECS-Class name="AllTypes" version="0.1.0" address="44" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="MW22..MW1821/1800 words" used-DI="0 word" used-DO="0 word" used-AI="0 word" used-AO="0 word"> + <SILECS-Class name="AllTypes" version="0.1.0" address="44" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="MW22..MW2301/2280 words" used-DI="0 word" used-DO="0 word" used-AI="0 word" used-AO="0 word"> <Acquisition-Block name="MyROBlock" size="53" address="0" mem-size="120"> <Acquisition-Register name="RO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="2"> <scalar format="int8"/> @@ -78,57 +78,57 @@ </Acquisition-Register> </Acquisition-Block> <Setting-Block name="MyRWBlock" size="212" address="120" mem-size="480"> - <Volatile-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="8"> + <Setting-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="8"> <array2D dim1="2" dim2="2" format="int8"/> - </Volatile-Register> - <Volatile-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="8" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="8" mem-size="8"> <array2D dim1="2" dim2="2" format="uint8"/> - </Volatile-Register> - <Volatile-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="16" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="16" mem-size="8"> <array2D dim1="2" dim2="2" format="int16"/> - </Volatile-Register> - <Volatile-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="24" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="24" mem-size="8"> <array2D dim1="2" dim2="2" format="uint16"/> - </Volatile-Register> - <Volatile-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="32" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="32" mem-size="16"> <array2D dim1="2" dim2="2" format="int32"/> - </Volatile-Register> - <Volatile-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="48" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="48" mem-size="16"> <array2D dim1="2" dim2="2" format="uint32"/> - </Volatile-Register> - <Volatile-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="64" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="64" mem-size="16"> <array2D dim1="2" dim2="2" format="float32"/> - </Volatile-Register> - <Volatile-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="80" mem-size="256"> + </Setting-Register> + <Setting-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="80" mem-size="256"> <stringArray2D dim1="2" dim2="2" string-length="64" format="string"/> - </Volatile-Register> - <Volatile-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="336" mem-size="32"> + </Setting-Register> + <Setting-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="336" mem-size="32"> <array2D dim1="2" dim2="2" format="date"/> - </Volatile-Register> - <Volatile-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="368" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="368" mem-size="8"> <array2D dim1="2" dim2="2" format="char"/> - </Volatile-Register> - <Volatile-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="376" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="376" mem-size="8"> <array2D dim1="2" dim2="2" format="byte"/> - </Volatile-Register> - <Volatile-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="384" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="384" mem-size="8"> <array2D dim1="2" dim2="2" format="word"/> - </Volatile-Register> - <Volatile-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="392" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="392" mem-size="16"> <array2D dim1="2" dim2="2" format="dword"/> - </Volatile-Register> - <Volatile-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="408" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="408" mem-size="8"> <array2D dim1="2" dim2="2" format="int"/> - </Volatile-Register> - <Volatile-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="416" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="416" mem-size="16"> <array2D dim1="2" dim2="2" format="dint"/> - </Volatile-Register> - <Volatile-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="432" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="432" mem-size="16"> <array2D dim1="2" dim2="2" format="real"/> - </Volatile-Register> - <Volatile-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="448" mem-size="32"> + </Setting-Register> + <Setting-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="448" mem-size="32"> <array2D dim1="2" dim2="2" format="dt"/> - </Volatile-Register> + </Setting-Register> </Setting-Block> <Command-Block name="MyWOBlock" size="530" address="600" mem-size="1200"> <Setting-Register name="WO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="20"> @@ -183,8 +183,61 @@ <array dim="10" format="dt"/> </Setting-Register> </Command-Block> + <Configuration-Block name="MyCBlock" size="212" address="1800" mem-size="480"> + <Configuration-Register name="C_int8" generateFesaValueItem="true" size="1" address="0" mem-size="8"> + <array2D dim1="2" dim2="2" format="int8"/> + </Configuration-Register> + <Configuration-Register name="C_uint8" generateFesaValueItem="true" fesaFieldName="C_uint8_fesa" size="1" address="8" mem-size="8"> + <array2D dim1="2" dim2="2" format="uint8"/> + </Configuration-Register> + <Configuration-Register name="C_int16" generateFesaValueItem="true" fesaFieldName="C_int16_fesa" size="2" address="16" mem-size="8"> + <array2D dim1="2" dim2="2" format="int16"/> + </Configuration-Register> + <Configuration-Register name="C_uint16" generateFesaValueItem="true" fesaFieldName="C_uint16_fesa" size="2" address="24" mem-size="8"> + <array2D dim1="2" dim2="2" format="uint16"/> + </Configuration-Register> + <Configuration-Register name="C_int32" generateFesaValueItem="true" fesaFieldName="C_int32_fesa" size="4" address="32" mem-size="16"> + <array2D dim1="2" dim2="2" format="int32"/> + </Configuration-Register> + <Configuration-Register name="C_uint32" generateFesaValueItem="true" fesaFieldName="C_uint32_fesa" size="4" address="48" mem-size="16"> + <array2D dim1="2" dim2="2" format="uint32"/> + </Configuration-Register> + <Configuration-Register name="C_float32" generateFesaValueItem="true" fesaFieldName="C_float32_fesa" size="4" address="64" mem-size="16"> + <array2D dim1="2" dim2="2" format="float32"/> + </Configuration-Register> + <Configuration-Register name="C_string" generateFesaValueItem="true" fesaFieldName="C_string_fesa" size="1" address="80" mem-size="256"> + <stringArray2D dim1="2" dim2="2" string-length="64" format="string"/> + </Configuration-Register> + <Configuration-Register name="C_date" generateFesaValueItem="true" fesaFieldName="C_date_fesa" size="8" address="336" mem-size="32"> + <array2D dim1="2" dim2="2" format="date"/> + </Configuration-Register> + <Configuration-Register name="C_char" generateFesaValueItem="true" fesaFieldName="C_char_fesa" size="1" address="368" mem-size="8"> + <array2D dim1="2" dim2="2" format="char"/> + </Configuration-Register> + <Configuration-Register name="C_byte" generateFesaValueItem="true" fesaFieldName="C_byte_fesa" size="1" address="376" mem-size="8"> + <array2D dim1="2" dim2="2" format="byte"/> + </Configuration-Register> + <Configuration-Register name="C_word" generateFesaValueItem="true" fesaFieldName="C_word_fesa" size="2" address="384" mem-size="8"> + <array2D dim1="2" dim2="2" format="word"/> + </Configuration-Register> + <Configuration-Register name="C_dword" generateFesaValueItem="true" fesaFieldName="C_dword_fesa" size="4" address="392" mem-size="16"> + <array2D dim1="2" dim2="2" format="dword"/> + </Configuration-Register> + <Configuration-Register name="C_int" generateFesaValueItem="true" fesaFieldName="C_int_fesa" size="2" address="408" mem-size="8"> + <array2D dim1="2" dim2="2" format="int"/> + </Configuration-Register> + <Configuration-Register name="C_dint" generateFesaValueItem="true" fesaFieldName="C_dint_fesa" size="4" address="416" mem-size="16"> + <array2D dim1="2" dim2="2" format="dint"/> + </Configuration-Register> + <Configuration-Register name="C_real" generateFesaValueItem="true" fesaFieldName="C_real_fesa" size="4" address="432" mem-size="16"> + <array2D dim1="2" dim2="2" format="real"/> + </Configuration-Register> + <Configuration-Register name="C_dt" generateFesaValueItem="true" fesaFieldName="C_dt_fesa" size="8" address="448" mem-size="32"> + <array2D dim1="2" dim2="2" format="dt"/> + </Configuration-Register> + </Configuration-Block> <Instance label="testDevice1" address="44" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/> - <Instance label="testDevice2" address="1844" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/> + <Instance label="testDevice2" address="2324" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/> </SILECS-Class> </SILECS-Mapping> </SILECS-Param> 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 9f487f777f7fcddc30fa5a63c5975872ecec5f23..f367184de1de98ed33a6cab28085841a98b46e63 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-07-27 16:14:06.534996"/> - <Deployment checksum="308863231"/> + <Generation date="2018-01-31 10:48:12.045673"/> + <Deployment checksum="582399177"/> </Mapping-Info> <SILECS-Mapping plc-name="Schneider_M340" plc-brand="SCHNEIDER" plc-system="UNITY Pro" plc-model="M340" protocol="BLOCK_MODE" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" domain="" used-mem="TODO"> <SILECS-Class name="SilecsHeader" version="1.0.0" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="MW0..MW21/22 words" used-DI="0 word" used-DO="0 word" used-AI="0 word" used-AO="0 word"> @@ -23,7 +23,7 @@ </Acquisition-Block> <Instance label="SilecsHeader" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/> </SILECS-Class> - <SILECS-Class name="AllTypes" version="0.1.0" address="44" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="MW22..MW1801/1780 words" used-DI="0 word" used-DO="0 word" used-AI="0 word" used-AO="0 word"> + <SILECS-Class name="AllTypes" version="0.1.0" address="44" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="MW22..MW2273/2252 words" used-DI="0 word" used-DO="0 word" used-AI="0 word" used-AO="0 word"> <Acquisition-Block name="MyROBlock" size="53" address="44" mem-size="124"> <Acquisition-Register name="RO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="2"> <scalar format="int8"/> @@ -78,57 +78,57 @@ </Acquisition-Register> </Acquisition-Block> <Setting-Block name="MyRWBlock" size="212" address="292" mem-size="472"> - <Volatile-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="8"> + <Setting-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="8"> <array2D dim1="2" dim2="2" format="int8"/> - </Volatile-Register> - <Volatile-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="8" mem-size="4"> + </Setting-Register> + <Setting-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="8" mem-size="4"> <array2D dim1="2" dim2="2" format="uint8"/> - </Volatile-Register> - <Volatile-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="12" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="12" mem-size="8"> <array2D dim1="2" dim2="2" format="int16"/> - </Volatile-Register> - <Volatile-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="20" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="20" mem-size="8"> <array2D dim1="2" dim2="2" format="uint16"/> - </Volatile-Register> - <Volatile-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="28" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="28" mem-size="16"> <array2D dim1="2" dim2="2" format="int32"/> - </Volatile-Register> - <Volatile-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="44" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="44" mem-size="16"> <array2D dim1="2" dim2="2" format="uint32"/> - </Volatile-Register> - <Volatile-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="60" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="60" mem-size="16"> <array2D dim1="2" dim2="2" format="float32"/> - </Volatile-Register> - <Volatile-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="76" mem-size="256"> + </Setting-Register> + <Setting-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="76" mem-size="256"> <stringArray2D dim1="2" dim2="2" string-length="64" format="string"/> - </Volatile-Register> - <Volatile-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="332" mem-size="32"> + </Setting-Register> + <Setting-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="332" mem-size="32"> <array2D dim1="2" dim2="2" format="date"/> - </Volatile-Register> - <Volatile-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="364" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="364" mem-size="8"> <array2D dim1="2" dim2="2" format="char"/> - </Volatile-Register> - <Volatile-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="372" mem-size="4"> + </Setting-Register> + <Setting-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="372" mem-size="4"> <array2D dim1="2" dim2="2" format="byte"/> - </Volatile-Register> - <Volatile-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="376" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="376" mem-size="8"> <array2D dim1="2" dim2="2" format="word"/> - </Volatile-Register> - <Volatile-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="384" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="384" mem-size="16"> <array2D dim1="2" dim2="2" format="dword"/> - </Volatile-Register> - <Volatile-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="400" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="400" mem-size="8"> <array2D dim1="2" dim2="2" format="int"/> - </Volatile-Register> - <Volatile-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="408" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="408" mem-size="16"> <array2D dim1="2" dim2="2" format="dint"/> - </Volatile-Register> - <Volatile-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="424" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="424" mem-size="16"> <array2D dim1="2" dim2="2" format="real"/> - </Volatile-Register> - <Volatile-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="440" mem-size="32"> + </Setting-Register> + <Setting-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="440" mem-size="32"> <array2D dim1="2" dim2="2" format="dt"/> - </Volatile-Register> + </Setting-Register> </Setting-Block> <Command-Block name="MyWOBlock" size="530" address="1236" mem-size="1184"> <Setting-Register name="WO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="20"> @@ -183,6 +183,59 @@ <array dim="10" format="dt"/> </Setting-Register> </Command-Block> + <Configuration-Block name="MyCBlock" size="212" address="3604" mem-size="472"> + <Configuration-Register name="C_int8" generateFesaValueItem="true" size="1" address="0" mem-size="8"> + <array2D dim1="2" dim2="2" format="int8"/> + </Configuration-Register> + <Configuration-Register name="C_uint8" generateFesaValueItem="true" fesaFieldName="C_uint8_fesa" size="1" address="8" mem-size="4"> + <array2D dim1="2" dim2="2" format="uint8"/> + </Configuration-Register> + <Configuration-Register name="C_int16" generateFesaValueItem="true" fesaFieldName="C_int16_fesa" size="2" address="12" mem-size="8"> + <array2D dim1="2" dim2="2" format="int16"/> + </Configuration-Register> + <Configuration-Register name="C_uint16" generateFesaValueItem="true" fesaFieldName="C_uint16_fesa" size="2" address="20" mem-size="8"> + <array2D dim1="2" dim2="2" format="uint16"/> + </Configuration-Register> + <Configuration-Register name="C_int32" generateFesaValueItem="true" fesaFieldName="C_int32_fesa" size="4" address="28" mem-size="16"> + <array2D dim1="2" dim2="2" format="int32"/> + </Configuration-Register> + <Configuration-Register name="C_uint32" generateFesaValueItem="true" fesaFieldName="C_uint32_fesa" size="4" address="44" mem-size="16"> + <array2D dim1="2" dim2="2" format="uint32"/> + </Configuration-Register> + <Configuration-Register name="C_float32" generateFesaValueItem="true" fesaFieldName="C_float32_fesa" size="4" address="60" mem-size="16"> + <array2D dim1="2" dim2="2" format="float32"/> + </Configuration-Register> + <Configuration-Register name="C_string" generateFesaValueItem="true" fesaFieldName="C_string_fesa" size="1" address="76" mem-size="256"> + <stringArray2D dim1="2" dim2="2" string-length="64" format="string"/> + </Configuration-Register> + <Configuration-Register name="C_date" generateFesaValueItem="true" fesaFieldName="C_date_fesa" size="8" address="332" mem-size="32"> + <array2D dim1="2" dim2="2" format="date"/> + </Configuration-Register> + <Configuration-Register name="C_char" generateFesaValueItem="true" fesaFieldName="C_char_fesa" size="1" address="364" mem-size="8"> + <array2D dim1="2" dim2="2" format="char"/> + </Configuration-Register> + <Configuration-Register name="C_byte" generateFesaValueItem="true" fesaFieldName="C_byte_fesa" size="1" address="372" mem-size="4"> + <array2D dim1="2" dim2="2" format="byte"/> + </Configuration-Register> + <Configuration-Register name="C_word" generateFesaValueItem="true" fesaFieldName="C_word_fesa" size="2" address="376" mem-size="8"> + <array2D dim1="2" dim2="2" format="word"/> + </Configuration-Register> + <Configuration-Register name="C_dword" generateFesaValueItem="true" fesaFieldName="C_dword_fesa" size="4" address="384" mem-size="16"> + <array2D dim1="2" dim2="2" format="dword"/> + </Configuration-Register> + <Configuration-Register name="C_int" generateFesaValueItem="true" fesaFieldName="C_int_fesa" size="2" address="400" mem-size="8"> + <array2D dim1="2" dim2="2" format="int"/> + </Configuration-Register> + <Configuration-Register name="C_dint" generateFesaValueItem="true" fesaFieldName="C_dint_fesa" size="4" address="408" mem-size="16"> + <array2D dim1="2" dim2="2" format="dint"/> + </Configuration-Register> + <Configuration-Register name="C_real" generateFesaValueItem="true" fesaFieldName="C_real_fesa" size="4" address="424" mem-size="16"> + <array2D dim1="2" dim2="2" format="real"/> + </Configuration-Register> + <Configuration-Register name="C_dt" generateFesaValueItem="true" fesaFieldName="C_dt_fesa" size="8" address="440" mem-size="32"> + <array2D dim1="2" dim2="2" format="dt"/> + </Configuration-Register> + </Configuration-Block> <Instance label="testDevice1" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/> <Instance label="testDevice2" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/> </SILECS-Class> 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 a8fc93ad660871337aac9b155c074dc1b8272bf1..a86a8e78c1c22c55a86816ea9f2fd1300215e19b 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-07-27 16:14:06.499570"/> - <Deployment checksum="308863231"/> + <Generation date="2018-01-31 10:48:12.015393"/> + <Deployment checksum="582399177"/> </Mapping-Info> <SILECS-Mapping plc-name="Schneider_PremiumQuantum" plc-brand="SCHNEIDER" plc-system="UNITY Pro" plc-model="Premium" protocol="BLOCK_MODE" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" domain="" used-mem="TODO"> <SILECS-Class name="SilecsHeader" version="1.0.0" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="MW0..MW21/22 words" used-DI="0 word" used-DO="0 word" used-AI="0 word" used-AO="0 word"> @@ -23,7 +23,7 @@ </Acquisition-Block> <Instance label="SilecsHeader" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/> </SILECS-Class> - <SILECS-Class name="AllTypes" version="0.1.0" address="44" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="MW22..MW1793/1772 words" used-DI="0 word" used-DO="0 word" used-AI="0 word" used-AO="0 word"> + <SILECS-Class name="AllTypes" version="0.1.0" address="44" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="MW22..MW2265/2244 words" used-DI="0 word" used-DO="0 word" used-AI="0 word" used-AO="0 word"> <Acquisition-Block name="MyROBlock" size="53" address="44" mem-size="120"> <Acquisition-Register name="RO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="2"> <scalar format="int8"/> @@ -78,57 +78,57 @@ </Acquisition-Register> </Acquisition-Block> <Setting-Block name="MyRWBlock" size="212" address="284" mem-size="472"> - <Volatile-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="8"> + <Setting-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="8"> <array2D dim1="2" dim2="2" format="int8"/> - </Volatile-Register> - <Volatile-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="8" mem-size="4"> + </Setting-Register> + <Setting-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="8" mem-size="4"> <array2D dim1="2" dim2="2" format="uint8"/> - </Volatile-Register> - <Volatile-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="12" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="12" mem-size="8"> <array2D dim1="2" dim2="2" format="int16"/> - </Volatile-Register> - <Volatile-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="20" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="20" mem-size="8"> <array2D dim1="2" dim2="2" format="uint16"/> - </Volatile-Register> - <Volatile-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="28" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="28" mem-size="16"> <array2D dim1="2" dim2="2" format="int32"/> - </Volatile-Register> - <Volatile-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="44" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="44" mem-size="16"> <array2D dim1="2" dim2="2" format="uint32"/> - </Volatile-Register> - <Volatile-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="60" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="60" mem-size="16"> <array2D dim1="2" dim2="2" format="float32"/> - </Volatile-Register> - <Volatile-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="76" mem-size="256"> + </Setting-Register> + <Setting-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="76" mem-size="256"> <stringArray2D dim1="2" dim2="2" string-length="64" format="string"/> - </Volatile-Register> - <Volatile-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="332" mem-size="32"> + </Setting-Register> + <Setting-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="332" mem-size="32"> <array2D dim1="2" dim2="2" format="date"/> - </Volatile-Register> - <Volatile-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="364" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="364" mem-size="8"> <array2D dim1="2" dim2="2" format="char"/> - </Volatile-Register> - <Volatile-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="372" mem-size="4"> + </Setting-Register> + <Setting-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="372" mem-size="4"> <array2D dim1="2" dim2="2" format="byte"/> - </Volatile-Register> - <Volatile-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="376" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="376" mem-size="8"> <array2D dim1="2" dim2="2" format="word"/> - </Volatile-Register> - <Volatile-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="384" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="384" mem-size="16"> <array2D dim1="2" dim2="2" format="dword"/> - </Volatile-Register> - <Volatile-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="400" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="400" mem-size="8"> <array2D dim1="2" dim2="2" format="int"/> - </Volatile-Register> - <Volatile-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="408" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="408" mem-size="16"> <array2D dim1="2" dim2="2" format="dint"/> - </Volatile-Register> - <Volatile-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="424" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="424" mem-size="16"> <array2D dim1="2" dim2="2" format="real"/> - </Volatile-Register> - <Volatile-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="440" mem-size="32"> + </Setting-Register> + <Setting-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="440" mem-size="32"> <array2D dim1="2" dim2="2" format="dt"/> - </Volatile-Register> + </Setting-Register> </Setting-Block> <Command-Block name="MyWOBlock" size="530" address="1228" mem-size="1180"> <Setting-Register name="WO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="20"> @@ -183,6 +183,59 @@ <array dim="10" format="dt"/> </Setting-Register> </Command-Block> + <Configuration-Block name="MyCBlock" size="212" address="3588" mem-size="472"> + <Configuration-Register name="C_int8" generateFesaValueItem="true" size="1" address="0" mem-size="8"> + <array2D dim1="2" dim2="2" format="int8"/> + </Configuration-Register> + <Configuration-Register name="C_uint8" generateFesaValueItem="true" fesaFieldName="C_uint8_fesa" size="1" address="8" mem-size="4"> + <array2D dim1="2" dim2="2" format="uint8"/> + </Configuration-Register> + <Configuration-Register name="C_int16" generateFesaValueItem="true" fesaFieldName="C_int16_fesa" size="2" address="12" mem-size="8"> + <array2D dim1="2" dim2="2" format="int16"/> + </Configuration-Register> + <Configuration-Register name="C_uint16" generateFesaValueItem="true" fesaFieldName="C_uint16_fesa" size="2" address="20" mem-size="8"> + <array2D dim1="2" dim2="2" format="uint16"/> + </Configuration-Register> + <Configuration-Register name="C_int32" generateFesaValueItem="true" fesaFieldName="C_int32_fesa" size="4" address="28" mem-size="16"> + <array2D dim1="2" dim2="2" format="int32"/> + </Configuration-Register> + <Configuration-Register name="C_uint32" generateFesaValueItem="true" fesaFieldName="C_uint32_fesa" size="4" address="44" mem-size="16"> + <array2D dim1="2" dim2="2" format="uint32"/> + </Configuration-Register> + <Configuration-Register name="C_float32" generateFesaValueItem="true" fesaFieldName="C_float32_fesa" size="4" address="60" mem-size="16"> + <array2D dim1="2" dim2="2" format="float32"/> + </Configuration-Register> + <Configuration-Register name="C_string" generateFesaValueItem="true" fesaFieldName="C_string_fesa" size="1" address="76" mem-size="256"> + <stringArray2D dim1="2" dim2="2" string-length="64" format="string"/> + </Configuration-Register> + <Configuration-Register name="C_date" generateFesaValueItem="true" fesaFieldName="C_date_fesa" size="8" address="332" mem-size="32"> + <array2D dim1="2" dim2="2" format="date"/> + </Configuration-Register> + <Configuration-Register name="C_char" generateFesaValueItem="true" fesaFieldName="C_char_fesa" size="1" address="364" mem-size="8"> + <array2D dim1="2" dim2="2" format="char"/> + </Configuration-Register> + <Configuration-Register name="C_byte" generateFesaValueItem="true" fesaFieldName="C_byte_fesa" size="1" address="372" mem-size="4"> + <array2D dim1="2" dim2="2" format="byte"/> + </Configuration-Register> + <Configuration-Register name="C_word" generateFesaValueItem="true" fesaFieldName="C_word_fesa" size="2" address="376" mem-size="8"> + <array2D dim1="2" dim2="2" format="word"/> + </Configuration-Register> + <Configuration-Register name="C_dword" generateFesaValueItem="true" fesaFieldName="C_dword_fesa" size="4" address="384" mem-size="16"> + <array2D dim1="2" dim2="2" format="dword"/> + </Configuration-Register> + <Configuration-Register name="C_int" generateFesaValueItem="true" fesaFieldName="C_int_fesa" size="2" address="400" mem-size="8"> + <array2D dim1="2" dim2="2" format="int"/> + </Configuration-Register> + <Configuration-Register name="C_dint" generateFesaValueItem="true" fesaFieldName="C_dint_fesa" size="4" address="408" mem-size="16"> + <array2D dim1="2" dim2="2" format="dint"/> + </Configuration-Register> + <Configuration-Register name="C_real" generateFesaValueItem="true" fesaFieldName="C_real_fesa" size="4" address="424" mem-size="16"> + <array2D dim1="2" dim2="2" format="real"/> + </Configuration-Register> + <Configuration-Register name="C_dt" generateFesaValueItem="true" fesaFieldName="C_dt_fesa" size="8" address="440" mem-size="32"> + <array2D dim1="2" dim2="2" format="dt"/> + </Configuration-Register> + </Configuration-Block> <Instance label="testDevice1" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/> <Instance label="testDevice2" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/> </SILECS-Class> 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 9537336121eecb9417336884bf9d9625186156ad..1785329088b0837817b7134a213ed0b4d72cf676 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-07-27 16:14:06.268832"/> - <Deployment checksum="308863231"/> + <Generation date="2018-01-31 10:48:11.709988"/> + <Deployment checksum="582399177"/> </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" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" domain="" used-mem="TODO"> <SILECS-Class name="SilecsHeader" version="1.0.0" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="DB0..DB0/48 bytes" used-DI="0 byte" used-DO="0 byte" used-AI="0 byte" used-AO="0 byte"> @@ -23,7 +23,7 @@ </Acquisition-Block> <Instance label="SilecsHeader" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/> </SILECS-Class> - <SILECS-Class name="AllTypes" version="0.1.0" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="DB1..DB2/3540 bytes" used-DI="0 byte" used-DO="0 byte" used-AI="0 byte" used-AO="0 byte"> + <SILECS-Class name="AllTypes" version="0.1.0" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="DB1..DB2/4484 bytes" used-DI="0 byte" used-DO="0 byte" used-AI="0 byte" used-AO="0 byte"> <Acquisition-Block name="MyROBlock" size="53" address="0" mem-size="118"> <Acquisition-Register name="RO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="1"> <scalar format="int8"/> @@ -78,57 +78,57 @@ </Acquisition-Register> </Acquisition-Block> <Setting-Block name="MyRWBlock" size="212" address="118" mem-size="472"> - <Volatile-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="4"> + <Setting-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="4"> <array2D dim1="2" dim2="2" format="int8"/> - </Volatile-Register> - <Volatile-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="4" mem-size="4"> + </Setting-Register> + <Setting-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="4" mem-size="4"> <array2D dim1="2" dim2="2" format="uint8"/> - </Volatile-Register> - <Volatile-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="8" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="8" mem-size="8"> <array2D dim1="2" dim2="2" format="int16"/> - </Volatile-Register> - <Volatile-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="16" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="16" mem-size="8"> <array2D dim1="2" dim2="2" format="uint16"/> - </Volatile-Register> - <Volatile-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="24" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="24" mem-size="16"> <array2D dim1="2" dim2="2" format="int32"/> - </Volatile-Register> - <Volatile-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="40" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="40" mem-size="16"> <array2D dim1="2" dim2="2" format="uint32"/> - </Volatile-Register> - <Volatile-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="56" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="56" mem-size="16"> <array2D dim1="2" dim2="2" format="float32"/> - </Volatile-Register> - <Volatile-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="72" mem-size="264"> + </Setting-Register> + <Setting-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="72" mem-size="264"> <stringArray2D dim1="2" dim2="2" string-length="64" format="string"/> - </Volatile-Register> - <Volatile-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="336" mem-size="32"> + </Setting-Register> + <Setting-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="336" mem-size="32"> <array2D dim1="2" dim2="2" format="date"/> - </Volatile-Register> - <Volatile-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="368" mem-size="4"> + </Setting-Register> + <Setting-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="368" mem-size="4"> <array2D dim1="2" dim2="2" format="char"/> - </Volatile-Register> - <Volatile-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="372" mem-size="4"> + </Setting-Register> + <Setting-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="372" mem-size="4"> <array2D dim1="2" dim2="2" format="byte"/> - </Volatile-Register> - <Volatile-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="376" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="376" mem-size="8"> <array2D dim1="2" dim2="2" format="word"/> - </Volatile-Register> - <Volatile-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="384" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="384" mem-size="16"> <array2D dim1="2" dim2="2" format="dword"/> - </Volatile-Register> - <Volatile-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="400" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="400" mem-size="8"> <array2D dim1="2" dim2="2" format="int"/> - </Volatile-Register> - <Volatile-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="408" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="408" mem-size="16"> <array2D dim1="2" dim2="2" format="dint"/> - </Volatile-Register> - <Volatile-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="424" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="424" mem-size="16"> <array2D dim1="2" dim2="2" format="real"/> - </Volatile-Register> - <Volatile-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="440" mem-size="32"> + </Setting-Register> + <Setting-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="440" mem-size="32"> <array2D dim1="2" dim2="2" format="dt"/> - </Volatile-Register> + </Setting-Register> </Setting-Block> <Command-Block name="MyWOBlock" size="530" address="590" mem-size="1180"> <Setting-Register name="WO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="10"> @@ -183,6 +183,59 @@ <array dim="10" format="dt"/> </Setting-Register> </Command-Block> + <Configuration-Block name="MyCBlock" size="212" address="1770" mem-size="472"> + <Configuration-Register name="C_int8" generateFesaValueItem="true" size="1" address="0" mem-size="4"> + <array2D dim1="2" dim2="2" format="int8"/> + </Configuration-Register> + <Configuration-Register name="C_uint8" generateFesaValueItem="true" fesaFieldName="C_uint8_fesa" size="1" address="4" mem-size="4"> + <array2D dim1="2" dim2="2" format="uint8"/> + </Configuration-Register> + <Configuration-Register name="C_int16" generateFesaValueItem="true" fesaFieldName="C_int16_fesa" size="2" address="8" mem-size="8"> + <array2D dim1="2" dim2="2" format="int16"/> + </Configuration-Register> + <Configuration-Register name="C_uint16" generateFesaValueItem="true" fesaFieldName="C_uint16_fesa" size="2" address="16" mem-size="8"> + <array2D dim1="2" dim2="2" format="uint16"/> + </Configuration-Register> + <Configuration-Register name="C_int32" generateFesaValueItem="true" fesaFieldName="C_int32_fesa" size="4" address="24" mem-size="16"> + <array2D dim1="2" dim2="2" format="int32"/> + </Configuration-Register> + <Configuration-Register name="C_uint32" generateFesaValueItem="true" fesaFieldName="C_uint32_fesa" size="4" address="40" mem-size="16"> + <array2D dim1="2" dim2="2" format="uint32"/> + </Configuration-Register> + <Configuration-Register name="C_float32" generateFesaValueItem="true" fesaFieldName="C_float32_fesa" size="4" address="56" mem-size="16"> + <array2D dim1="2" dim2="2" format="float32"/> + </Configuration-Register> + <Configuration-Register name="C_string" generateFesaValueItem="true" fesaFieldName="C_string_fesa" size="1" address="72" mem-size="264"> + <stringArray2D dim1="2" dim2="2" string-length="64" format="string"/> + </Configuration-Register> + <Configuration-Register name="C_date" generateFesaValueItem="true" fesaFieldName="C_date_fesa" size="8" address="336" mem-size="32"> + <array2D dim1="2" dim2="2" format="date"/> + </Configuration-Register> + <Configuration-Register name="C_char" generateFesaValueItem="true" fesaFieldName="C_char_fesa" size="1" address="368" mem-size="4"> + <array2D dim1="2" dim2="2" format="char"/> + </Configuration-Register> + <Configuration-Register name="C_byte" generateFesaValueItem="true" fesaFieldName="C_byte_fesa" size="1" address="372" mem-size="4"> + <array2D dim1="2" dim2="2" format="byte"/> + </Configuration-Register> + <Configuration-Register name="C_word" generateFesaValueItem="true" fesaFieldName="C_word_fesa" size="2" address="376" mem-size="8"> + <array2D dim1="2" dim2="2" format="word"/> + </Configuration-Register> + <Configuration-Register name="C_dword" generateFesaValueItem="true" fesaFieldName="C_dword_fesa" size="4" address="384" mem-size="16"> + <array2D dim1="2" dim2="2" format="dword"/> + </Configuration-Register> + <Configuration-Register name="C_int" generateFesaValueItem="true" fesaFieldName="C_int_fesa" size="2" address="400" mem-size="8"> + <array2D dim1="2" dim2="2" format="int"/> + </Configuration-Register> + <Configuration-Register name="C_dint" generateFesaValueItem="true" fesaFieldName="C_dint_fesa" size="4" address="408" mem-size="16"> + <array2D dim1="2" dim2="2" format="dint"/> + </Configuration-Register> + <Configuration-Register name="C_real" generateFesaValueItem="true" fesaFieldName="C_real_fesa" size="4" address="424" mem-size="16"> + <array2D dim1="2" dim2="2" format="real"/> + </Configuration-Register> + <Configuration-Register name="C_dt" generateFesaValueItem="true" fesaFieldName="C_dt_fesa" size="8" address="440" mem-size="32"> + <array2D dim1="2" dim2="2" format="dt"/> + </Configuration-Register> + </Configuration-Block> <Instance label="testDevice1" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/> <Instance label="testDevice2" address="2" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/> </SILECS-Class> 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 9202eb91813b47c501ab822144d6703e0093cd93..0dcb2f4f302c3f654c821c3c59521b4b96cd32c8 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-07-27 16:14:06.306171"/> - <Deployment checksum="308863231"/> + <Generation date="2018-01-31 10:48:11.759024"/> + <Deployment checksum="582399177"/> </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" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" domain="" used-mem="TODO"> <SILECS-Class name="SilecsHeader" version="1.0.0" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="DB0..DB0/48 bytes" used-DI="0 byte" used-DO="0 byte" used-AI="0 byte" used-AO="0 byte"> @@ -23,7 +23,7 @@ </Acquisition-Block> <Instance label="SilecsHeader" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/> </SILECS-Class> - <SILECS-Class name="AllTypes" version="0.1.0" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="DB1..DB3/3540 bytes" used-DI="0 byte" used-DO="0 byte" used-AI="0 byte" used-AO="0 byte"> + <SILECS-Class name="AllTypes" version="0.1.0" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="DB1..DB4/4484 bytes" used-DI="0 byte" used-DO="0 byte" used-AI="0 byte" used-AO="0 byte"> <Acquisition-Block name="MyROBlock" size="53" address="1" mem-size="118"> <Acquisition-Register name="RO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="1"> <scalar format="int8"/> @@ -78,57 +78,57 @@ </Acquisition-Register> </Acquisition-Block> <Setting-Block name="MyRWBlock" size="212" address="2" mem-size="472"> - <Volatile-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="4"> + <Setting-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="4"> <array2D dim1="2" dim2="2" format="int8"/> - </Volatile-Register> - <Volatile-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="4" mem-size="4"> + </Setting-Register> + <Setting-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="4" mem-size="4"> <array2D dim1="2" dim2="2" format="uint8"/> - </Volatile-Register> - <Volatile-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="8" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="8" mem-size="8"> <array2D dim1="2" dim2="2" format="int16"/> - </Volatile-Register> - <Volatile-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="16" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="16" mem-size="8"> <array2D dim1="2" dim2="2" format="uint16"/> - </Volatile-Register> - <Volatile-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="24" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="24" mem-size="16"> <array2D dim1="2" dim2="2" format="int32"/> - </Volatile-Register> - <Volatile-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="40" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="40" mem-size="16"> <array2D dim1="2" dim2="2" format="uint32"/> - </Volatile-Register> - <Volatile-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="56" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="56" mem-size="16"> <array2D dim1="2" dim2="2" format="float32"/> - </Volatile-Register> - <Volatile-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="72" mem-size="264"> + </Setting-Register> + <Setting-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="72" mem-size="264"> <stringArray2D dim1="2" dim2="2" string-length="64" format="string"/> - </Volatile-Register> - <Volatile-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="336" mem-size="32"> + </Setting-Register> + <Setting-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="336" mem-size="32"> <array2D dim1="2" dim2="2" format="date"/> - </Volatile-Register> - <Volatile-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="368" mem-size="4"> + </Setting-Register> + <Setting-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="368" mem-size="4"> <array2D dim1="2" dim2="2" format="char"/> - </Volatile-Register> - <Volatile-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="372" mem-size="4"> + </Setting-Register> + <Setting-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="372" mem-size="4"> <array2D dim1="2" dim2="2" format="byte"/> - </Volatile-Register> - <Volatile-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="376" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="376" mem-size="8"> <array2D dim1="2" dim2="2" format="word"/> - </Volatile-Register> - <Volatile-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="384" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="384" mem-size="16"> <array2D dim1="2" dim2="2" format="dword"/> - </Volatile-Register> - <Volatile-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="400" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="400" mem-size="8"> <array2D dim1="2" dim2="2" format="int"/> - </Volatile-Register> - <Volatile-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="408" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="408" mem-size="16"> <array2D dim1="2" dim2="2" format="dint"/> - </Volatile-Register> - <Volatile-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="424" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="424" mem-size="16"> <array2D dim1="2" dim2="2" format="real"/> - </Volatile-Register> - <Volatile-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="440" mem-size="32"> + </Setting-Register> + <Setting-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="440" mem-size="32"> <array2D dim1="2" dim2="2" format="dt"/> - </Volatile-Register> + </Setting-Register> </Setting-Block> <Command-Block name="MyWOBlock" size="530" address="3" mem-size="1180"> <Setting-Register name="WO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="10"> @@ -183,6 +183,59 @@ <array dim="10" format="dt"/> </Setting-Register> </Command-Block> + <Configuration-Block name="MyCBlock" size="212" address="4" mem-size="472"> + <Configuration-Register name="C_int8" generateFesaValueItem="true" size="1" address="0" mem-size="4"> + <array2D dim1="2" dim2="2" format="int8"/> + </Configuration-Register> + <Configuration-Register name="C_uint8" generateFesaValueItem="true" fesaFieldName="C_uint8_fesa" size="1" address="4" mem-size="4"> + <array2D dim1="2" dim2="2" format="uint8"/> + </Configuration-Register> + <Configuration-Register name="C_int16" generateFesaValueItem="true" fesaFieldName="C_int16_fesa" size="2" address="8" mem-size="8"> + <array2D dim1="2" dim2="2" format="int16"/> + </Configuration-Register> + <Configuration-Register name="C_uint16" generateFesaValueItem="true" fesaFieldName="C_uint16_fesa" size="2" address="16" mem-size="8"> + <array2D dim1="2" dim2="2" format="uint16"/> + </Configuration-Register> + <Configuration-Register name="C_int32" generateFesaValueItem="true" fesaFieldName="C_int32_fesa" size="4" address="24" mem-size="16"> + <array2D dim1="2" dim2="2" format="int32"/> + </Configuration-Register> + <Configuration-Register name="C_uint32" generateFesaValueItem="true" fesaFieldName="C_uint32_fesa" size="4" address="40" mem-size="16"> + <array2D dim1="2" dim2="2" format="uint32"/> + </Configuration-Register> + <Configuration-Register name="C_float32" generateFesaValueItem="true" fesaFieldName="C_float32_fesa" size="4" address="56" mem-size="16"> + <array2D dim1="2" dim2="2" format="float32"/> + </Configuration-Register> + <Configuration-Register name="C_string" generateFesaValueItem="true" fesaFieldName="C_string_fesa" size="1" address="72" mem-size="264"> + <stringArray2D dim1="2" dim2="2" string-length="64" format="string"/> + </Configuration-Register> + <Configuration-Register name="C_date" generateFesaValueItem="true" fesaFieldName="C_date_fesa" size="8" address="336" mem-size="32"> + <array2D dim1="2" dim2="2" format="date"/> + </Configuration-Register> + <Configuration-Register name="C_char" generateFesaValueItem="true" fesaFieldName="C_char_fesa" size="1" address="368" mem-size="4"> + <array2D dim1="2" dim2="2" format="char"/> + </Configuration-Register> + <Configuration-Register name="C_byte" generateFesaValueItem="true" fesaFieldName="C_byte_fesa" size="1" address="372" mem-size="4"> + <array2D dim1="2" dim2="2" format="byte"/> + </Configuration-Register> + <Configuration-Register name="C_word" generateFesaValueItem="true" fesaFieldName="C_word_fesa" size="2" address="376" mem-size="8"> + <array2D dim1="2" dim2="2" format="word"/> + </Configuration-Register> + <Configuration-Register name="C_dword" generateFesaValueItem="true" fesaFieldName="C_dword_fesa" size="4" address="384" mem-size="16"> + <array2D dim1="2" dim2="2" format="dword"/> + </Configuration-Register> + <Configuration-Register name="C_int" generateFesaValueItem="true" fesaFieldName="C_int_fesa" size="2" address="400" mem-size="8"> + <array2D dim1="2" dim2="2" format="int"/> + </Configuration-Register> + <Configuration-Register name="C_dint" generateFesaValueItem="true" fesaFieldName="C_dint_fesa" size="4" address="408" mem-size="16"> + <array2D dim1="2" dim2="2" format="dint"/> + </Configuration-Register> + <Configuration-Register name="C_real" generateFesaValueItem="true" fesaFieldName="C_real_fesa" size="4" address="424" mem-size="16"> + <array2D dim1="2" dim2="2" format="real"/> + </Configuration-Register> + <Configuration-Register name="C_dt" generateFesaValueItem="true" fesaFieldName="C_dt_fesa" size="8" address="440" mem-size="32"> + <array2D dim1="2" dim2="2" format="dt"/> + </Configuration-Register> + </Configuration-Block> <Instance label="testDevice1" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/> <Instance label="testDevice2" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/> </SILECS-Class> 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 b861f907cae5a433a52e63377a61a5eeb3504906..9520df2fdd83e3b4f229b688bbefbdfcb21347b9 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-07-27 16:14:06.229930"/> - <Deployment checksum="308863231"/> + <Generation date="2018-01-31 10:48:11.677527"/> + <Deployment checksum="582399177"/> </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" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" domain="" used-mem="TODO"> <SILECS-Class name="SilecsHeader" version="1.0.0" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="DB0..DB0/48 bytes" used-DI="0 byte" used-DO="0 byte" used-AI="0 byte" used-AO="0 byte"> @@ -23,7 +23,7 @@ </Acquisition-Block> <Instance label="SilecsHeader" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/> </SILECS-Class> - <SILECS-Class name="AllTypes" version="0.1.0" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="DB1..DB3/3540 bytes" used-DI="0 byte" used-DO="0 byte" used-AI="0 byte" used-AO="0 byte"> + <SILECS-Class name="AllTypes" version="0.1.0" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="DB1..DB4/4484 bytes" used-DI="0 byte" used-DO="0 byte" used-AI="0 byte" used-AO="0 byte"> <Acquisition-Block name="MyROBlock" size="53" address="1" mem-size="118"> <Acquisition-Register name="RO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="1"> <scalar format="int8"/> @@ -78,57 +78,57 @@ </Acquisition-Register> </Acquisition-Block> <Setting-Block name="MyRWBlock" size="212" address="2" mem-size="472"> - <Volatile-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="4"> + <Setting-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="4"> <array2D dim1="2" dim2="2" format="int8"/> - </Volatile-Register> - <Volatile-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="4" mem-size="4"> + </Setting-Register> + <Setting-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="4" mem-size="4"> <array2D dim1="2" dim2="2" format="uint8"/> - </Volatile-Register> - <Volatile-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="8" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="8" mem-size="8"> <array2D dim1="2" dim2="2" format="int16"/> - </Volatile-Register> - <Volatile-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="16" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="16" mem-size="8"> <array2D dim1="2" dim2="2" format="uint16"/> - </Volatile-Register> - <Volatile-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="24" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="24" mem-size="16"> <array2D dim1="2" dim2="2" format="int32"/> - </Volatile-Register> - <Volatile-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="40" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="40" mem-size="16"> <array2D dim1="2" dim2="2" format="uint32"/> - </Volatile-Register> - <Volatile-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="56" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="56" mem-size="16"> <array2D dim1="2" dim2="2" format="float32"/> - </Volatile-Register> - <Volatile-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="72" mem-size="264"> + </Setting-Register> + <Setting-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="72" mem-size="264"> <stringArray2D dim1="2" dim2="2" string-length="64" format="string"/> - </Volatile-Register> - <Volatile-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="336" mem-size="32"> + </Setting-Register> + <Setting-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="336" mem-size="32"> <array2D dim1="2" dim2="2" format="date"/> - </Volatile-Register> - <Volatile-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="368" mem-size="4"> + </Setting-Register> + <Setting-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="368" mem-size="4"> <array2D dim1="2" dim2="2" format="char"/> - </Volatile-Register> - <Volatile-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="372" mem-size="4"> + </Setting-Register> + <Setting-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="372" mem-size="4"> <array2D dim1="2" dim2="2" format="byte"/> - </Volatile-Register> - <Volatile-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="376" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="376" mem-size="8"> <array2D dim1="2" dim2="2" format="word"/> - </Volatile-Register> - <Volatile-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="384" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="384" mem-size="16"> <array2D dim1="2" dim2="2" format="dword"/> - </Volatile-Register> - <Volatile-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="400" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="400" mem-size="8"> <array2D dim1="2" dim2="2" format="int"/> - </Volatile-Register> - <Volatile-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="408" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="408" mem-size="16"> <array2D dim1="2" dim2="2" format="dint"/> - </Volatile-Register> - <Volatile-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="424" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="424" mem-size="16"> <array2D dim1="2" dim2="2" format="real"/> - </Volatile-Register> - <Volatile-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="440" mem-size="32"> + </Setting-Register> + <Setting-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="440" mem-size="32"> <array2D dim1="2" dim2="2" format="dt"/> - </Volatile-Register> + </Setting-Register> </Setting-Block> <Command-Block name="MyWOBlock" size="530" address="3" mem-size="1180"> <Setting-Register name="WO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="10"> @@ -183,6 +183,59 @@ <array dim="10" format="dt"/> </Setting-Register> </Command-Block> + <Configuration-Block name="MyCBlock" size="212" address="4" mem-size="472"> + <Configuration-Register name="C_int8" generateFesaValueItem="true" size="1" address="0" mem-size="4"> + <array2D dim1="2" dim2="2" format="int8"/> + </Configuration-Register> + <Configuration-Register name="C_uint8" generateFesaValueItem="true" fesaFieldName="C_uint8_fesa" size="1" address="4" mem-size="4"> + <array2D dim1="2" dim2="2" format="uint8"/> + </Configuration-Register> + <Configuration-Register name="C_int16" generateFesaValueItem="true" fesaFieldName="C_int16_fesa" size="2" address="8" mem-size="8"> + <array2D dim1="2" dim2="2" format="int16"/> + </Configuration-Register> + <Configuration-Register name="C_uint16" generateFesaValueItem="true" fesaFieldName="C_uint16_fesa" size="2" address="16" mem-size="8"> + <array2D dim1="2" dim2="2" format="uint16"/> + </Configuration-Register> + <Configuration-Register name="C_int32" generateFesaValueItem="true" fesaFieldName="C_int32_fesa" size="4" address="24" mem-size="16"> + <array2D dim1="2" dim2="2" format="int32"/> + </Configuration-Register> + <Configuration-Register name="C_uint32" generateFesaValueItem="true" fesaFieldName="C_uint32_fesa" size="4" address="40" mem-size="16"> + <array2D dim1="2" dim2="2" format="uint32"/> + </Configuration-Register> + <Configuration-Register name="C_float32" generateFesaValueItem="true" fesaFieldName="C_float32_fesa" size="4" address="56" mem-size="16"> + <array2D dim1="2" dim2="2" format="float32"/> + </Configuration-Register> + <Configuration-Register name="C_string" generateFesaValueItem="true" fesaFieldName="C_string_fesa" size="1" address="72" mem-size="264"> + <stringArray2D dim1="2" dim2="2" string-length="64" format="string"/> + </Configuration-Register> + <Configuration-Register name="C_date" generateFesaValueItem="true" fesaFieldName="C_date_fesa" size="8" address="336" mem-size="32"> + <array2D dim1="2" dim2="2" format="date"/> + </Configuration-Register> + <Configuration-Register name="C_char" generateFesaValueItem="true" fesaFieldName="C_char_fesa" size="1" address="368" mem-size="4"> + <array2D dim1="2" dim2="2" format="char"/> + </Configuration-Register> + <Configuration-Register name="C_byte" generateFesaValueItem="true" fesaFieldName="C_byte_fesa" size="1" address="372" mem-size="4"> + <array2D dim1="2" dim2="2" format="byte"/> + </Configuration-Register> + <Configuration-Register name="C_word" generateFesaValueItem="true" fesaFieldName="C_word_fesa" size="2" address="376" mem-size="8"> + <array2D dim1="2" dim2="2" format="word"/> + </Configuration-Register> + <Configuration-Register name="C_dword" generateFesaValueItem="true" fesaFieldName="C_dword_fesa" size="4" address="384" mem-size="16"> + <array2D dim1="2" dim2="2" format="dword"/> + </Configuration-Register> + <Configuration-Register name="C_int" generateFesaValueItem="true" fesaFieldName="C_int_fesa" size="2" address="400" mem-size="8"> + <array2D dim1="2" dim2="2" format="int"/> + </Configuration-Register> + <Configuration-Register name="C_dint" generateFesaValueItem="true" fesaFieldName="C_dint_fesa" size="4" address="408" mem-size="16"> + <array2D dim1="2" dim2="2" format="dint"/> + </Configuration-Register> + <Configuration-Register name="C_real" generateFesaValueItem="true" fesaFieldName="C_real_fesa" size="4" address="424" mem-size="16"> + <array2D dim1="2" dim2="2" format="real"/> + </Configuration-Register> + <Configuration-Register name="C_dt" generateFesaValueItem="true" fesaFieldName="C_dt_fesa" size="8" address="440" mem-size="32"> + <array2D dim1="2" dim2="2" format="dt"/> + </Configuration-Register> + </Configuration-Block> <Instance label="testDevice1" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/> <Instance label="testDevice2" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/> </SILECS-Class> 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 61c75903977e855dc18dda006c3e1f2677b70bc3..6dadcb0b895968ba79966827aff88fd8799e3520 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-07-27 16:14:06.192160"/> - <Deployment checksum="308863231"/> + <Generation date="2018-01-31 10:48:11.639987"/> + <Deployment checksum="582399177"/> </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" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" domain="" used-mem="TODO"> <SILECS-Class name="SilecsHeader" version="1.0.0" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="DB0..DB0/48 bytes" used-DI="0 byte" used-DO="0 byte" used-AI="0 byte" used-AO="0 byte"> @@ -23,7 +23,7 @@ </Acquisition-Block> <Instance label="SilecsHeader" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/> </SILECS-Class> - <SILECS-Class name="AllTypes" version="0.1.0" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="DB1..DB2/3540 bytes" used-DI="0 byte" used-DO="0 byte" used-AI="0 byte" used-AO="0 byte"> + <SILECS-Class name="AllTypes" version="0.1.0" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="DB1..DB2/4484 bytes" used-DI="0 byte" used-DO="0 byte" used-AI="0 byte" used-AO="0 byte"> <Acquisition-Block name="MyROBlock" size="53" address="0" mem-size="118"> <Acquisition-Register name="RO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="1"> <scalar format="int8"/> @@ -78,57 +78,57 @@ </Acquisition-Register> </Acquisition-Block> <Setting-Block name="MyRWBlock" size="212" address="118" mem-size="472"> - <Volatile-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="4"> + <Setting-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="4"> <array2D dim1="2" dim2="2" format="int8"/> - </Volatile-Register> - <Volatile-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="4" mem-size="4"> + </Setting-Register> + <Setting-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="4" mem-size="4"> <array2D dim1="2" dim2="2" format="uint8"/> - </Volatile-Register> - <Volatile-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="8" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="8" mem-size="8"> <array2D dim1="2" dim2="2" format="int16"/> - </Volatile-Register> - <Volatile-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="16" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="16" mem-size="8"> <array2D dim1="2" dim2="2" format="uint16"/> - </Volatile-Register> - <Volatile-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="24" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="24" mem-size="16"> <array2D dim1="2" dim2="2" format="int32"/> - </Volatile-Register> - <Volatile-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="40" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="40" mem-size="16"> <array2D dim1="2" dim2="2" format="uint32"/> - </Volatile-Register> - <Volatile-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="56" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="56" mem-size="16"> <array2D dim1="2" dim2="2" format="float32"/> - </Volatile-Register> - <Volatile-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="72" mem-size="264"> + </Setting-Register> + <Setting-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="72" mem-size="264"> <stringArray2D dim1="2" dim2="2" string-length="64" format="string"/> - </Volatile-Register> - <Volatile-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="336" mem-size="32"> + </Setting-Register> + <Setting-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="336" mem-size="32"> <array2D dim1="2" dim2="2" format="date"/> - </Volatile-Register> - <Volatile-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="368" mem-size="4"> + </Setting-Register> + <Setting-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="368" mem-size="4"> <array2D dim1="2" dim2="2" format="char"/> - </Volatile-Register> - <Volatile-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="372" mem-size="4"> + </Setting-Register> + <Setting-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="372" mem-size="4"> <array2D dim1="2" dim2="2" format="byte"/> - </Volatile-Register> - <Volatile-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="376" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="376" mem-size="8"> <array2D dim1="2" dim2="2" format="word"/> - </Volatile-Register> - <Volatile-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="384" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="384" mem-size="16"> <array2D dim1="2" dim2="2" format="dword"/> - </Volatile-Register> - <Volatile-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="400" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="400" mem-size="8"> <array2D dim1="2" dim2="2" format="int"/> - </Volatile-Register> - <Volatile-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="408" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="408" mem-size="16"> <array2D dim1="2" dim2="2" format="dint"/> - </Volatile-Register> - <Volatile-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="424" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="424" mem-size="16"> <array2D dim1="2" dim2="2" format="real"/> - </Volatile-Register> - <Volatile-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="440" mem-size="32"> + </Setting-Register> + <Setting-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="440" mem-size="32"> <array2D dim1="2" dim2="2" format="dt"/> - </Volatile-Register> + </Setting-Register> </Setting-Block> <Command-Block name="MyWOBlock" size="530" address="590" mem-size="1180"> <Setting-Register name="WO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="10"> @@ -183,6 +183,59 @@ <array dim="10" format="dt"/> </Setting-Register> </Command-Block> + <Configuration-Block name="MyCBlock" size="212" address="1770" mem-size="472"> + <Configuration-Register name="C_int8" generateFesaValueItem="true" size="1" address="0" mem-size="4"> + <array2D dim1="2" dim2="2" format="int8"/> + </Configuration-Register> + <Configuration-Register name="C_uint8" generateFesaValueItem="true" fesaFieldName="C_uint8_fesa" size="1" address="4" mem-size="4"> + <array2D dim1="2" dim2="2" format="uint8"/> + </Configuration-Register> + <Configuration-Register name="C_int16" generateFesaValueItem="true" fesaFieldName="C_int16_fesa" size="2" address="8" mem-size="8"> + <array2D dim1="2" dim2="2" format="int16"/> + </Configuration-Register> + <Configuration-Register name="C_uint16" generateFesaValueItem="true" fesaFieldName="C_uint16_fesa" size="2" address="16" mem-size="8"> + <array2D dim1="2" dim2="2" format="uint16"/> + </Configuration-Register> + <Configuration-Register name="C_int32" generateFesaValueItem="true" fesaFieldName="C_int32_fesa" size="4" address="24" mem-size="16"> + <array2D dim1="2" dim2="2" format="int32"/> + </Configuration-Register> + <Configuration-Register name="C_uint32" generateFesaValueItem="true" fesaFieldName="C_uint32_fesa" size="4" address="40" mem-size="16"> + <array2D dim1="2" dim2="2" format="uint32"/> + </Configuration-Register> + <Configuration-Register name="C_float32" generateFesaValueItem="true" fesaFieldName="C_float32_fesa" size="4" address="56" mem-size="16"> + <array2D dim1="2" dim2="2" format="float32"/> + </Configuration-Register> + <Configuration-Register name="C_string" generateFesaValueItem="true" fesaFieldName="C_string_fesa" size="1" address="72" mem-size="264"> + <stringArray2D dim1="2" dim2="2" string-length="64" format="string"/> + </Configuration-Register> + <Configuration-Register name="C_date" generateFesaValueItem="true" fesaFieldName="C_date_fesa" size="8" address="336" mem-size="32"> + <array2D dim1="2" dim2="2" format="date"/> + </Configuration-Register> + <Configuration-Register name="C_char" generateFesaValueItem="true" fesaFieldName="C_char_fesa" size="1" address="368" mem-size="4"> + <array2D dim1="2" dim2="2" format="char"/> + </Configuration-Register> + <Configuration-Register name="C_byte" generateFesaValueItem="true" fesaFieldName="C_byte_fesa" size="1" address="372" mem-size="4"> + <array2D dim1="2" dim2="2" format="byte"/> + </Configuration-Register> + <Configuration-Register name="C_word" generateFesaValueItem="true" fesaFieldName="C_word_fesa" size="2" address="376" mem-size="8"> + <array2D dim1="2" dim2="2" format="word"/> + </Configuration-Register> + <Configuration-Register name="C_dword" generateFesaValueItem="true" fesaFieldName="C_dword_fesa" size="4" address="384" mem-size="16"> + <array2D dim1="2" dim2="2" format="dword"/> + </Configuration-Register> + <Configuration-Register name="C_int" generateFesaValueItem="true" fesaFieldName="C_int_fesa" size="2" address="400" mem-size="8"> + <array2D dim1="2" dim2="2" format="int"/> + </Configuration-Register> + <Configuration-Register name="C_dint" generateFesaValueItem="true" fesaFieldName="C_dint_fesa" size="4" address="408" mem-size="16"> + <array2D dim1="2" dim2="2" format="dint"/> + </Configuration-Register> + <Configuration-Register name="C_real" generateFesaValueItem="true" fesaFieldName="C_real_fesa" size="4" address="424" mem-size="16"> + <array2D dim1="2" dim2="2" format="real"/> + </Configuration-Register> + <Configuration-Register name="C_dt" generateFesaValueItem="true" fesaFieldName="C_dt_fesa" size="8" address="440" mem-size="32"> + <array2D dim1="2" dim2="2" format="dt"/> + </Configuration-Register> + </Configuration-Block> <Instance label="testDevice1" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/> <Instance label="testDevice2" address="2" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/> </SILECS-Class> diff --git a/silecs-codegen/src/xml/test/generated_correct/client/Virtual_SiemensBlock.silecsparam b/silecs-codegen/src/xml/test/generated_correct/client/Virtual_SiemensBlock.silecsparam index abb3a74ecfcb34fd9d3c8d52e5fb9f476002e8c8..cd3ba1ac19342a190b83287ce5dc25f7a2cc2ff8 100644 --- a/silecs-codegen/src/xml/test/generated_correct/client/Virtual_SiemensBlock.silecsparam +++ b/silecs-codegen/src/xml/test/generated_correct/client/Virtual_SiemensBlock.silecsparam @@ -2,8 +2,8 @@ <SILECS-Param silecs-version="DEV"> <Mapping-Info> <Owner user-login="schwinn"/> - <Generation date="2017-07-28 12:09:58.078995"/> - <Deployment checksum="308863231"/> + <Generation date="2018-01-31 10:48:11.842372"/> + <Deployment checksum="582399177"/> </Mapping-Info> <SILECS-Mapping plc-name="Virtual_SiemensBlock" plc-brand="SIEMENS" plc-system="SNAP7 linux32" plc-model="SIMATIC_S7-VIRTUAL" protocol="BLOCK_MODE" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" domain="" used-mem="TODO"> <SILECS-Class name="SilecsHeader" version="1.0.0" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="DB0..DB0/48 bytes" used-DI="0 byte" used-DO="0 byte" used-AI="0 byte" used-AO="0 byte"> @@ -23,7 +23,7 @@ </Acquisition-Block> <Instance label="SilecsHeader" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/> </SILECS-Class> - <SILECS-Class name="AllTypes" version="0.1.0" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="DB1..DB3/3540 bytes" used-DI="0 byte" used-DO="0 byte" used-AI="0 byte" used-AO="0 byte"> + <SILECS-Class name="AllTypes" version="0.1.0" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="DB1..DB4/4484 bytes" used-DI="0 byte" used-DO="0 byte" used-AI="0 byte" used-AO="0 byte"> <Acquisition-Block name="MyROBlock" size="53" address="1" mem-size="118"> <Acquisition-Register name="RO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="1"> <scalar format="int8"/> @@ -78,57 +78,57 @@ </Acquisition-Register> </Acquisition-Block> <Setting-Block name="MyRWBlock" size="212" address="2" mem-size="472"> - <Volatile-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="4"> + <Setting-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="4"> <array2D dim1="2" dim2="2" format="int8"/> - </Volatile-Register> - <Volatile-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="4" mem-size="4"> + </Setting-Register> + <Setting-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="4" mem-size="4"> <array2D dim1="2" dim2="2" format="uint8"/> - </Volatile-Register> - <Volatile-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="8" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="8" mem-size="8"> <array2D dim1="2" dim2="2" format="int16"/> - </Volatile-Register> - <Volatile-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="16" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="16" mem-size="8"> <array2D dim1="2" dim2="2" format="uint16"/> - </Volatile-Register> - <Volatile-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="24" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="24" mem-size="16"> <array2D dim1="2" dim2="2" format="int32"/> - </Volatile-Register> - <Volatile-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="40" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="40" mem-size="16"> <array2D dim1="2" dim2="2" format="uint32"/> - </Volatile-Register> - <Volatile-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="56" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="56" mem-size="16"> <array2D dim1="2" dim2="2" format="float32"/> - </Volatile-Register> - <Volatile-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="72" mem-size="264"> + </Setting-Register> + <Setting-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="72" mem-size="264"> <stringArray2D dim1="2" dim2="2" string-length="64" format="string"/> - </Volatile-Register> - <Volatile-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="336" mem-size="32"> + </Setting-Register> + <Setting-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="336" mem-size="32"> <array2D dim1="2" dim2="2" format="date"/> - </Volatile-Register> - <Volatile-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="368" mem-size="4"> + </Setting-Register> + <Setting-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="368" mem-size="4"> <array2D dim1="2" dim2="2" format="char"/> - </Volatile-Register> - <Volatile-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="372" mem-size="4"> + </Setting-Register> + <Setting-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="372" mem-size="4"> <array2D dim1="2" dim2="2" format="byte"/> - </Volatile-Register> - <Volatile-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="376" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="376" mem-size="8"> <array2D dim1="2" dim2="2" format="word"/> - </Volatile-Register> - <Volatile-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="384" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="384" mem-size="16"> <array2D dim1="2" dim2="2" format="dword"/> - </Volatile-Register> - <Volatile-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="400" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="400" mem-size="8"> <array2D dim1="2" dim2="2" format="int"/> - </Volatile-Register> - <Volatile-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="408" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="408" mem-size="16"> <array2D dim1="2" dim2="2" format="dint"/> - </Volatile-Register> - <Volatile-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="424" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="424" mem-size="16"> <array2D dim1="2" dim2="2" format="real"/> - </Volatile-Register> - <Volatile-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="440" mem-size="32"> + </Setting-Register> + <Setting-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="440" mem-size="32"> <array2D dim1="2" dim2="2" format="dt"/> - </Volatile-Register> + </Setting-Register> </Setting-Block> <Command-Block name="MyWOBlock" size="530" address="3" mem-size="1180"> <Setting-Register name="WO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="10"> @@ -183,6 +183,59 @@ <array dim="10" format="dt"/> </Setting-Register> </Command-Block> + <Configuration-Block name="MyCBlock" size="212" address="4" mem-size="472"> + <Configuration-Register name="C_int8" generateFesaValueItem="true" size="1" address="0" mem-size="4"> + <array2D dim1="2" dim2="2" format="int8"/> + </Configuration-Register> + <Configuration-Register name="C_uint8" generateFesaValueItem="true" fesaFieldName="C_uint8_fesa" size="1" address="4" mem-size="4"> + <array2D dim1="2" dim2="2" format="uint8"/> + </Configuration-Register> + <Configuration-Register name="C_int16" generateFesaValueItem="true" fesaFieldName="C_int16_fesa" size="2" address="8" mem-size="8"> + <array2D dim1="2" dim2="2" format="int16"/> + </Configuration-Register> + <Configuration-Register name="C_uint16" generateFesaValueItem="true" fesaFieldName="C_uint16_fesa" size="2" address="16" mem-size="8"> + <array2D dim1="2" dim2="2" format="uint16"/> + </Configuration-Register> + <Configuration-Register name="C_int32" generateFesaValueItem="true" fesaFieldName="C_int32_fesa" size="4" address="24" mem-size="16"> + <array2D dim1="2" dim2="2" format="int32"/> + </Configuration-Register> + <Configuration-Register name="C_uint32" generateFesaValueItem="true" fesaFieldName="C_uint32_fesa" size="4" address="40" mem-size="16"> + <array2D dim1="2" dim2="2" format="uint32"/> + </Configuration-Register> + <Configuration-Register name="C_float32" generateFesaValueItem="true" fesaFieldName="C_float32_fesa" size="4" address="56" mem-size="16"> + <array2D dim1="2" dim2="2" format="float32"/> + </Configuration-Register> + <Configuration-Register name="C_string" generateFesaValueItem="true" fesaFieldName="C_string_fesa" size="1" address="72" mem-size="264"> + <stringArray2D dim1="2" dim2="2" string-length="64" format="string"/> + </Configuration-Register> + <Configuration-Register name="C_date" generateFesaValueItem="true" fesaFieldName="C_date_fesa" size="8" address="336" mem-size="32"> + <array2D dim1="2" dim2="2" format="date"/> + </Configuration-Register> + <Configuration-Register name="C_char" generateFesaValueItem="true" fesaFieldName="C_char_fesa" size="1" address="368" mem-size="4"> + <array2D dim1="2" dim2="2" format="char"/> + </Configuration-Register> + <Configuration-Register name="C_byte" generateFesaValueItem="true" fesaFieldName="C_byte_fesa" size="1" address="372" mem-size="4"> + <array2D dim1="2" dim2="2" format="byte"/> + </Configuration-Register> + <Configuration-Register name="C_word" generateFesaValueItem="true" fesaFieldName="C_word_fesa" size="2" address="376" mem-size="8"> + <array2D dim1="2" dim2="2" format="word"/> + </Configuration-Register> + <Configuration-Register name="C_dword" generateFesaValueItem="true" fesaFieldName="C_dword_fesa" size="4" address="384" mem-size="16"> + <array2D dim1="2" dim2="2" format="dword"/> + </Configuration-Register> + <Configuration-Register name="C_int" generateFesaValueItem="true" fesaFieldName="C_int_fesa" size="2" address="400" mem-size="8"> + <array2D dim1="2" dim2="2" format="int"/> + </Configuration-Register> + <Configuration-Register name="C_dint" generateFesaValueItem="true" fesaFieldName="C_dint_fesa" size="4" address="408" mem-size="16"> + <array2D dim1="2" dim2="2" format="dint"/> + </Configuration-Register> + <Configuration-Register name="C_real" generateFesaValueItem="true" fesaFieldName="C_real_fesa" size="4" address="424" mem-size="16"> + <array2D dim1="2" dim2="2" format="real"/> + </Configuration-Register> + <Configuration-Register name="C_dt" generateFesaValueItem="true" fesaFieldName="C_dt_fesa" size="8" address="440" mem-size="32"> + <array2D dim1="2" dim2="2" format="dt"/> + </Configuration-Register> + </Configuration-Block> <Instance label="testDevice1" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/> <Instance label="testDevice2" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/> </SILECS-Class> diff --git a/silecs-codegen/src/xml/test/generated_correct/client/Virtual_SiemensDevice.silecsparam b/silecs-codegen/src/xml/test/generated_correct/client/Virtual_SiemensDevice.silecsparam index de610430ebacc1a6630146f104dafaeab1c258c0..ec48ebe0b3eefb4e1f97121474eaa6283d28f37a 100644 --- a/silecs-codegen/src/xml/test/generated_correct/client/Virtual_SiemensDevice.silecsparam +++ b/silecs-codegen/src/xml/test/generated_correct/client/Virtual_SiemensDevice.silecsparam @@ -2,8 +2,8 @@ <SILECS-Param silecs-version="DEV"> <Mapping-Info> <Owner user-login="schwinn"/> - <Generation date="2017-07-28 12:09:58.040528"/> - <Deployment checksum="308863231"/> + <Generation date="2018-01-31 10:48:11.796522"/> + <Deployment checksum="582399177"/> </Mapping-Info> <SILECS-Mapping plc-name="Virtual_SiemensDevice" plc-brand="SIEMENS" plc-system="SNAP7 linux32" plc-model="SIMATIC_S7-VIRTUAL" protocol="DEVICE_MODE" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" domain="" used-mem="TODO"> <SILECS-Class name="SilecsHeader" version="1.0.0" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="DB0..DB0/48 bytes" used-DI="0 byte" used-DO="0 byte" used-AI="0 byte" used-AO="0 byte"> @@ -23,7 +23,7 @@ </Acquisition-Block> <Instance label="SilecsHeader" address="0" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/> </SILECS-Class> - <SILECS-Class name="AllTypes" version="0.1.0" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="DB1..DB2/3540 bytes" used-DI="0 byte" used-DO="0 byte" used-AI="0 byte" used-AO="0 byte"> + <SILECS-Class name="AllTypes" version="0.1.0" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1" used-mem="DB1..DB2/4484 bytes" used-DI="0 byte" used-DO="0 byte" used-AI="0 byte" used-AO="0 byte"> <Acquisition-Block name="MyROBlock" size="53" address="0" mem-size="118"> <Acquisition-Register name="RO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="1"> <scalar format="int8"/> @@ -78,57 +78,57 @@ </Acquisition-Register> </Acquisition-Block> <Setting-Block name="MyRWBlock" size="212" address="118" mem-size="472"> - <Volatile-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="4"> + <Setting-Register name="RW_int8" generateFesaValueItem="true" size="1" address="0" mem-size="4"> <array2D dim1="2" dim2="2" format="int8"/> - </Volatile-Register> - <Volatile-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="4" mem-size="4"> + </Setting-Register> + <Setting-Register name="RW_uint8" generateFesaValueItem="true" fesaFieldName="RW_uint8_fesa" size="1" address="4" mem-size="4"> <array2D dim1="2" dim2="2" format="uint8"/> - </Volatile-Register> - <Volatile-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="8" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_int16" generateFesaValueItem="true" fesaFieldName="RW_int16_fesa" size="2" address="8" mem-size="8"> <array2D dim1="2" dim2="2" format="int16"/> - </Volatile-Register> - <Volatile-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="16" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_uint16" generateFesaValueItem="true" fesaFieldName="RW_uint16_fesa" size="2" address="16" mem-size="8"> <array2D dim1="2" dim2="2" format="uint16"/> - </Volatile-Register> - <Volatile-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="24" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_int32" generateFesaValueItem="true" fesaFieldName="RW_int32_fesa" size="4" address="24" mem-size="16"> <array2D dim1="2" dim2="2" format="int32"/> - </Volatile-Register> - <Volatile-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="40" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_uint32" generateFesaValueItem="true" fesaFieldName="RW_uint32_fesa" size="4" address="40" mem-size="16"> <array2D dim1="2" dim2="2" format="uint32"/> - </Volatile-Register> - <Volatile-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="56" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_float32" generateFesaValueItem="true" fesaFieldName="RW_float32_fesa" size="4" address="56" mem-size="16"> <array2D dim1="2" dim2="2" format="float32"/> - </Volatile-Register> - <Volatile-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="72" mem-size="264"> + </Setting-Register> + <Setting-Register name="RW_string" generateFesaValueItem="true" fesaFieldName="RW_string_fesa" size="1" address="72" mem-size="264"> <stringArray2D dim1="2" dim2="2" string-length="64" format="string"/> - </Volatile-Register> - <Volatile-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="336" mem-size="32"> + </Setting-Register> + <Setting-Register name="RW_date" generateFesaValueItem="true" fesaFieldName="RW_date_fesa" size="8" address="336" mem-size="32"> <array2D dim1="2" dim2="2" format="date"/> - </Volatile-Register> - <Volatile-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="368" mem-size="4"> + </Setting-Register> + <Setting-Register name="RW_char" generateFesaValueItem="true" fesaFieldName="RW_char_fesa" size="1" address="368" mem-size="4"> <array2D dim1="2" dim2="2" format="char"/> - </Volatile-Register> - <Volatile-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="372" mem-size="4"> + </Setting-Register> + <Setting-Register name="RW_byte" generateFesaValueItem="true" fesaFieldName="RW_byte_fesa" size="1" address="372" mem-size="4"> <array2D dim1="2" dim2="2" format="byte"/> - </Volatile-Register> - <Volatile-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="376" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_word" generateFesaValueItem="true" fesaFieldName="RW_word_fesa" size="2" address="376" mem-size="8"> <array2D dim1="2" dim2="2" format="word"/> - </Volatile-Register> - <Volatile-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="384" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_dword" generateFesaValueItem="true" fesaFieldName="RW_dword_fesa" size="4" address="384" mem-size="16"> <array2D dim1="2" dim2="2" format="dword"/> - </Volatile-Register> - <Volatile-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="400" mem-size="8"> + </Setting-Register> + <Setting-Register name="RW_int" generateFesaValueItem="true" fesaFieldName="RW_int_fesa" size="2" address="400" mem-size="8"> <array2D dim1="2" dim2="2" format="int"/> - </Volatile-Register> - <Volatile-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="408" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_dint" generateFesaValueItem="true" fesaFieldName="RW_dint_fesa" size="4" address="408" mem-size="16"> <array2D dim1="2" dim2="2" format="dint"/> - </Volatile-Register> - <Volatile-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="424" mem-size="16"> + </Setting-Register> + <Setting-Register name="RW_real" generateFesaValueItem="true" fesaFieldName="RW_real_fesa" size="4" address="424" mem-size="16"> <array2D dim1="2" dim2="2" format="real"/> - </Volatile-Register> - <Volatile-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="440" mem-size="32"> + </Setting-Register> + <Setting-Register name="RW_dt" generateFesaValueItem="true" fesaFieldName="RW_dt_fesa" size="8" address="440" mem-size="32"> <array2D dim1="2" dim2="2" format="dt"/> - </Volatile-Register> + </Setting-Register> </Setting-Block> <Command-Block name="MyWOBlock" size="530" address="590" mem-size="1180"> <Setting-Register name="WO_int8" generateFesaValueItem="true" size="1" address="0" mem-size="10"> @@ -183,6 +183,59 @@ <array dim="10" format="dt"/> </Setting-Register> </Command-Block> + <Configuration-Block name="MyCBlock" size="212" address="1770" mem-size="472"> + <Configuration-Register name="C_int8" generateFesaValueItem="true" size="1" address="0" mem-size="4"> + <array2D dim1="2" dim2="2" format="int8"/> + </Configuration-Register> + <Configuration-Register name="C_uint8" generateFesaValueItem="true" fesaFieldName="C_uint8_fesa" size="1" address="4" mem-size="4"> + <array2D dim1="2" dim2="2" format="uint8"/> + </Configuration-Register> + <Configuration-Register name="C_int16" generateFesaValueItem="true" fesaFieldName="C_int16_fesa" size="2" address="8" mem-size="8"> + <array2D dim1="2" dim2="2" format="int16"/> + </Configuration-Register> + <Configuration-Register name="C_uint16" generateFesaValueItem="true" fesaFieldName="C_uint16_fesa" size="2" address="16" mem-size="8"> + <array2D dim1="2" dim2="2" format="uint16"/> + </Configuration-Register> + <Configuration-Register name="C_int32" generateFesaValueItem="true" fesaFieldName="C_int32_fesa" size="4" address="24" mem-size="16"> + <array2D dim1="2" dim2="2" format="int32"/> + </Configuration-Register> + <Configuration-Register name="C_uint32" generateFesaValueItem="true" fesaFieldName="C_uint32_fesa" size="4" address="40" mem-size="16"> + <array2D dim1="2" dim2="2" format="uint32"/> + </Configuration-Register> + <Configuration-Register name="C_float32" generateFesaValueItem="true" fesaFieldName="C_float32_fesa" size="4" address="56" mem-size="16"> + <array2D dim1="2" dim2="2" format="float32"/> + </Configuration-Register> + <Configuration-Register name="C_string" generateFesaValueItem="true" fesaFieldName="C_string_fesa" size="1" address="72" mem-size="264"> + <stringArray2D dim1="2" dim2="2" string-length="64" format="string"/> + </Configuration-Register> + <Configuration-Register name="C_date" generateFesaValueItem="true" fesaFieldName="C_date_fesa" size="8" address="336" mem-size="32"> + <array2D dim1="2" dim2="2" format="date"/> + </Configuration-Register> + <Configuration-Register name="C_char" generateFesaValueItem="true" fesaFieldName="C_char_fesa" size="1" address="368" mem-size="4"> + <array2D dim1="2" dim2="2" format="char"/> + </Configuration-Register> + <Configuration-Register name="C_byte" generateFesaValueItem="true" fesaFieldName="C_byte_fesa" size="1" address="372" mem-size="4"> + <array2D dim1="2" dim2="2" format="byte"/> + </Configuration-Register> + <Configuration-Register name="C_word" generateFesaValueItem="true" fesaFieldName="C_word_fesa" size="2" address="376" mem-size="8"> + <array2D dim1="2" dim2="2" format="word"/> + </Configuration-Register> + <Configuration-Register name="C_dword" generateFesaValueItem="true" fesaFieldName="C_dword_fesa" size="4" address="384" mem-size="16"> + <array2D dim1="2" dim2="2" format="dword"/> + </Configuration-Register> + <Configuration-Register name="C_int" generateFesaValueItem="true" fesaFieldName="C_int_fesa" size="2" address="400" mem-size="8"> + <array2D dim1="2" dim2="2" format="int"/> + </Configuration-Register> + <Configuration-Register name="C_dint" generateFesaValueItem="true" fesaFieldName="C_dint_fesa" size="4" address="408" mem-size="16"> + <array2D dim1="2" dim2="2" format="dint"/> + </Configuration-Register> + <Configuration-Register name="C_real" generateFesaValueItem="true" fesaFieldName="C_real_fesa" size="4" address="424" mem-size="16"> + <array2D dim1="2" dim2="2" format="real"/> + </Configuration-Register> + <Configuration-Register name="C_dt" generateFesaValueItem="true" fesaFieldName="C_dt_fesa" size="8" address="440" mem-size="32"> + <array2D dim1="2" dim2="2" format="dt"/> + </Configuration-Register> + </Configuration-Block> <Instance label="testDevice1" address="1" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/> <Instance label="testDevice2" address="2" DI-address="-1" DO-address="-1" AI-address="-1" AO-address="-1"/> </SILECS-Class> diff --git a/silecs-codegen/src/xml/test/generated_correct/controller/Beckhoff_BC9020.exp b/silecs-codegen/src/xml/test/generated_correct/controller/Beckhoff_BC9020.exp index 68210c9c6172ef0e3928f3b621189cfde9ddef5e..bfdd8f3041e888e9347236421d595193ac2a1f55 100644 --- a/silecs-codegen/src/xml/test/generated_correct/controller/Beckhoff_BC9020.exp +++ b/silecs-codegen/src/xml/test/generated_correct/controller/Beckhoff_BC9020.exp @@ -11,13 +11,13 @@ VAR_GLOBAL _version_a781_SilecsHeader AT %MW0: STRING(16):= DEV; (*SilecsHeader/SilecsHeader/hdrBlk *) - _checksum_a781_SilecsHeader AT %MW9: DWORD:= 1037751963; + _checksum_a781_SilecsHeader AT %MW9: DWORD:= 2903751780; (*SilecsHeader/SilecsHeader/hdrBlk *) _user_a781_SilecsHeader AT %MW11: STRING(16):= 'schwinn'; (*SilecsHeader/SilecsHeader/hdrBlk *) - _date_a781_SilecsHeader AT %MW20: DT:= DT#2017-6-8-16:38:3; + _date_a781_SilecsHeader AT %MW20: DT:= DT#2018-1-31-10:49:39; (*AllTypes/testDevice1/MyROBlock *) RO_int8_a583_testDevice1 AT %MW24: SINT; @@ -325,4 +325,106 @@ VAR_GLOBAL (*AllTypes/testDevice2/MyWOBlock *) WO_dt_a583_testDevice2 AT %MW1744: ARRAY [0..9] OF DT; + (*AllTypes/testDevice1/MyCBlock *) + C_int8_a583_testDevice1 AT %MW1784: ARRAY [0..1, 0..1] OF SINT; + + (*AllTypes/testDevice1/MyCBlock *) + C_uint8_a583_testDevice1 AT %MW1786: ARRAY [0..1, 0..1] OF BYTE; + + (*AllTypes/testDevice1/MyCBlock *) + C_int16_a583_testDevice1 AT %MW1788: ARRAY [0..1, 0..1] OF INT; + + (*AllTypes/testDevice1/MyCBlock *) + C_uint16_a583_testDevice1 AT %MW1792: ARRAY [0..1, 0..1] OF WORD; + + (*AllTypes/testDevice1/MyCBlock *) + C_int32_a583_testDevice1 AT %MW1796: ARRAY [0..1, 0..1] OF DINT; + + (*AllTypes/testDevice1/MyCBlock *) + C_uint32_a583_testDevice1 AT %MW1804: ARRAY [0..1, 0..1] OF DWORD; + + (*AllTypes/testDevice1/MyCBlock *) + C_float32_a583_testDevice1 AT %MW1812: ARRAY [0..1, 0..1] OF REAL; + + (*AllTypes/testDevice1/MyCBlock *) + C_string_a583_testDevice1 AT %MW1820: ARRAY [0..1, 0..1] OF STRING(64); + + (*AllTypes/testDevice1/MyCBlock *) + C_date_a583_testDevice1 AT %MW1950: ARRAY [0..1, 0..1] OF DT; + + (*AllTypes/testDevice1/MyCBlock *) + C_char_a583_testDevice1 AT %MW1966: ARRAY [0..1, 0..1] OF SINT; + + (*AllTypes/testDevice1/MyCBlock *) + C_byte_a583_testDevice1 AT %MW1968: ARRAY [0..1, 0..1] OF BYTE; + + (*AllTypes/testDevice1/MyCBlock *) + C_word_a583_testDevice1 AT %MW1970: ARRAY [0..1, 0..1] OF WORD; + + (*AllTypes/testDevice1/MyCBlock *) + C_dword_a583_testDevice1 AT %MW1974: ARRAY [0..1, 0..1] OF DWORD; + + (*AllTypes/testDevice1/MyCBlock *) + C_int_a583_testDevice1 AT %MW1982: ARRAY [0..1, 0..1] OF INT; + + (*AllTypes/testDevice1/MyCBlock *) + C_dint_a583_testDevice1 AT %MW1986: ARRAY [0..1, 0..1] OF DINT; + + (*AllTypes/testDevice1/MyCBlock *) + C_real_a583_testDevice1 AT %MW1994: ARRAY [0..1, 0..1] OF REAL; + + (*AllTypes/testDevice1/MyCBlock *) + C_dt_a583_testDevice1 AT %MW2002: ARRAY [0..1, 0..1] OF DT; + + (*AllTypes/testDevice2/MyCBlock *) + C_int8_a583_testDevice2 AT %MW2018: ARRAY [0..1, 0..1] OF SINT; + + (*AllTypes/testDevice2/MyCBlock *) + C_uint8_a583_testDevice2 AT %MW2020: ARRAY [0..1, 0..1] OF BYTE; + + (*AllTypes/testDevice2/MyCBlock *) + C_int16_a583_testDevice2 AT %MW2022: ARRAY [0..1, 0..1] OF INT; + + (*AllTypes/testDevice2/MyCBlock *) + C_uint16_a583_testDevice2 AT %MW2026: ARRAY [0..1, 0..1] OF WORD; + + (*AllTypes/testDevice2/MyCBlock *) + C_int32_a583_testDevice2 AT %MW2030: ARRAY [0..1, 0..1] OF DINT; + + (*AllTypes/testDevice2/MyCBlock *) + C_uint32_a583_testDevice2 AT %MW2038: ARRAY [0..1, 0..1] OF DWORD; + + (*AllTypes/testDevice2/MyCBlock *) + C_float32_a583_testDevice2 AT %MW2046: ARRAY [0..1, 0..1] OF REAL; + + (*AllTypes/testDevice2/MyCBlock *) + C_string_a583_testDevice2 AT %MW2054: ARRAY [0..1, 0..1] OF STRING(64); + + (*AllTypes/testDevice2/MyCBlock *) + C_date_a583_testDevice2 AT %MW2184: ARRAY [0..1, 0..1] OF DT; + + (*AllTypes/testDevice2/MyCBlock *) + C_char_a583_testDevice2 AT %MW2200: ARRAY [0..1, 0..1] OF SINT; + + (*AllTypes/testDevice2/MyCBlock *) + C_byte_a583_testDevice2 AT %MW2202: ARRAY [0..1, 0..1] OF BYTE; + + (*AllTypes/testDevice2/MyCBlock *) + C_word_a583_testDevice2 AT %MW2204: ARRAY [0..1, 0..1] OF WORD; + + (*AllTypes/testDevice2/MyCBlock *) + C_dword_a583_testDevice2 AT %MW2208: ARRAY [0..1, 0..1] OF DWORD; + + (*AllTypes/testDevice2/MyCBlock *) + C_int_a583_testDevice2 AT %MW2216: ARRAY [0..1, 0..1] OF INT; + + (*AllTypes/testDevice2/MyCBlock *) + C_dint_a583_testDevice2 AT %MW2220: ARRAY [0..1, 0..1] OF DINT; + + (*AllTypes/testDevice2/MyCBlock *) + C_real_a583_testDevice2 AT %MW2228: ARRAY [0..1, 0..1] OF REAL; + + (*AllTypes/testDevice2/MyCBlock *) + C_dt_a583_testDevice2 AT %MW2236: ARRAY [0..1, 0..1] OF DT; + END_VAR \ No newline at end of file diff --git a/silecs-codegen/src/xml/test/generated_correct/controller/Beckhoff_CX9020_TC2.exp b/silecs-codegen/src/xml/test/generated_correct/controller/Beckhoff_CX9020_TC2.exp index 7b1e2a3ef9e1df24cb96bbf1fbd3b9dcdcacb328..a501100e4e6c813ec15d2f293c5c004541c5d599 100644 --- a/silecs-codegen/src/xml/test/generated_correct/controller/Beckhoff_CX9020_TC2.exp +++ b/silecs-codegen/src/xml/test/generated_correct/controller/Beckhoff_CX9020_TC2.exp @@ -11,13 +11,13 @@ VAR_GLOBAL _version_a781_SilecsHeader AT %MW0: STRING(16):= DEV; (*SilecsHeader/SilecsHeader/hdrBlk *) - _checksum_a781_SilecsHeader AT %MW20: DWORD:= 2754857673; + _checksum_a781_SilecsHeader AT %MW20: DWORD:= 2305663869; (*SilecsHeader/SilecsHeader/hdrBlk *) _user_a781_SilecsHeader AT %MW24: STRING(16):= 'schwinn'; (*SilecsHeader/SilecsHeader/hdrBlk *) - _date_a781_SilecsHeader AT %MW44: DT:= DT#2017-7-28-12:15:6; + _date_a781_SilecsHeader AT %MW44: DT:= DT#2018-1-31-10:49:39; (*AllTypes/testDevice1/MyROBlock *) RO_int8_a583_testDevice1 AT %MW52: SINT; @@ -325,4 +325,106 @@ VAR_GLOBAL (*AllTypes/testDevice2/MyWOBlock *) WO_dt_a583_testDevice2 AT %MW3508: ARRAY [0..9] OF DT; + (*AllTypes/testDevice1/MyCBlock *) + C_int8_a583_testDevice1 AT %MW3588: ARRAY [0..1, 0..1] OF SINT; + + (*AllTypes/testDevice1/MyCBlock *) + C_uint8_a583_testDevice1 AT %MW3592: ARRAY [0..1, 0..1] OF BYTE; + + (*AllTypes/testDevice1/MyCBlock *) + C_int16_a583_testDevice1 AT %MW3596: ARRAY [0..1, 0..1] OF INT; + + (*AllTypes/testDevice1/MyCBlock *) + C_uint16_a583_testDevice1 AT %MW3604: ARRAY [0..1, 0..1] OF WORD; + + (*AllTypes/testDevice1/MyCBlock *) + C_int32_a583_testDevice1 AT %MW3612: ARRAY [0..1, 0..1] OF DINT; + + (*AllTypes/testDevice1/MyCBlock *) + C_uint32_a583_testDevice1 AT %MW3628: ARRAY [0..1, 0..1] OF DWORD; + + (*AllTypes/testDevice1/MyCBlock *) + C_float32_a583_testDevice1 AT %MW3644: ARRAY [0..1, 0..1] OF REAL; + + (*AllTypes/testDevice1/MyCBlock *) + C_string_a583_testDevice1 AT %MW3660: ARRAY [0..1, 0..1] OF STRING(64); + + (*AllTypes/testDevice1/MyCBlock *) + C_date_a583_testDevice1 AT %MW3920: ARRAY [0..1, 0..1] OF DT; + + (*AllTypes/testDevice1/MyCBlock *) + C_char_a583_testDevice1 AT %MW3952: ARRAY [0..1, 0..1] OF SINT; + + (*AllTypes/testDevice1/MyCBlock *) + C_byte_a583_testDevice1 AT %MW3956: ARRAY [0..1, 0..1] OF BYTE; + + (*AllTypes/testDevice1/MyCBlock *) + C_word_a583_testDevice1 AT %MW3960: ARRAY [0..1, 0..1] OF WORD; + + (*AllTypes/testDevice1/MyCBlock *) + C_dword_a583_testDevice1 AT %MW3968: ARRAY [0..1, 0..1] OF DWORD; + + (*AllTypes/testDevice1/MyCBlock *) + C_int_a583_testDevice1 AT %MW3984: ARRAY [0..1, 0..1] OF INT; + + (*AllTypes/testDevice1/MyCBlock *) + C_dint_a583_testDevice1 AT %MW3992: ARRAY [0..1, 0..1] OF DINT; + + (*AllTypes/testDevice1/MyCBlock *) + C_real_a583_testDevice1 AT %MW4008: ARRAY [0..1, 0..1] OF REAL; + + (*AllTypes/testDevice1/MyCBlock *) + C_dt_a583_testDevice1 AT %MW4024: ARRAY [0..1, 0..1] OF DT; + + (*AllTypes/testDevice2/MyCBlock *) + C_int8_a583_testDevice2 AT %MW4056: ARRAY [0..1, 0..1] OF SINT; + + (*AllTypes/testDevice2/MyCBlock *) + C_uint8_a583_testDevice2 AT %MW4060: ARRAY [0..1, 0..1] OF BYTE; + + (*AllTypes/testDevice2/MyCBlock *) + C_int16_a583_testDevice2 AT %MW4064: ARRAY [0..1, 0..1] OF INT; + + (*AllTypes/testDevice2/MyCBlock *) + C_uint16_a583_testDevice2 AT %MW4072: ARRAY [0..1, 0..1] OF WORD; + + (*AllTypes/testDevice2/MyCBlock *) + C_int32_a583_testDevice2 AT %MW4080: ARRAY [0..1, 0..1] OF DINT; + + (*AllTypes/testDevice2/MyCBlock *) + C_uint32_a583_testDevice2 AT %MW4096: ARRAY [0..1, 0..1] OF DWORD; + + (*AllTypes/testDevice2/MyCBlock *) + C_float32_a583_testDevice2 AT %MW4112: ARRAY [0..1, 0..1] OF REAL; + + (*AllTypes/testDevice2/MyCBlock *) + C_string_a583_testDevice2 AT %MW4128: ARRAY [0..1, 0..1] OF STRING(64); + + (*AllTypes/testDevice2/MyCBlock *) + C_date_a583_testDevice2 AT %MW4388: ARRAY [0..1, 0..1] OF DT; + + (*AllTypes/testDevice2/MyCBlock *) + C_char_a583_testDevice2 AT %MW4420: ARRAY [0..1, 0..1] OF SINT; + + (*AllTypes/testDevice2/MyCBlock *) + C_byte_a583_testDevice2 AT %MW4424: ARRAY [0..1, 0..1] OF BYTE; + + (*AllTypes/testDevice2/MyCBlock *) + C_word_a583_testDevice2 AT %MW4428: ARRAY [0..1, 0..1] OF WORD; + + (*AllTypes/testDevice2/MyCBlock *) + C_dword_a583_testDevice2 AT %MW4436: ARRAY [0..1, 0..1] OF DWORD; + + (*AllTypes/testDevice2/MyCBlock *) + C_int_a583_testDevice2 AT %MW4452: ARRAY [0..1, 0..1] OF INT; + + (*AllTypes/testDevice2/MyCBlock *) + C_dint_a583_testDevice2 AT %MW4460: ARRAY [0..1, 0..1] OF DINT; + + (*AllTypes/testDevice2/MyCBlock *) + C_real_a583_testDevice2 AT %MW4476: ARRAY [0..1, 0..1] OF REAL; + + (*AllTypes/testDevice2/MyCBlock *) + C_dt_a583_testDevice2 AT %MW4492: ARRAY [0..1, 0..1] OF DT; + END_VAR \ No newline at end of file diff --git a/silecs-codegen/src/xml/test/generated_correct/controller/Beckhoff_CX9020_TC3.exp b/silecs-codegen/src/xml/test/generated_correct/controller/Beckhoff_CX9020_TC3.exp index 7b1e2a3ef9e1df24cb96bbf1fbd3b9dcdcacb328..a501100e4e6c813ec15d2f293c5c004541c5d599 100644 --- a/silecs-codegen/src/xml/test/generated_correct/controller/Beckhoff_CX9020_TC3.exp +++ b/silecs-codegen/src/xml/test/generated_correct/controller/Beckhoff_CX9020_TC3.exp @@ -11,13 +11,13 @@ VAR_GLOBAL _version_a781_SilecsHeader AT %MW0: STRING(16):= DEV; (*SilecsHeader/SilecsHeader/hdrBlk *) - _checksum_a781_SilecsHeader AT %MW20: DWORD:= 2754857673; + _checksum_a781_SilecsHeader AT %MW20: DWORD:= 2305663869; (*SilecsHeader/SilecsHeader/hdrBlk *) _user_a781_SilecsHeader AT %MW24: STRING(16):= 'schwinn'; (*SilecsHeader/SilecsHeader/hdrBlk *) - _date_a781_SilecsHeader AT %MW44: DT:= DT#2017-7-28-12:15:6; + _date_a781_SilecsHeader AT %MW44: DT:= DT#2018-1-31-10:49:39; (*AllTypes/testDevice1/MyROBlock *) RO_int8_a583_testDevice1 AT %MW52: SINT; @@ -325,4 +325,106 @@ VAR_GLOBAL (*AllTypes/testDevice2/MyWOBlock *) WO_dt_a583_testDevice2 AT %MW3508: ARRAY [0..9] OF DT; + (*AllTypes/testDevice1/MyCBlock *) + C_int8_a583_testDevice1 AT %MW3588: ARRAY [0..1, 0..1] OF SINT; + + (*AllTypes/testDevice1/MyCBlock *) + C_uint8_a583_testDevice1 AT %MW3592: ARRAY [0..1, 0..1] OF BYTE; + + (*AllTypes/testDevice1/MyCBlock *) + C_int16_a583_testDevice1 AT %MW3596: ARRAY [0..1, 0..1] OF INT; + + (*AllTypes/testDevice1/MyCBlock *) + C_uint16_a583_testDevice1 AT %MW3604: ARRAY [0..1, 0..1] OF WORD; + + (*AllTypes/testDevice1/MyCBlock *) + C_int32_a583_testDevice1 AT %MW3612: ARRAY [0..1, 0..1] OF DINT; + + (*AllTypes/testDevice1/MyCBlock *) + C_uint32_a583_testDevice1 AT %MW3628: ARRAY [0..1, 0..1] OF DWORD; + + (*AllTypes/testDevice1/MyCBlock *) + C_float32_a583_testDevice1 AT %MW3644: ARRAY [0..1, 0..1] OF REAL; + + (*AllTypes/testDevice1/MyCBlock *) + C_string_a583_testDevice1 AT %MW3660: ARRAY [0..1, 0..1] OF STRING(64); + + (*AllTypes/testDevice1/MyCBlock *) + C_date_a583_testDevice1 AT %MW3920: ARRAY [0..1, 0..1] OF DT; + + (*AllTypes/testDevice1/MyCBlock *) + C_char_a583_testDevice1 AT %MW3952: ARRAY [0..1, 0..1] OF SINT; + + (*AllTypes/testDevice1/MyCBlock *) + C_byte_a583_testDevice1 AT %MW3956: ARRAY [0..1, 0..1] OF BYTE; + + (*AllTypes/testDevice1/MyCBlock *) + C_word_a583_testDevice1 AT %MW3960: ARRAY [0..1, 0..1] OF WORD; + + (*AllTypes/testDevice1/MyCBlock *) + C_dword_a583_testDevice1 AT %MW3968: ARRAY [0..1, 0..1] OF DWORD; + + (*AllTypes/testDevice1/MyCBlock *) + C_int_a583_testDevice1 AT %MW3984: ARRAY [0..1, 0..1] OF INT; + + (*AllTypes/testDevice1/MyCBlock *) + C_dint_a583_testDevice1 AT %MW3992: ARRAY [0..1, 0..1] OF DINT; + + (*AllTypes/testDevice1/MyCBlock *) + C_real_a583_testDevice1 AT %MW4008: ARRAY [0..1, 0..1] OF REAL; + + (*AllTypes/testDevice1/MyCBlock *) + C_dt_a583_testDevice1 AT %MW4024: ARRAY [0..1, 0..1] OF DT; + + (*AllTypes/testDevice2/MyCBlock *) + C_int8_a583_testDevice2 AT %MW4056: ARRAY [0..1, 0..1] OF SINT; + + (*AllTypes/testDevice2/MyCBlock *) + C_uint8_a583_testDevice2 AT %MW4060: ARRAY [0..1, 0..1] OF BYTE; + + (*AllTypes/testDevice2/MyCBlock *) + C_int16_a583_testDevice2 AT %MW4064: ARRAY [0..1, 0..1] OF INT; + + (*AllTypes/testDevice2/MyCBlock *) + C_uint16_a583_testDevice2 AT %MW4072: ARRAY [0..1, 0..1] OF WORD; + + (*AllTypes/testDevice2/MyCBlock *) + C_int32_a583_testDevice2 AT %MW4080: ARRAY [0..1, 0..1] OF DINT; + + (*AllTypes/testDevice2/MyCBlock *) + C_uint32_a583_testDevice2 AT %MW4096: ARRAY [0..1, 0..1] OF DWORD; + + (*AllTypes/testDevice2/MyCBlock *) + C_float32_a583_testDevice2 AT %MW4112: ARRAY [0..1, 0..1] OF REAL; + + (*AllTypes/testDevice2/MyCBlock *) + C_string_a583_testDevice2 AT %MW4128: ARRAY [0..1, 0..1] OF STRING(64); + + (*AllTypes/testDevice2/MyCBlock *) + C_date_a583_testDevice2 AT %MW4388: ARRAY [0..1, 0..1] OF DT; + + (*AllTypes/testDevice2/MyCBlock *) + C_char_a583_testDevice2 AT %MW4420: ARRAY [0..1, 0..1] OF SINT; + + (*AllTypes/testDevice2/MyCBlock *) + C_byte_a583_testDevice2 AT %MW4424: ARRAY [0..1, 0..1] OF BYTE; + + (*AllTypes/testDevice2/MyCBlock *) + C_word_a583_testDevice2 AT %MW4428: ARRAY [0..1, 0..1] OF WORD; + + (*AllTypes/testDevice2/MyCBlock *) + C_dword_a583_testDevice2 AT %MW4436: ARRAY [0..1, 0..1] OF DWORD; + + (*AllTypes/testDevice2/MyCBlock *) + C_int_a583_testDevice2 AT %MW4452: ARRAY [0..1, 0..1] OF INT; + + (*AllTypes/testDevice2/MyCBlock *) + C_dint_a583_testDevice2 AT %MW4460: ARRAY [0..1, 0..1] OF DINT; + + (*AllTypes/testDevice2/MyCBlock *) + C_real_a583_testDevice2 AT %MW4476: ARRAY [0..1, 0..1] OF REAL; + + (*AllTypes/testDevice2/MyCBlock *) + C_dt_a583_testDevice2 AT %MW4492: ARRAY [0..1, 0..1] OF DT; + END_VAR \ No newline at end of file diff --git a/silecs-codegen/src/xml/test/generated_correct/controller/Rabbit_BlockMode.h b/silecs-codegen/src/xml/test/generated_correct/controller/Rabbit_BlockMode.h index 4cf18736d2bb8c2c9ffe6fb5aaf0cef4447d2e3e..11f0be4e718fad06c3ba19db6d7a05f5e7a771e1 100644 --- a/silecs-codegen/src/xml/test/generated_correct/controller/Rabbit_BlockMode.h +++ b/silecs-codegen/src/xml/test/generated_correct/controller/Rabbit_BlockMode.h @@ -139,6 +139,28 @@ typedef struct } _AllTypes_MyWOBlock; +typedef struct +{ + int16_t C_int8[2][2]; + uint16_t C_uint8[2][2]; + int16_t C_int16[2][2]; + uint16_t C_uint16[2][2]; + int32_t C_int32[2][2]; + uint32_t C_uint32[2][2]; + float C_float32[2][2]; + uint8_t C_string[2][2][64]; + dt C_date[2][2]; + int16_t C_char[2][2]; + uint16_t C_byte[2][2]; + uint16_t C_word[2][2]; + uint32_t C_dword[2][2]; + int16_t C_int[2][2]; + int32_t C_dint[2][2]; + float C_real[2][2]; + dt C_dt[2][2]; + +} _AllTypes_MyCBlock; + /*--------------------------------------------------------------------- * MEMORY ALLOCATION * PROTOCOL: BLOCK_MODE @@ -166,6 +188,11 @@ typedef struct { _AllTypes_MyWOBlock testDevice2; } AllTypes_MyWOBlock; + struct { + _AllTypes_MyCBlock testDevice1; + _AllTypes_MyCBlock testDevice2; + } AllTypes_MyCBlock; + } _SILECS_DATA_SEGMENT; #define SILECS_DATA_SEGMENT_MODBUS_SIZE (sizeof(_SILECS_DATA_SEGMENT)/2) @@ -183,20 +210,20 @@ int SILECS_init() strcpy((unsigned char *)silecsData.data.SilecsHeader_hdrBlk.device[0]._version, "SILECS_DEV"); /* Silecs checksum initialization */ - silecsData.data.SilecsHeader_hdrBlk.device[0]._checksum = 308863231; + silecsData.data.SilecsHeader_hdrBlk.device[0]._checksum = 582399177; /* Silecs user initialization */ strcpy((unsigned char *)silecsData.data.SilecsHeader_hdrBlk.device[0]._user, "schwinn"); /* Silecs date initialization */ - SILECS_set_dt(3,3,38,16,8,6,2017,&silecsData.data.SilecsHeader_hdrBlk.device[0]._date); + SILECS_set_dt(2,39,49,10,31,1,2018,&silecsData.data.SilecsHeader_hdrBlk.device[0]._date); } /* * Automatically generated Addressing example * - * This example shows how to address the register WO_dt of block MyWOBlock + * This example shows how to address the register C_dt of block MyCBlock * of device testDevice2 of the class AllTypes * - * silecsData.AllTypes_MyWOBlock.testDevice2.WO_dt = ....; + * silecsData.AllTypes_MyCBlock.testDevice2.C_dt = ....; */ \ No newline at end of file diff --git a/silecs-codegen/src/xml/test/generated_correct/controller/Rabbit_DeviceMode.h b/silecs-codegen/src/xml/test/generated_correct/controller/Rabbit_DeviceMode.h index d0bf246979c9c32afd013e5e43a9cf7ee156e9f7..6660421af5e56aaf0fc19af8438dd3255bd9df5c 100644 --- a/silecs-codegen/src/xml/test/generated_correct/controller/Rabbit_DeviceMode.h +++ b/silecs-codegen/src/xml/test/generated_correct/controller/Rabbit_DeviceMode.h @@ -139,6 +139,28 @@ typedef struct } _AllTypes_MyWOBlock; +typedef struct +{ + int16_t C_int8[2][2]; + uint16_t C_uint8[2][2]; + int16_t C_int16[2][2]; + uint16_t C_uint16[2][2]; + int32_t C_int32[2][2]; + uint32_t C_uint32[2][2]; + float C_float32[2][2]; + uint8_t C_string[2][2][64]; + dt C_date[2][2]; + int16_t C_char[2][2]; + uint16_t C_byte[2][2]; + uint16_t C_word[2][2]; + uint32_t C_dword[2][2]; + int16_t C_int[2][2]; + int32_t C_dint[2][2]; + float C_real[2][2]; + dt C_dt[2][2]; + +} _AllTypes_MyCBlock; + /*--------------------------------------------------------------------- * MEMORY ALLOCATION * PROTOCOL: DEVICE_MODE @@ -156,6 +178,7 @@ typedef struct { _AllTypes_MyROBlock MyROBlock; _AllTypes_MyRWBlock MyRWBlock; _AllTypes_MyWOBlock MyWOBlock; + _AllTypes_MyCBlock MyCBlock; } AllTypes_testDevice1, AllTypes_testDevice2; @@ -176,20 +199,20 @@ int SILECS_init() strcpy((unsigned char *)silecsData.data.SilecsHeader_device[0].hdrBlk._version, "SILECS_DEV"); /* Silecs checksum initialization */ - silecsData.data.SilecsHeader_device[0].hdrBlk._checksum = 308863231; + silecsData.data.SilecsHeader_device[0].hdrBlk._checksum = 582399177; /* Silecs user initialization */ strcpy((unsigned char *)silecsData.data.SilecsHeader_device[0].hdrBlk._user, "schwinn"); /* Silecs date initialization */ - SILECS_set_dt(0,27,37,16,24,7,2017,&silecsData.data.SilecsHeader_device[0].hdrBlk._date); + SILECS_set_dt(2,39,49,10,31,1,2018,&silecsData.data.SilecsHeader_device[0].hdrBlk._date); } /* * Automatically generated Addressing example * - * This example shows how to address the register WO_dt of block MyWOBlock + * This example shows how to address the register C_dt of block MyCBlock * of device AllTypes_testDevice2 of the class AllTypes * - * silecsData.AllTypes_AllTypes_testDevice2.MyWOBlock.WO_dt = ....; + * silecsData.AllTypes_AllTypes_testDevice2.MyCBlock.C_dt = ....; */ \ No newline at end of file diff --git a/silecs-codegen/src/xml/test/generated_correct/controller/Schneider_M340.xsy b/silecs-codegen/src/xml/test/generated_correct/controller/Schneider_M340.xsy index 354b71b039da276fb50252fe7a4abfdbdeb1c86f..d90bebd5a816e852c8638cfd6998505e049c6370 100644 --- a/silecs-codegen/src/xml/test/generated_correct/controller/Schneider_M340.xsy +++ b/silecs-codegen/src/xml/test/generated_correct/controller/Schneider_M340.xsy @@ -5,7 +5,7 @@ <comment>SilecsHeader/SilecsHeader/hdrBlk</comment> </variables> <variables name="_checksum_a781_SilecsHeader" typeName="DWORD" topologicalAddress="%MW8"> - <variableInit value="308863231"/> + <variableInit value="582399177"/> <comment>SilecsHeader/SilecsHeader/hdrBlk</comment> </variables> <variables name="_user_a781_SilecsHeader" typeName="STRING[16]" topologicalAddress="%MW10"> @@ -13,7 +13,7 @@ <comment>SilecsHeader/SilecsHeader/hdrBlk</comment> </variables> <variables name="_date_a781_SilecsHeader" typeName="DT" topologicalAddress="%MW18"> - <variableInit value="DT#2017-6-8-16:38:3"/> + <variableInit value="DT#2018-1-31-10:49:39"/> <comment>SilecsHeader/SilecsHeader/hdrBlk</comment> </variables> <variables name="RO_int8_a583_testDevice1" typeName="WORD" topologicalAddress="%MW22"> @@ -322,5 +322,107 @@ <variables name="WO_dt_a583_testDevice2" typeName="ARRAY[0..9] OF DT" topologicalAddress="%MW1762"> <comment>AllTypes/testDevice2/MyWOBlock</comment> </variables> + <variables name="C_int8_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF WORD" topologicalAddress="%MW1802"> + <comment>AllTypes/testDevice1/MyCBlock</comment> + </variables> + <variables name="C_uint8_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF BYTE" topologicalAddress="%MW1806"> + <comment>AllTypes/testDevice1/MyCBlock</comment> + </variables> + <variables name="C_int16_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF INT" topologicalAddress="%MW1808"> + <comment>AllTypes/testDevice1/MyCBlock</comment> + </variables> + <variables name="C_uint16_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF WORD" topologicalAddress="%MW1812"> + <comment>AllTypes/testDevice1/MyCBlock</comment> + </variables> + <variables name="C_int32_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF DINT" topologicalAddress="%MW1816"> + <comment>AllTypes/testDevice1/MyCBlock</comment> + </variables> + <variables name="C_uint32_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF DWORD" topologicalAddress="%MW1824"> + <comment>AllTypes/testDevice1/MyCBlock</comment> + </variables> + <variables name="C_float32_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF REAL" topologicalAddress="%MW1832"> + <comment>AllTypes/testDevice1/MyCBlock</comment> + </variables> + <variables name="C_string_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF STRING[64]" topologicalAddress="%MW1840"> + <comment>AllTypes/testDevice1/MyCBlock</comment> + </variables> + <variables name="C_date_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF DT" topologicalAddress="%MW1968"> + <comment>AllTypes/testDevice1/MyCBlock</comment> + </variables> + <variables name="C_char_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF WORD" topologicalAddress="%MW1984"> + <comment>AllTypes/testDevice1/MyCBlock</comment> + </variables> + <variables name="C_byte_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF BYTE" topologicalAddress="%MW1988"> + <comment>AllTypes/testDevice1/MyCBlock</comment> + </variables> + <variables name="C_word_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF WORD" topologicalAddress="%MW1990"> + <comment>AllTypes/testDevice1/MyCBlock</comment> + </variables> + <variables name="C_dword_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF DWORD" topologicalAddress="%MW1994"> + <comment>AllTypes/testDevice1/MyCBlock</comment> + </variables> + <variables name="C_int_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF INT" topologicalAddress="%MW2002"> + <comment>AllTypes/testDevice1/MyCBlock</comment> + </variables> + <variables name="C_dint_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF DINT" topologicalAddress="%MW2006"> + <comment>AllTypes/testDevice1/MyCBlock</comment> + </variables> + <variables name="C_real_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF REAL" topologicalAddress="%MW2014"> + <comment>AllTypes/testDevice1/MyCBlock</comment> + </variables> + <variables name="C_dt_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF DT" topologicalAddress="%MW2022"> + <comment>AllTypes/testDevice1/MyCBlock</comment> + </variables> + <variables name="C_int8_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF WORD" topologicalAddress="%MW2038"> + <comment>AllTypes/testDevice2/MyCBlock</comment> + </variables> + <variables name="C_uint8_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF BYTE" topologicalAddress="%MW2042"> + <comment>AllTypes/testDevice2/MyCBlock</comment> + </variables> + <variables name="C_int16_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF INT" topologicalAddress="%MW2044"> + <comment>AllTypes/testDevice2/MyCBlock</comment> + </variables> + <variables name="C_uint16_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF WORD" topologicalAddress="%MW2048"> + <comment>AllTypes/testDevice2/MyCBlock</comment> + </variables> + <variables name="C_int32_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF DINT" topologicalAddress="%MW2052"> + <comment>AllTypes/testDevice2/MyCBlock</comment> + </variables> + <variables name="C_uint32_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF DWORD" topologicalAddress="%MW2060"> + <comment>AllTypes/testDevice2/MyCBlock</comment> + </variables> + <variables name="C_float32_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF REAL" topologicalAddress="%MW2068"> + <comment>AllTypes/testDevice2/MyCBlock</comment> + </variables> + <variables name="C_string_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF STRING[64]" topologicalAddress="%MW2076"> + <comment>AllTypes/testDevice2/MyCBlock</comment> + </variables> + <variables name="C_date_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF DT" topologicalAddress="%MW2204"> + <comment>AllTypes/testDevice2/MyCBlock</comment> + </variables> + <variables name="C_char_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF WORD" topologicalAddress="%MW2220"> + <comment>AllTypes/testDevice2/MyCBlock</comment> + </variables> + <variables name="C_byte_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF BYTE" topologicalAddress="%MW2224"> + <comment>AllTypes/testDevice2/MyCBlock</comment> + </variables> + <variables name="C_word_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF WORD" topologicalAddress="%MW2226"> + <comment>AllTypes/testDevice2/MyCBlock</comment> + </variables> + <variables name="C_dword_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF DWORD" topologicalAddress="%MW2230"> + <comment>AllTypes/testDevice2/MyCBlock</comment> + </variables> + <variables name="C_int_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF INT" topologicalAddress="%MW2238"> + <comment>AllTypes/testDevice2/MyCBlock</comment> + </variables> + <variables name="C_dint_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF DINT" topologicalAddress="%MW2242"> + <comment>AllTypes/testDevice2/MyCBlock</comment> + </variables> + <variables name="C_real_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF REAL" topologicalAddress="%MW2250"> + <comment>AllTypes/testDevice2/MyCBlock</comment> + </variables> + <variables name="C_dt_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF DT" topologicalAddress="%MW2258"> + <comment>AllTypes/testDevice2/MyCBlock</comment> + </variables> </dataBlock> </VariablesExchangeFile> \ No newline at end of file diff --git a/silecs-codegen/src/xml/test/generated_correct/controller/Schneider_PremiumQuantum.xsy b/silecs-codegen/src/xml/test/generated_correct/controller/Schneider_PremiumQuantum.xsy index 724ac1040422d4352f637eb1721396fd64f9953d..9a513184edd4e2fb6947151dcd4222d639725332 100644 --- a/silecs-codegen/src/xml/test/generated_correct/controller/Schneider_PremiumQuantum.xsy +++ b/silecs-codegen/src/xml/test/generated_correct/controller/Schneider_PremiumQuantum.xsy @@ -5,7 +5,7 @@ <comment>SilecsHeader/SilecsHeader/hdrBlk</comment> </variables> <variables name="_checksum_a781_SilecsHeader" typeName="DWORD" topologicalAddress="%MW8"> - <variableInit value="308863231"/> + <variableInit value="582399177"/> <comment>SilecsHeader/SilecsHeader/hdrBlk</comment> </variables> <variables name="_user_a781_SilecsHeader" typeName="STRING[16]" topologicalAddress="%MW10"> @@ -13,7 +13,7 @@ <comment>SilecsHeader/SilecsHeader/hdrBlk</comment> </variables> <variables name="_date_a781_SilecsHeader" typeName="DT" topologicalAddress="%MW18"> - <variableInit value="DT#2017-6-8-16:38:3"/> + <variableInit value="DT#2018-1-31-10:49:39"/> <comment>SilecsHeader/SilecsHeader/hdrBlk</comment> </variables> <variables name="RO_int8_a583_testDevice1" typeName="WORD" topologicalAddress="%MW22"> @@ -322,5 +322,107 @@ <variables name="WO_dt_a583_testDevice2" typeName="ARRAY[0..9] OF DT" topologicalAddress="%MW1754"> <comment>AllTypes/testDevice2/MyWOBlock</comment> </variables> + <variables name="C_int8_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF WORD" topologicalAddress="%MW1794"> + <comment>AllTypes/testDevice1/MyCBlock</comment> + </variables> + <variables name="C_uint8_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF BYTE" topologicalAddress="%MW1798"> + <comment>AllTypes/testDevice1/MyCBlock</comment> + </variables> + <variables name="C_int16_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF INT" topologicalAddress="%MW1800"> + <comment>AllTypes/testDevice1/MyCBlock</comment> + </variables> + <variables name="C_uint16_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF WORD" topologicalAddress="%MW1804"> + <comment>AllTypes/testDevice1/MyCBlock</comment> + </variables> + <variables name="C_int32_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF DINT" topologicalAddress="%MW1808"> + <comment>AllTypes/testDevice1/MyCBlock</comment> + </variables> + <variables name="C_uint32_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF DWORD" topologicalAddress="%MW1816"> + <comment>AllTypes/testDevice1/MyCBlock</comment> + </variables> + <variables name="C_float32_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF REAL" topologicalAddress="%MW1824"> + <comment>AllTypes/testDevice1/MyCBlock</comment> + </variables> + <variables name="C_string_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF STRING[64]" topologicalAddress="%MW1832"> + <comment>AllTypes/testDevice1/MyCBlock</comment> + </variables> + <variables name="C_date_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF DT" topologicalAddress="%MW1960"> + <comment>AllTypes/testDevice1/MyCBlock</comment> + </variables> + <variables name="C_char_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF WORD" topologicalAddress="%MW1976"> + <comment>AllTypes/testDevice1/MyCBlock</comment> + </variables> + <variables name="C_byte_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF BYTE" topologicalAddress="%MW1980"> + <comment>AllTypes/testDevice1/MyCBlock</comment> + </variables> + <variables name="C_word_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF WORD" topologicalAddress="%MW1982"> + <comment>AllTypes/testDevice1/MyCBlock</comment> + </variables> + <variables name="C_dword_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF DWORD" topologicalAddress="%MW1986"> + <comment>AllTypes/testDevice1/MyCBlock</comment> + </variables> + <variables name="C_int_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF INT" topologicalAddress="%MW1994"> + <comment>AllTypes/testDevice1/MyCBlock</comment> + </variables> + <variables name="C_dint_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF DINT" topologicalAddress="%MW1998"> + <comment>AllTypes/testDevice1/MyCBlock</comment> + </variables> + <variables name="C_real_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF REAL" topologicalAddress="%MW2006"> + <comment>AllTypes/testDevice1/MyCBlock</comment> + </variables> + <variables name="C_dt_a583_testDevice1" typeName="ARRAY[0..1, 0..1] OF DT" topologicalAddress="%MW2014"> + <comment>AllTypes/testDevice1/MyCBlock</comment> + </variables> + <variables name="C_int8_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF WORD" topologicalAddress="%MW2030"> + <comment>AllTypes/testDevice2/MyCBlock</comment> + </variables> + <variables name="C_uint8_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF BYTE" topologicalAddress="%MW2034"> + <comment>AllTypes/testDevice2/MyCBlock</comment> + </variables> + <variables name="C_int16_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF INT" topologicalAddress="%MW2036"> + <comment>AllTypes/testDevice2/MyCBlock</comment> + </variables> + <variables name="C_uint16_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF WORD" topologicalAddress="%MW2040"> + <comment>AllTypes/testDevice2/MyCBlock</comment> + </variables> + <variables name="C_int32_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF DINT" topologicalAddress="%MW2044"> + <comment>AllTypes/testDevice2/MyCBlock</comment> + </variables> + <variables name="C_uint32_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF DWORD" topologicalAddress="%MW2052"> + <comment>AllTypes/testDevice2/MyCBlock</comment> + </variables> + <variables name="C_float32_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF REAL" topologicalAddress="%MW2060"> + <comment>AllTypes/testDevice2/MyCBlock</comment> + </variables> + <variables name="C_string_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF STRING[64]" topologicalAddress="%MW2068"> + <comment>AllTypes/testDevice2/MyCBlock</comment> + </variables> + <variables name="C_date_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF DT" topologicalAddress="%MW2196"> + <comment>AllTypes/testDevice2/MyCBlock</comment> + </variables> + <variables name="C_char_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF WORD" topologicalAddress="%MW2212"> + <comment>AllTypes/testDevice2/MyCBlock</comment> + </variables> + <variables name="C_byte_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF BYTE" topologicalAddress="%MW2216"> + <comment>AllTypes/testDevice2/MyCBlock</comment> + </variables> + <variables name="C_word_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF WORD" topologicalAddress="%MW2218"> + <comment>AllTypes/testDevice2/MyCBlock</comment> + </variables> + <variables name="C_dword_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF DWORD" topologicalAddress="%MW2222"> + <comment>AllTypes/testDevice2/MyCBlock</comment> + </variables> + <variables name="C_int_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF INT" topologicalAddress="%MW2230"> + <comment>AllTypes/testDevice2/MyCBlock</comment> + </variables> + <variables name="C_dint_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF DINT" topologicalAddress="%MW2234"> + <comment>AllTypes/testDevice2/MyCBlock</comment> + </variables> + <variables name="C_real_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF REAL" topologicalAddress="%MW2242"> + <comment>AllTypes/testDevice2/MyCBlock</comment> + </variables> + <variables name="C_dt_a583_testDevice2" typeName="ARRAY[0..1, 0..1] OF DT" topologicalAddress="%MW2250"> + <comment>AllTypes/testDevice2/MyCBlock</comment> + </variables> </dataBlock> </VariablesExchangeFile> \ No newline at end of file diff --git a/silecs-codegen/src/xml/test/generated_correct/controller/Siemens_Step7Block.scl b/silecs-codegen/src/xml/test/generated_correct/controller/Siemens_Step7Block.scl index 06581fa9b7271f16f179d6b1be607607a66cac27..718641684885d5845a6653b0a840cef0a7fe91fe 100644 --- a/silecs-codegen/src/xml/test/generated_correct/controller/Siemens_Step7Block.scl +++ b/silecs-codegen/src/xml/test/generated_correct/controller/Siemens_Step7Block.scl @@ -10,9 +10,9 @@ FAMILY: SILECS NAME: UDTB STRUCT _version: STRING[16] := 'SILECS_DEV'; - _checksum: DWORD := DW#16#1268e0ff; + _checksum: DWORD := DW#16#22b6b4c9; _user: STRING[16] := 'schwinn'; - _date: DT := DT#2017-10-9-13:25:3; + _date: DT := DT#2018-1-31-10:49:39; END_STRUCT; END_TYPE @@ -120,6 +120,32 @@ NAME: UDTB END_STRUCT; END_TYPE +TYPE _AllTypes_MyCBlock +AUTHOR: schwinn +FAMILY: SILECS +NAME: UDTB + STRUCT + C_int8: ARRAY[0..1, 0..1] OF CHAR; + C_uint8: ARRAY[0..1, 0..1] OF BYTE; + C_int16: ARRAY[0..1, 0..1] OF INT; + C_uint16: ARRAY[0..1, 0..1] OF WORD; + C_int32: ARRAY[0..1, 0..1] OF DINT; + C_uint32: ARRAY[0..1, 0..1] OF DWORD; + C_float32: ARRAY[0..1, 0..1] OF REAL; + C_string: ARRAY[0..1, 0..1] OF STRING[64]; + C_date: ARRAY[0..1, 0..1] OF DT; + C_char: ARRAY[0..1, 0..1] OF CHAR; + C_byte: ARRAY[0..1, 0..1] OF BYTE; + C_word: ARRAY[0..1, 0..1] OF WORD; + C_dword: ARRAY[0..1, 0..1] OF DWORD; + C_int: ARRAY[0..1, 0..1] OF INT; + C_dint: ARRAY[0..1, 0..1] OF DINT; + C_real: ARRAY[0..1, 0..1] OF REAL; + C_dt: ARRAY[0..1, 0..1] OF DT; + + END_STRUCT; +END_TYPE + (* --------------------------------------------------------------------- * AllTypes/ v0.1.0 @@ -136,6 +162,7 @@ STRUCT MyROBlock: _AllTypes_MyROBlock; MyRWBlock: _AllTypes_MyRWBlock; MyWOBlock: _AllTypes_MyWOBlock; + MyCBlock: _AllTypes_MyCBlock; END_STRUCT; BEGIN @@ -151,6 +178,7 @@ STRUCT MyROBlock: _AllTypes_MyROBlock; MyRWBlock: _AllTypes_MyRWBlock; MyWOBlock: _AllTypes_MyWOBlock; + MyCBlock: _AllTypes_MyCBlock; END_STRUCT; BEGIN diff --git a/silecs-codegen/src/xml/test/generated_correct/controller/Siemens_Step7Block.sdf b/silecs-codegen/src/xml/test/generated_correct/controller/Siemens_Step7Block.sdf index e5d2ddb66c2635a199c7f174cfbfd46beccb8ef8..36bf71bf96f71b37fd32e41ba46a2aa36f88d2e5 100644 --- a/silecs-codegen/src/xml/test/generated_correct/controller/Siemens_Step7Block.sdf +++ b/silecs-codegen/src/xml/test/generated_correct/controller/Siemens_Step7Block.sdf @@ -3,5 +3,6 @@ "_AllTypes_MyROBlock","UDT 1","UDT 1","[AllTypes/0.1.0] UDT symbol: _<class-name>_<block-name>" "_AllTypes_MyRWBlock","UDT 2","UDT 2","" "_AllTypes_MyWOBlock","UDT 3","UDT 3","" +"_AllTypes_MyCBlock","UDT 4","UDT 4","" "AllTypes_testDevice1","DB 1","DB 1","[AllTypes/0.1.0] DB symbol: <class-name>_<device-label | device-id>" "AllTypes_testDevice2","DB 2","DB 2","" diff --git a/silecs-codegen/src/xml/test/generated_correct/controller/Siemens_Step7Device.scl b/silecs-codegen/src/xml/test/generated_correct/controller/Siemens_Step7Device.scl index 4e5bba84e305df584059134c37e68813617f30c5..439b2cf69d2ae881c5a372727bd3d517ea374ae7 100644 --- a/silecs-codegen/src/xml/test/generated_correct/controller/Siemens_Step7Device.scl +++ b/silecs-codegen/src/xml/test/generated_correct/controller/Siemens_Step7Device.scl @@ -10,9 +10,9 @@ FAMILY: SILECS NAME: UDTB STRUCT _version: STRING[16] := 'SILECS_DEV'; - _checksum: DWORD := DW#16#1268e0ff; + _checksum: DWORD := DW#16#22b6b4c9; _user: STRING[16] := 'schwinn'; - _date: DT := DT#2017-10-9-13:25:3; + _date: DT := DT#2018-1-31-10:49:39; END_STRUCT; END_TYPE @@ -120,6 +120,32 @@ NAME: UDTB END_STRUCT; END_TYPE +TYPE _AllTypes_MyCBlock +AUTHOR: schwinn +FAMILY: SILECS +NAME: UDTB + STRUCT + C_int8: ARRAY[0..1, 0..1] OF CHAR; + C_uint8: ARRAY[0..1, 0..1] OF BYTE; + C_int16: ARRAY[0..1, 0..1] OF INT; + C_uint16: ARRAY[0..1, 0..1] OF WORD; + C_int32: ARRAY[0..1, 0..1] OF DINT; + C_uint32: ARRAY[0..1, 0..1] OF DWORD; + C_float32: ARRAY[0..1, 0..1] OF REAL; + C_string: ARRAY[0..1, 0..1] OF STRING[64]; + C_date: ARRAY[0..1, 0..1] OF DT; + C_char: ARRAY[0..1, 0..1] OF CHAR; + C_byte: ARRAY[0..1, 0..1] OF BYTE; + C_word: ARRAY[0..1, 0..1] OF WORD; + C_dword: ARRAY[0..1, 0..1] OF DWORD; + C_int: ARRAY[0..1, 0..1] OF INT; + C_dint: ARRAY[0..1, 0..1] OF DINT; + C_real: ARRAY[0..1, 0..1] OF REAL; + C_dt: ARRAY[0..1, 0..1] OF DT; + + END_STRUCT; +END_TYPE + (* --------------------------------------------------------------------- * AllTypes/ v0.1.0 @@ -168,3 +194,17 @@ END_STRUCT; BEGIN END_DATA_BLOCK +(* AllTypes_MyCBlock ...........................................*) +DATA_BLOCK DB4 +{ S7_Optimized_Access := 'FALSE' } +AUTHOR: schwinn +FAMILY: SILECS +NAME: BLK_MODE +STRUCT + testDevice1: _AllTypes_MyCBlock; + testDevice2: _AllTypes_MyCBlock; + +END_STRUCT; +BEGIN +END_DATA_BLOCK + diff --git a/silecs-codegen/src/xml/test/generated_correct/controller/Siemens_Step7Device.sdf b/silecs-codegen/src/xml/test/generated_correct/controller/Siemens_Step7Device.sdf index 29a5f5851a5e2e6dea4c19a034b129e1333190e5..fe712efd2b872e3c587fae577a389ffc3b0d3fe4 100644 --- a/silecs-codegen/src/xml/test/generated_correct/controller/Siemens_Step7Device.sdf +++ b/silecs-codegen/src/xml/test/generated_correct/controller/Siemens_Step7Device.sdf @@ -3,6 +3,8 @@ "_AllTypes_MyROBlock","UDT 1","UDT 1","[AllTypes/0.1.0] UDT symbol: _<class-name>_<block-name>" "_AllTypes_MyRWBlock","UDT 2","UDT 2","" "_AllTypes_MyWOBlock","UDT 3","UDT 3","" +"_AllTypes_MyCBlock","UDT 4","UDT 4","" "AllTypes_MyROBlock","DB 1","DB 1","[AllTypes/0.1.0] DB symbol: <class-name>_<block-name>" "AllTypes_MyRWBlock","DB 2","DB 2","" "AllTypes_MyWOBlock","DB 3","DB 3","" +"AllTypes_MyCBlock","DB 4","DB 4","" diff --git a/silecs-codegen/src/xml/test/generated_correct/controller/Siemens_TiaBlock.scl b/silecs-codegen/src/xml/test/generated_correct/controller/Siemens_TiaBlock.scl index 8ec8c41e85880ee311b494c1e42f2dd06095278e..b70e773c926b030aed70c4d4f39394c5e5bd93bf 100644 --- a/silecs-codegen/src/xml/test/generated_correct/controller/Siemens_TiaBlock.scl +++ b/silecs-codegen/src/xml/test/generated_correct/controller/Siemens_TiaBlock.scl @@ -10,9 +10,9 @@ FAMILY: SILECS NAME: UDTB STRUCT _version: STRING[16] := 'SILECS_DEV'; - _checksum: DWORD := DW#16#1268e0ff; + _checksum: DWORD := DW#16#22b6b4c9; _user: STRING[16] := 'schwinn'; - _date: DT := DT#2017-10-9-13:25:3; + _date: DT := DT#2018-1-31-10:49:39; END_STRUCT; END_TYPE @@ -119,6 +119,32 @@ NAME: UDTB END_STRUCT; END_TYPE +TYPE _AllTypes_MyCBlock +AUTHOR: schwinn +FAMILY: SILECS +NAME: UDTB + STRUCT + C_int8: ARRAY[0..1, 0..1] OF CHAR; + C_uint8: ARRAY[0..1, 0..1] OF BYTE; + C_int16: ARRAY[0..1, 0..1] OF INT; + C_uint16: ARRAY[0..1, 0..1] OF WORD; + C_int32: ARRAY[0..1, 0..1] OF DINT; + C_uint32: ARRAY[0..1, 0..1] OF DWORD; + C_float32: ARRAY[0..1, 0..1] OF REAL; + C_string: ARRAY[0..1, 0..1] OF STRING[64]; + C_date: ARRAY[0..1, 0..1] OF DT; + C_char: ARRAY[0..1, 0..1] OF CHAR; + C_byte: ARRAY[0..1, 0..1] OF BYTE; + C_word: ARRAY[0..1, 0..1] OF WORD; + C_dword: ARRAY[0..1, 0..1] OF DWORD; + C_int: ARRAY[0..1, 0..1] OF INT; + C_dint: ARRAY[0..1, 0..1] OF DINT; + C_real: ARRAY[0..1, 0..1] OF REAL; + C_dt: ARRAY[0..1, 0..1] OF DT; + + END_STRUCT; +END_TYPE + (* --------------------------------------------------------------------- * AllTypes/ v0.1.0 @@ -164,3 +190,16 @@ END_STRUCT; BEGIN END_DATA_BLOCK +DATA_BLOCK AllTypes_MyCBlock +{ S7_Optimized_Access := 'FALSE' } +AUTHOR: schwinn +FAMILY: SILECS +NAME: BLK_MODE +STRUCT + testDevice1: _AllTypes_MyCBlock; + testDevice2: _AllTypes_MyCBlock; + +END_STRUCT; +BEGIN +END_DATA_BLOCK + diff --git a/silecs-codegen/src/xml/test/generated_correct/controller/Siemens_TiaBlock.sdf b/silecs-codegen/src/xml/test/generated_correct/controller/Siemens_TiaBlock.sdf index 29a5f5851a5e2e6dea4c19a034b129e1333190e5..fe712efd2b872e3c587fae577a389ffc3b0d3fe4 100644 --- a/silecs-codegen/src/xml/test/generated_correct/controller/Siemens_TiaBlock.sdf +++ b/silecs-codegen/src/xml/test/generated_correct/controller/Siemens_TiaBlock.sdf @@ -3,6 +3,8 @@ "_AllTypes_MyROBlock","UDT 1","UDT 1","[AllTypes/0.1.0] UDT symbol: _<class-name>_<block-name>" "_AllTypes_MyRWBlock","UDT 2","UDT 2","" "_AllTypes_MyWOBlock","UDT 3","UDT 3","" +"_AllTypes_MyCBlock","UDT 4","UDT 4","" "AllTypes_MyROBlock","DB 1","DB 1","[AllTypes/0.1.0] DB symbol: <class-name>_<block-name>" "AllTypes_MyRWBlock","DB 2","DB 2","" "AllTypes_MyWOBlock","DB 3","DB 3","" +"AllTypes_MyCBlock","DB 4","DB 4","" diff --git a/silecs-codegen/src/xml/test/generated_correct/controller/Siemens_TiaDevice.scl b/silecs-codegen/src/xml/test/generated_correct/controller/Siemens_TiaDevice.scl index 0c63e18840ae937b2570a795f1e43eadac554304..57a2d8fe89666c34b58200e6fafba23f82dac71d 100644 --- a/silecs-codegen/src/xml/test/generated_correct/controller/Siemens_TiaDevice.scl +++ b/silecs-codegen/src/xml/test/generated_correct/controller/Siemens_TiaDevice.scl @@ -10,9 +10,9 @@ FAMILY: SILECS NAME: UDTB STRUCT _version: STRING[16] := 'SILECS_DEV'; - _checksum: DWORD := DW#16#1268e0ff; + _checksum: DWORD := DW#16#22b6b4c9; _user: STRING[16] := 'schwinn'; - _date: DT := DT#2017-10-9-13:25:2; + _date: DT := DT#2018-1-31-10:49:39; END_STRUCT; END_TYPE @@ -119,6 +119,32 @@ NAME: UDTB END_STRUCT; END_TYPE +TYPE _AllTypes_MyCBlock +AUTHOR: schwinn +FAMILY: SILECS +NAME: UDTB + STRUCT + C_int8: ARRAY[0..1, 0..1] OF CHAR; + C_uint8: ARRAY[0..1, 0..1] OF BYTE; + C_int16: ARRAY[0..1, 0..1] OF INT; + C_uint16: ARRAY[0..1, 0..1] OF WORD; + C_int32: ARRAY[0..1, 0..1] OF DINT; + C_uint32: ARRAY[0..1, 0..1] OF DWORD; + C_float32: ARRAY[0..1, 0..1] OF REAL; + C_string: ARRAY[0..1, 0..1] OF STRING[64]; + C_date: ARRAY[0..1, 0..1] OF DT; + C_char: ARRAY[0..1, 0..1] OF CHAR; + C_byte: ARRAY[0..1, 0..1] OF BYTE; + C_word: ARRAY[0..1, 0..1] OF WORD; + C_dword: ARRAY[0..1, 0..1] OF DWORD; + C_int: ARRAY[0..1, 0..1] OF INT; + C_dint: ARRAY[0..1, 0..1] OF DINT; + C_real: ARRAY[0..1, 0..1] OF REAL; + C_dt: ARRAY[0..1, 0..1] OF DT; + + END_STRUCT; +END_TYPE + (* --------------------------------------------------------------------- * AllTypes/ v0.1.0 @@ -134,6 +160,7 @@ STRUCT MyROBlock: _AllTypes_MyROBlock; MyRWBlock: _AllTypes_MyRWBlock; MyWOBlock: _AllTypes_MyWOBlock; + MyCBlock: _AllTypes_MyCBlock; END_STRUCT; BEGIN @@ -148,6 +175,7 @@ STRUCT MyROBlock: _AllTypes_MyROBlock; MyRWBlock: _AllTypes_MyRWBlock; MyWOBlock: _AllTypes_MyWOBlock; + MyCBlock: _AllTypes_MyCBlock; END_STRUCT; BEGIN diff --git a/silecs-codegen/src/xml/test/generated_correct/controller/Siemens_TiaDevice.sdf b/silecs-codegen/src/xml/test/generated_correct/controller/Siemens_TiaDevice.sdf index e5d2ddb66c2635a199c7f174cfbfd46beccb8ef8..36bf71bf96f71b37fd32e41ba46a2aa36f88d2e5 100644 --- a/silecs-codegen/src/xml/test/generated_correct/controller/Siemens_TiaDevice.sdf +++ b/silecs-codegen/src/xml/test/generated_correct/controller/Siemens_TiaDevice.sdf @@ -3,5 +3,6 @@ "_AllTypes_MyROBlock","UDT 1","UDT 1","[AllTypes/0.1.0] UDT symbol: _<class-name>_<block-name>" "_AllTypes_MyRWBlock","UDT 2","UDT 2","" "_AllTypes_MyWOBlock","UDT 3","UDT 3","" +"_AllTypes_MyCBlock","UDT 4","UDT 4","" "AllTypes_testDevice1","DB 1","DB 1","[AllTypes/0.1.0] DB symbol: <class-name>_<device-label | device-id>" "AllTypes_testDevice2","DB 2","DB 2","" diff --git a/silecs-codegen/src/xml/test/generated_correct/controller/SilecsHeader_1.0.0.h b/silecs-codegen/src/xml/test/generated_correct/controller/SilecsHeader_1.0.0.h index 3449b46362d02fe17c48fc5c06133252c6ea2daf..4c5b0f60076d41a1dd273ab678d84fd67f6b25d5 100644 --- a/silecs-codegen/src/xml/test/generated_correct/controller/SilecsHeader_1.0.0.h +++ b/silecs-codegen/src/xml/test/generated_correct/controller/SilecsHeader_1.0.0.h @@ -30,7 +30,7 @@ public: HdrBlk() : SilecsServer::Block("SilecsHeader:hdrBlk") { set_version("DEV"); - set_checksum(0XFFE06812); + set_checksum(0XC9B4B622); set_user("schwinn"); set_date(0.0); }