diff -r 9dc0e38552b2 -r 6162e34fb246 PLCControler.py --- a/PLCControler.py Sat Feb 17 23:58:47 2018 +0100 +++ b/PLCControler.py Sun Feb 18 21:30:48 2018 +0100 @@ -38,6 +38,8 @@ import util.paths as paths from util.TranslationCatalogs import NoTranslate from plcopen import * +from plcopen.types_enums import * +from plcopen.XSLTModelQuery import _StringValue, _BoolValue, _translate_args from plcopen.InstancesPathCollector import InstancesPathCollector from plcopen.POUVariablesCollector import POUVariablesCollector from graphics.GraphicCommons import * @@ -45,77 +47,8 @@ duration_model = re.compile("(?:([0-9]{1,2})h)?(?:([0-9]{1,2})m(?!s))?(?:([0-9]{1,2})s)?(?:([0-9]{1,3}(?:\.[0-9]*)?)ms)?") -ITEMS_EDITABLE = [ - ITEM_PROJECT, - ITEM_POU, - ITEM_VARIABLE, - ITEM_TRANSITION, - ITEM_ACTION, - ITEM_CONFIGURATION, - ITEM_RESOURCE, - ITEM_DATATYPE -] = range(8) - -ITEMS_UNEDITABLE = [ - ITEM_DATATYPES, - ITEM_FUNCTION, - ITEM_FUNCTIONBLOCK, - ITEM_PROGRAM, - ITEM_TRANSITIONS, - ITEM_ACTIONS, - ITEM_CONFIGURATIONS, - ITEM_RESOURCES, - ITEM_PROPERTIES -] = range(8, 17) - -ITEMS_VARIABLE = [ - ITEM_VAR_LOCAL, - ITEM_VAR_GLOBAL, - ITEM_VAR_EXTERNAL, - ITEM_VAR_TEMP, - ITEM_VAR_INPUT, - ITEM_VAR_OUTPUT, - ITEM_VAR_INOUT -] = range(17, 24) - -VAR_CLASS_INFOS = { - "Local": ("localVars", ITEM_VAR_LOCAL), - "Global": ("globalVars", ITEM_VAR_GLOBAL), - "External": ("externalVars", ITEM_VAR_EXTERNAL), - "Temp": ("tempVars", ITEM_VAR_TEMP), - "Input": ("inputVars", ITEM_VAR_INPUT), - "Output": ("outputVars", ITEM_VAR_OUTPUT), - "InOut": ("inOutVars", ITEM_VAR_INOUT)} - -POU_TYPES = { - "program": ITEM_PROGRAM, - "functionBlock": ITEM_FUNCTIONBLOCK, - "function": ITEM_FUNCTION, -} - -LOCATIONS_ITEMS = [LOCATION_CONFNODE, - LOCATION_MODULE, - LOCATION_GROUP, - LOCATION_VAR_INPUT, - LOCATION_VAR_OUTPUT, - LOCATION_VAR_MEMORY] = range(6) - ScriptDirectory = paths.AbsDir(__file__) - -def GetUneditableNames(): - _ = NoTranslate - return [_("User-defined POUs"), _("Functions"), _("Function Blocks"), - _("Programs"), _("Data Types"), _("Transitions"), _("Actions"), - _("Configurations"), _("Resources"), _("Properties")] - - -UNEDITABLE_NAMES = GetUneditableNames() -[USER_DEFINED_POUS, FUNCTIONS, FUNCTION_BLOCKS, PROGRAMS, - DATA_TYPES, TRANSITIONS, ACTIONS, CONFIGURATIONS, - RESOURCES, PROPERTIES] = UNEDITABLE_NAMES - - class LibraryResolver(etree.Resolver): """Helper object for loading library in xslt stylesheets""" @@ -138,24 +71,6 @@ lib_el.append(deepcopy(ctn["types"])) return self.resolve_string(etree.tostring(lib_el), context) -# ------------------------------------------------------------------------------- -# Helpers functions for translating list of arguments -# from xslt to valid arguments -# ------------------------------------------------------------------------------- - - -def _StringValue(x): - return x - - -def _BoolValue(x): - return x in ["true", "0"] - - -def _translate_args(translations, args): - return [translate(arg[0]) if len(arg) > 0 else None - for translate, arg in - zip(translations, args)] # ------------------------------------------------------------------------------- # Helpers object for generating pou var list