plugins/svgui/svgui.py
changeset 13 f1f0edbeb313
parent 12 a1f9e514f708
child 20 d3cb5020997b
equal deleted inserted replaced
12:a1f9e514f708 13:f1f0edbeb313
     1 import os
     1 import os
     2 from DEFControler import DEFControler
     2 from DEFControler import DEFControler
     3 from defeditor import EditorFrame
     3 from defeditor import EditorFrame
     4 
     4 
     5 class _EditorFramePlugg(EditorFrame):
     5 class _EditorFramePlug(EditorFrame):
     6     def OnClose(self, event):
     6     def OnClose(self, event):
     7         self.OnPluggClose()
     7         self.OnPlugClose()
     8         event.Skip()
     8         event.Skip()
     9 
     9 
    10 class BusController(DEFControler):
    10 class _DEFControlerPlug(DEFControler):
    11 
    11 
    12     ViewClass = _EditorFramePlugg
    12     ViewClass = _EditorFramePlug
    13     
    13     
    14     def __init__(self, buspath):
    14     def __init__(self, buspath):
    15         filepath = os.path.join(buspath, "gui.def")
    15         filepath = os.path.join(buspath, "gui.def")
    16         if os.path.isfile(filepath):
    16         if os.path.isfile(filepath):
    17             self.OpenXMLFile(filepath)
    17             self.OpenXMLFile(filepath)
    18         else
    18         else:
    19             self.CreateRootElement()
    19             self.CreateRootElement()
    20             self.SetFilePath(filepath)
    20             self.SetFilePath(filepath)
    21 
    21 
    22     def ReqSave(self):
    22     def ReqSave(self):
    23         self.SaveXMLFile()
    23         self.SaveXMLFile()
    29     
    29     
    30 TYPECONVERSION = {"BOOL" : "X", "SINT" : "B", "INT" : "W", "DINT" : "D", "LINT" : "L",
    30 TYPECONVERSION = {"BOOL" : "X", "SINT" : "B", "INT" : "W", "DINT" : "D", "LINT" : "L",
    31     "USINT" : "B", "UINT" : "W", "UDINT" : "D", "ULINT" : "L", "REAL" : "D", "LREAL" : "L",
    31     "USINT" : "B", "UINT" : "W", "UDINT" : "D", "ULINT" : "L", "REAL" : "D", "LREAL" : "L",
    32     "STRING" : "B", "BYTE" : "B", "WORD" : "W", "DWORD" : "D", "LWORD" : "L", "WSTRING" : "W"}
    32     "STRING" : "B", "BYTE" : "B", "WORD" : "W", "DWORD" : "D", "LWORD" : "L", "WSTRING" : "W"}
    33 
    33 
    34 class PluginController:
    34 class RootClass:
       
    35     
       
    36     ChildsType = _DEFControlerPlug
       
    37     
    35     def BlockTypesFactory(self):
    38     def BlockTypesFactory(self):
    36         def generate_svgui_block(generator, block, body, link):
    39         def generate_svgui_block(generator, block, body, link):
    37             controller = generator.GetController()
    40             controller = generator.GetController()
    38             name = block.getInstanceName()
    41             name = block.getInstanceName()
    39             type = block.getTypeName()
    42             type = block.getTypeName()
    40             block_infos = GetBlockType(type)
    43             block_infos = GetBlockType(type)
    41             bus_id, name = [word for word in name.split("_") if word != ""]
    44             bus_id, name = [word for word in name.split("_") if word != ""]
    42             block_id = self.PluginBuses[bus_id].GetElementIdFromName(name)
    45             block_id = self.PlugChilds[bus_id].GetElementIdFromName(name)
    43             if block_id == None:
    46             if block_id == None:
    44                 raise ValueError, "No corresponding block found"
    47                 raise ValueError, "No corresponding block found"
    45             if not generator.ComputedBlocks.get(name, False):
    48             if not generator.ComputedBlocks.get(name, False):
    46                 for num, variable in enumerate(block.inputVariables.getVariable()):
    49                 for num, variable in enumerate(block.inputVariables.getVariable()):
    47                     connections = variable.connectionPointIn.getConnections()
    50                     connections = variable.connectionPointIn.getConnections()