--- a/LPCBeremiz.py Thu Nov 12 11:02:32 2020 +0100
+++ b/LPCBeremiz.py Thu Nov 12 13:50:22 2020 +0100
@@ -3,7 +3,6 @@
from __future__ import absolute_import
-from VariableExporter import VariableWriter
# XXX TODO : strip dead code. document.
@@ -16,15 +15,6 @@
class LPCBeremiz(Beremiz):
def _init_coll_FileMenu_Items(self, parent):
- config = wx.ConfigBase.Get()
- export = str(config.Read("Exporter"))
- config.Write("Exporter", '0')
AppendMenu(parent, help='', id=wx.ID_SAVE,
kind=wx.ITEM_NORMAL, text=_(u'Save\tCTRL+S'))
AppendMenu(parent, help='', id=wx.ID_CLOSE,
@@ -37,10 +27,6 @@
AppendMenu(parent, help='', id=wx.ID_PRINT,
kind=wx.ITEM_NORMAL, text=_(u'Print'))
- AppendMenu(parent, help='', id=ID_EXPORT,
- kind=wx.ITEM_NORMAL, text=_(u'Export'))
- parent.AppendSeparator()
AppendMenu(parent, help='', id=wx.ID_EXIT,
kind=wx.ITEM_NORMAL, text=_(u'Quit\tCTRL+Q'))
@@ -49,8 +35,6 @@
self.Bind(wx.EVT_MENU, self.OnPageSetupMenu, id=wx.ID_PAGE_SETUP)
self.Bind(wx.EVT_MENU, self.OnPreviewMenu, id=wx.ID_PREVIEW)
self.Bind(wx.EVT_MENU, self.OnPrintMenu, id=wx.ID_PRINT)
- self.Bind(wx.EVT_MENU, lambda event: VariableWriter(self, event, self.CTR.ProjectPath), id=ID_EXPORT)
self.Bind(wx.EVT_MENU, self.OnQuitMenu, id=wx.ID_EXIT)
self.AddToMenuToolBar([(wx.ID_SAVE, "save", _(u'Save'), None),
--- a/VariableExporter.py Thu Nov 12 11:02:32 2020 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,167 +0,0 @@
-def VariableWriter(parent, event, path):
- FileDialog = wx.FileDialog(parent, "Save CSV file", "", "", "CSV files (*.csv)|*.csv",
- wx.FD_SAVE | wx.FD_OVERWRITE_PROMPT)
- if FileDialog.ShowModal() == wx.ID_OK:
- if FileDialog.GetPath()[-4:] == ".csv":
- export = FileDialog.GetPath()
- export = FileDialog.GetPath() + ".csv"
- parent.Controler.logger.write(_("Exporting to " +export+" ...\n"))
- with open(path + "\plc.xml") as infile:
- start_program = line.find("name")
- if start_program != -1:
- end_program = line[start_program:].find(" ")
- program_name = line[start_program + 6:start_program + end_program - 1]
- start_type = line.find("pouType")
- end_type = line[start_type:].find("\"")
- program_type = line[start_type + 9:start_type + end_type + 8]
- if ":= UINT_TO_WORD(" in line:
- idx = line.find(":= UINT_TO_WORD(")
- end = line[idx:].find(")")
- name = line[idx + len(":= UINT_TO_WORD("):idx + end]
- address = target.split("_")[-1]
- modbus_list.append(name)
- modbus_dict[name] = [target, address, program_name, program_type]
- elif ":= WORD_TO_UINT(" in line and not "UINT_TO_WORD" in line:
- idx = line.find(":= WORD_TO_UINT(")
- end = line[idx:].find(")")
- name = line[idx + len(":= WORD_TO_UINT("):idx + end]
- address = name.split("_")[-1]
- setting_list.append([target, "", "", "", "", name, address])
- elif ":= WORD_TO_BOOL(" in line:
- idx = line.find(":= WORD_TO_BOOL(")
- end = line[idx + len(":= WORD_TO_BOOL("):].find(" ")
- name = line[idx + len(":= WORD_TO_BOOL("):idx + len(":= WORD_TO_BOOL(") + end]
- target = line[:idx].strip()
- address = name.split("_")[-1]
- bit_start = line.find(" N := ")
- bit_end = line[bit_start:].find(")")
- bit = line[bit_start + len(" N := "):bit_start + bit_end]
- command_list.append([target, "", "", "", "", name, address+"."+bit])
- elif ":= BOOL_TO_WORD(" in line:
- idx = line.find(":= BOOL_TO_WORD(") + len(":= BOOL_TO_WORD(")
- if "UINT_TO_BOOL(" in line[idx:]:
- idx += len("UINT_TO_BOOL")
- end = line[idx:].find(")")
- end = line[idx:].find(")")
- name = line[idx:idx+end]
- target_start = len("(*")
- target_end = line.find(" := ")
- target = line[target_start:target_end].strip()
- address = target.split("_")[-1]
- bit_start = line.find(" N := ")
- bit_end = line[bit_start:].find(")")
- bit = line[bit_start + len(" N := "):bit_start + bit_end]
- bit_dict[name] = [target, address+"."+bit, program_name, program_type]
- bit_dict[name] = [target, address, program_name, program_type]
- dir_list = [os.path.join(path, o) for o in os.listdir(path) if os.path.isdir(os.path.join(path, o))]
- if dir[-6:] == "py_ext":
- py_directories.append(dir)
- ["NAME", "DESCRIPTION", "TYPE", "GROUP", "SUBGROUP", "TYPE OF VARIABLE", "MODBUS NAME", "MODBUS ADDRESS", "PROGRAM NAME",
- for dir in py_directories:
- with open(dir + "\pyfile.xml") as infile:
- idx_name = line.find("name")
- end_name = line[idx_name:].find(" ")
- name = line[idx_name + 6:idx_name + end_name - 1]
- curr_variable.append(name)
- idx_desc = line.find("desc")
- end_desc = line[idx_desc+7:].find("\"")
- desc = line[idx_desc + 6:idx_desc + 7 + end_desc]
- if len(curr_variable) > 0:
- curr_variable.append(desc)
- idx_type = line.find("type")
- end_type = line[idx_type:].find(" ")
- type = line[idx_type + 6:idx_type + end_type - 1]
- group = dir.split("\\")[-1].split("@")[0]
- if len(curr_variable) > 0:
- curr_variable.append(type)
- curr_variable.append(group)
- idx_opts = line.find("opts")
- end_opts = line[idx_opts + 6:].find("\"")
- opts = line[idx_opts + 6: idx_opts + end_opts + 6]
- options = opts.split(" ")
- if o in ["Session", "Alarm", "Static"]:
- idx_subgroup = o.find("subgroup")
- subgroup = o[idx_subgroup + 9:]
- if len(curr_variable) > 0:
- curr_variable.append(subgroup)
- curr_variable.append(o_type)
- if len(curr_variable) > 0:
- if name in modbus_list:
- curr_variable += modbus_dict[name]
- curr_variable += bit_dict[name]
- curr_variable += ["", "", "", ""]
- if curr_variable != []:
- variables.append(curr_variable)
- with open(export, "wb") as f:
- writer.writerows(variables)
- writer.writerows(setting_list)
- writer.writerows(command_list)
- parent.Controler.logger.write(_("Export completed successfully.\n"))
- dialog = wx.MessageDialog(parent, "File is oppened in another program. Please close it before exporting.", style= wx.OK | wx.ICON_EXCLAMATION)
- parent.Controler.logger.write_error(_("Export failed.\n"))
\ No newline at end of file