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 eb9a60460cdf1c3c634b83c2dd72941b2886d6f4..0759257d8242c54c3ea3dd9a281c9c48b60cddfb 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 @@ -258,8 +258,8 @@ class FESADesignGenerator3_0_0(object): self.getOrCreateRegisterValueItems(prop,block,True) self.getOrCreateUpdateFlagItem(prop) self.getOrCreateCyleNameItem(prop) - self.getOrCreateAction(prop,'Set'+block.getFesaName(),'set',actionsNode,'custom') - self.getOrCreateAction(prop,'Get'+block.getFesaName(),'get',actionsNode,'custom') + self.getOrCreateAction(prop,block.fesaSetServerActionName,'set',actionsNode,'custom') + self.getOrCreateAction(prop,block.fesaGetServerActionName,'get',actionsNode,'custom') return prop def getOrCreateAcquisitionProperty(self,parent,actionsNode,block): @@ -275,7 +275,7 @@ class FESADesignGenerator3_0_0(object): self.getOrCreateUpdateFlagItem(prop) self.getOrCreateCyleNameItem(prop) self.getOrCreateCyleStampItem(prop) - self.getOrCreateAction(prop,'Get'+block.getFesaName(),'get',actionsNode,'custom') + self.getOrCreateAction(prop,block.fesaGetServerActionName,'get',actionsNode,'custom') return prop @@ -287,8 +287,8 @@ class FESADesignGenerator3_0_0(object): self.getOrCreateRegisterValueItems(prop,block,True) self.getOrCreateUpdateFlagItem(prop) self.getOrCreateCyleNameItem(prop) - self.getOrCreateAction(prop,'Set'+block.getFesaName(),'set',actionsNode,'custom') - self.getOrCreateAction(prop,'Get'+block.getFesaName(),'get',actionsNode,'custom') + self.getOrCreateAction(prop,block.fesaSetServerActionName,'set',actionsNode,'custom') + self.getOrCreateAction(prop,block.fesaGetServerActionName,'get',actionsNode,'custom') return prop def getOrCreateGSIAcquisitionProperty(self,parent,actionsNode,block): @@ -301,7 +301,7 @@ class FESADesignGenerator3_0_0(object): self.getOrCreateUpdateFlagItem(prop) self.getOrCreateCyleNameItem(prop) self.getOrCreateCyleStampItem(prop) - self.getOrCreateAction(prop,'Get'+block.getFesaName(),'get',actionsNode,'custom') + self.getOrCreateAction(prop,block.fesaGetServerActionName,'get',actionsNode,'custom') self.getOrCreateAcquisitionContextItem(prop) return prop 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 e3de017449a3b226d201fc2edaa0373816f52425..e05e54fad387391feba6a7b66d31bc35cad13fe7 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 @@ -35,11 +35,11 @@ from model.Block import DesignBlock from model.Class import DesignClass import libxml2 -def findBlockServerSetActionName(fesaRoot, blockName): - properties = fesaRoot.xpathEval("/equipment-model/interface/device-interface/*/*[@name='" + blockName + "']") +def findBlockServerSetActionName(fesaRoot, propName): + properties = fesaRoot.xpathEval("/equipment-model/interface/device-interface/*/*[@name='" + propName + "']") for property in properties: return property.xpathEval("set-action/server-action-ref")[0].prop("server-action-name-ref") - raise Exception("Error: Server Action for Block '" + blockName + "' not found") + raise Exception("Error: Server Action for Property '" + propName + "' not found") #------------------------------------------------------------------------- # Generates the H source file containing general methods diff --git a/silecs-codegen/src/xml/model/Block.py b/silecs-codegen/src/xml/model/Block.py index fa969e05f392c2556245145398baab4122c3dc88..45ed1f6e2ae83450c022db9e6d3097222464c24a 100644 --- a/silecs-codegen/src/xml/model/Block.py +++ b/silecs-codegen/src/xml/model/Block.py @@ -99,15 +99,32 @@ class ParamBlock(Block): class DesignBlock(Block): + generateFesaProperty = False + fesaPropertyName = "" + fesaGetServerActionName = "" + fesaSetServerActionName = "" + def __init__(self, xmlNode): super(DesignBlock, self).__init__(xmlNode) - self.fesaPropertyName = self.name - self.generateFesaProperty = False + if self.xmlNode.hasProp("fesaPropertyName"): self.fesaPropertyName = xmlNode.prop("fesaPropertyName") + else: + self.fesaPropertyName = self.name + if self.xmlNode.hasProp("generateFesaProperty"): #SilecsHEader does not have this attribute self.generateFesaProperty = xsdBooleanToBoolean(xmlNode.prop("generateFesaProperty")) - + + if self.xmlNode.hasProp("fesaGetServerActionName"): + self.fesaGetServerActionName = xmlNode.prop("fesaGetServerActionName") + else: + self.fesaGetServerActionName = 'Get' + self.fesaPropertyName + + if self.xmlNode.hasProp("fesaSetServerActionName"): + self.fesaSetServerActionName = xmlNode.prop("fesaSetServerActionName") + else: + self.fesaSetServerActionName = 'Set' + self.fesaPropertyName + def getFesaName(self): return self.fesaPropertyName diff --git a/silecs-codegen/src/xml/test/generated_correct/AllTypes.h b/silecs-codegen/src/xml/test/generated_correct/AllTypes.h index 544c28a1a89382f24fd64cc1a68d6bdd4c71b0a9..af3396c92c66a419d80af6d9088f5c955bf687f9 100644 --- a/silecs-codegen/src/xml/test/generated_correct/AllTypes.h +++ b/silecs-codegen/src/xml/test/generated_correct/AllTypes.h @@ -10,8 +10,8 @@ #include <SilecsService.h> #include <fesa-core/Synchronization/MultiplexingContext.h> #include <AllTypes/GeneratedCode/ServiceLocator.h> -#include <AllTypes/Server/SendMyRWBlockProp.h> -#include <AllTypes/Server/SendMyWOBlockProp.h> +#include <AllTypes/Server/SetMyRWBlockProp.h> +#include <AllTypes/Server/SetMyWOBlockProp.h> namespace AllTypes {