beremiz

Bug on command line fixed

2007-08-09, lbessard
97d73990053d
Parents 9565bb5facf7
Children e20fa7257d41
Bug on command line fixed
  • +56 -51
    Beremiz.py
  • --- a/Beremiz.py Wed Aug 08 14:54:48 2007 +0200
    +++ b/Beremiz.py Thu Aug 09 18:05:09 2007 +0200
    @@ -318,6 +318,9 @@
    self.Log = LogPseudoFile(self.LogConsole)
    + if projectOpen:
    + self.OpenProject(projectOpen)
    +
    self.RefreshButtons()
    self.RefreshMainMenu()
    @@ -398,6 +401,58 @@
    message.Destroy()
    event.Skip()
    + def OpenProject(self, projectpath):
    + try:
    + if not os.path.isdir(projectpath):
    + raise Exception
    + self.BusManagers = {}
    + configpath = os.path.join(projectpath, ".project")
    + if not os.path.isfile(configpath):
    + raise Exception
    + file = open(configpath, "r")
    + lines = [line.strip() for line in file.readlines() if line.strip() != ""]
    + if lines[0] != "Beremiz":
    + file.close()
    + raise Exception
    + for bus_id, bus_type, bus_name in [line.split(" ") for line in lines[1:]]:
    + id = int(bus_id, 16)
    + if bus_type == "CanFestival":
    + manager = NodeManager(os.path.join(base_folder, "CanFestival-3", "objdictgen"))
    + nodelist = NodeList(manager)
    + result = nodelist.LoadProject(projectpath, bus_name)
    + if not result:
    + self.BusManagers[id] = {"Name" : bus_name, "Type" : bus_type, "NodeList" : nodelist, "Editor" : None}
    + else:
    + message = wx.MessageDialog(self, result, "Error", wx.OK|wx.ICON_ERROR)
    + message.ShowModal()
    + message.Destroy()
    + else:
    + self.BusManagers[id] = {"Name" : bus_name, "Type" : bus_type}
    + file.close()
    + self.PLCManager = PLCControler()
    + plc_file = os.path.join(projectpath, "plc.xml")
    + if os.path.isfile(plc_file):
    + self.PLCManager.OpenXMLFile(plc_file)
    + self.CurrentProjectPath = projectpath
    + else:
    + dialog = ProjectDialog(self)
    + if dialog.ShowModal() == wx.ID_OK:
    + values = dialog.GetValues()
    + projectname = values.pop("projectName")
    + values["creationDateTime"] = datetime(*localtime()[:6])
    + self.PLCManager.CreateNewProject(projectname)
    + self.PLCManager.SetProjectProperties(values)
    + self.PLCManager.SaveXMLFile(plc_file)
    + self.CurrentProjectPath = projectpath
    + dialog.Destroy()
    + self.RefreshBusList()
    + self.RefreshButtons()
    + self.RefreshMainMenu()
    + except Exception:
    + message = wx.MessageDialog(self, "\"%s\" folder is not a valid Beremiz project"%projectpath, "Error", wx.OK|wx.ICON_ERROR)
    + message.ShowModal()
    + message.Destroy()
    +
    def OnOpenProjectMenu(self, event):
    if self.CurrentProjectPath != "":
    defaultpath = self.CurrentProjectPath
    @@ -405,58 +460,8 @@
    defaultpath = os.getcwd()
    dialog = wx.DirDialog(self , "Choose a project", defaultpath, wx.DD_NEW_DIR_BUTTON)
    if dialog.ShowModal() == wx.ID_OK:
    - projectpath = dialog.GetPath()
    + self.OpenProject(dialog.GetPath())
    dialog.Destroy()
    - try:
    - if not os.path.isdir(projectpath):
    - raise Exception
    - self.BusManagers = {}
    - configpath = os.path.join(projectpath, ".project")
    - if not os.path.isfile(configpath):
    - raise Exception
    - file = open(configpath, "r")
    - lines = [line.strip() for line in file.readlines() if line.strip() != ""]
    - if lines[0] != "Beremiz":
    - file.close()
    - raise Exception
    - for bus_id, bus_type, bus_name in [line.split(" ") for line in lines[1:]]:
    - id = int(bus_id, 16)
    - if bus_type == "CanFestival":
    - manager = NodeManager(os.path.join(base_folder, "CanFestival-3", "objdictgen"))
    - nodelist = NodeList(manager)
    - result = nodelist.LoadProject(projectpath, bus_name)
    - if not result:
    - self.BusManagers[id] = {"Name" : bus_name, "Type" : bus_type, "NodeList" : nodelist, "Editor" : None}
    - else:
    - message = wx.MessageDialog(self, result, "Error", wx.OK|wx.ICON_ERROR)
    - message.ShowModal()
    - message.Destroy()
    - else:
    - self.BusManagers[id] = {"Name" : bus_name, "Type" : bus_type}
    - file.close()
    - self.PLCManager = PLCControler()
    - plc_file = os.path.join(projectpath, "plc.xml")
    - if os.path.isfile(plc_file):
    - self.PLCManager.OpenXMLFile(plc_file)
    - self.CurrentProjectPath = projectpath
    - else:
    - dialog = ProjectDialog(self)
    - if dialog.ShowModal() == wx.ID_OK:
    - values = dialog.GetValues()
    - projectname = values.pop("projectName")
    - values["creationDateTime"] = datetime(*localtime()[:6])
    - self.PLCManager.CreateNewProject(projectname)
    - self.PLCManager.SetProjectProperties(values)
    - self.PLCManager.SaveXMLFile(plc_file)
    - self.CurrentProjectPath = projectpath
    - dialog.Destroy()
    - self.RefreshBusList()
    - self.RefreshButtons()
    - self.RefreshMainMenu()
    - except Exception:
    - message = wx.MessageDialog(self, "\"%s\" folder is not a valid Beremiz project"%projectpath, "Error", wx.OK|wx.ICON_ERROR)
    - message.ShowModal()
    - message.Destroy()
    event.Skip()
    def OnCloseProjectMenu(self, event):