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() |