lpcmanager

Parents 4a2bcc99c7bc
Children c506994178b0
Importing from BeremizIDE, which is now the main Beremiz file and fixed error if trying to build when already building.
  • +15 -8
    LPCManager.py
  • --- a/LPCManager.py Fri Apr 07 10:46:10 2017 +0200
    +++ b/LPCManager.py Tue Apr 11 13:03:50 2017 +0200
    @@ -134,7 +134,7 @@
    "code": {"plc_MC9_main.c": targets.targets["Xenomai"]["code"]["plc_Xenomai_main.c"],
    "plc_MC9_main_retain.c": os.path.join(_lpcmanager_path,
    "MC9target", "plc_MC9_main_retain.c")}}
    -from Beremiz import *
    +from BeremizIDE import *
    from ProjectController import ProjectController
    from ConfigTreeNode import ConfigTreeNode
    from editors.ProjectNodeEditor import ProjectNodeEditor
    @@ -630,6 +630,8 @@
    # Firmware update running status
    self.firmawreUpadateIsRunning = False
    + self.building = False
    +
    # Bind mouse double click event on URI_location in Beremiz
    self.UriOptions = True
    @@ -676,20 +678,23 @@
    def _Build(self):
    def __Build(args):
    + self.building = True
    build_succeeded = ProjectController._Build(args)
    if build_succeeded:
    self.ToZIPFile()
    + self.building = False
    - self._Clean()
    + self._Clean(building = True)
    save = self.ProjectTestModified()
    if save:
    self.SaveProject()
    self.AppFrame._Refresh(TITLE, FILEMENU)
    if self.BuildPath is not None:
    mycopytree(self.OrigBuildPath, self.BuildPath)
    - build_thread = Thread(target=__Build, args=(self,))
    - build_thread.daemon = True
    - build_thread.start()
    + if not self.building:
    + build_thread = Thread(target=__Build, args=(self,))
    + build_thread.daemon = True
    + build_thread.start()
    if save:
    wx.CallAfter(self.AppFrame.RefreshAll)
    @@ -1182,7 +1187,7 @@
    else:
    return None
    - def _Clean(self):
    + def _Clean(self, building = False):
    self._CloseView(self._IECCodeView)
    runtime_list = fnmatch.filter(os.listdir(self._getBuildPath()), 'runtime_*')
    if os.path.isdir(os.path.join(self._getBuildPath())) and os.path.isfile(
    @@ -1194,7 +1199,8 @@
    if os.path.isfile(os.path.join(self._getBuildPath(), "hmi.py")):
    os.remove(os.path.join(self._getBuildPath(), "hmi.py"))
    else:
    - self.logger.write_error(_("Build directory already clean\n"))
    + if not building:
    + self.logger.write_error(_("Build directory already clean\n"))
    self.ShowMethod("_showIECcode", False)
    self.EnableMethod("_Clean", False)
    # kill the builder
    @@ -1635,9 +1641,10 @@
    if __name__ == '__main__':
    - from threading import Thread, Timer, Semaphore
    + from threading import Thread, Timer, Semaphore, Lock
    import cmd
    + build_lock = Lock()
    wx_eval_lock = Semaphore(0)
    eval_res = None