diff --git a/silecs-cli-client/src/silecs-cli-client/main.cpp b/silecs-cli-client/src/silecs-cli-client/main.cpp index bd713ad09c23ae79f2a5f1b574f0552325373675..f63b4de88b12ec239202c7c8f383c8498c0dcbc2 100755 --- a/silecs-cli-client/src/silecs-cli-client/main.cpp +++ b/silecs-cli-client/src/silecs-cli-client/main.cpp @@ -157,13 +157,13 @@ Silecs::Cluster* getSilecsClusterbyDevice(std::string deviceName, Silecs::XMLPar std::string getSilecsBlockNamebyRegisterName(std::string registerName, Silecs::XMLParser ¶mParser) { - Silecs::ElementXML blockNode = paramParser.getFirstElementFromXPath("/SILECS-Param/SILECS-Mapping/SILECS-Class/Block[Register/@name='"+ registerName + "']"); + Silecs::ElementXML blockNode = paramParser.getFirstElementFromXPath("/SILECS-Param/SILECS-Mapping/SILECS-Class/*[*/@name='"+ registerName + "']"); return blockNode.getAttribute("name"); } bool isRegisterInBlock(std::string registerName, std::string blockName, Silecs::XMLParser ¶mParser) { - Silecs::ElementXML blockNode = paramParser.getFirstElementFromXPath("/SILECS-Param/SILECS-Mapping/SILECS-Class/Block[Register/@name='"+ registerName + "']"); + Silecs::ElementXML blockNode = paramParser.getFirstElementFromXPath("/SILECS-Param/SILECS-Mapping/SILECS-Class/*[*/@name='"+ registerName + "']"); if( blockName == blockNode.getAttribute("name")) return true; return false; @@ -186,7 +186,7 @@ std::vector<std::string> getBlockNamesFromDeviceName(std::string deviceName, Si std::vector< std::string > blockNames; Silecs::ElementXML classNode = paramParser.getFirstElementFromXPath("/SILECS-Param/SILECS-Mapping/SILECS-Class[Instance/@label='"+ deviceName + "']"); std::string className = classNode.getAttribute("name"); - boost::ptr_vector<Silecs::ElementXML> blocks = paramParser.getElementsFromXPath_throwIfEmpty("/SILECS-Param/SILECS-Mapping/SILECS-Class[@name='"+ className + "']/Block"); + boost::ptr_vector<Silecs::ElementXML> blocks = paramParser.getElementsFromXPath_throwIfEmpty("/SILECS-Param/SILECS-Mapping/SILECS-Class[@name='"+ className + "']/*[ name()='Acquisition-Block' or name()='Setting-Block' or name()='Command-Block']"); boost::ptr_vector<Silecs::ElementXML>::iterator block; for( block = blocks.begin();block!= blocks.end(); block++) { @@ -201,7 +201,7 @@ std::vector<std::string> getRegisterNamesFromDeviceBlockName(std::string deviceN std::vector< std::string > registerNames; Silecs::ElementXML classNode = paramParser.getFirstElementFromXPath("/SILECS-Param/SILECS-Mapping/SILECS-Class[Instance/@label='"+ deviceName + "']"); std::string className = classNode.getAttribute("name"); - boost::ptr_vector<Silecs::ElementXML> registerNodes = paramParser.getElementsFromXPath_throwIfEmpty("/SILECS-Param/SILECS-Mapping/SILECS-Class[@name='"+ className + "']/Block[@name='"+ blockName + "']/Register"); + boost::ptr_vector<Silecs::ElementXML> registerNodes = paramParser.getElementsFromXPath_throwIfEmpty("/SILECS-Param/SILECS-Mapping/SILECS-Class[@name='"+ className + "']/*[@name='"+ blockName + "']/*[ name()='Acquisition-Register' or name()='Setting-Register' or name()='Volatile-Register']"); boost::ptr_vector<Silecs::ElementXML>::iterator registerNode; for( registerNode = registerNodes.begin();registerNode!= registerNodes.end(); registerNode++) {