LPCManager.py
changeset 5 7a09e12267a9
parent 3 169d552a345c
parent 4 e8a0af6b89d9
child 7 299a4e345380
equal deleted inserted replaced
3:169d552a345c 5:7a09e12267a9
    70 connectors.connectors["LPC"]=lambda:LPC_connector_factory
    70 connectors.connectors["LPC"]=lambda:LPC_connector_factory
    71 
    71 
    72 import targets
    72 import targets
    73 from LPCtarget import LPC_target 
    73 from LPCtarget import LPC_target 
    74 targets.targets["LPC"] = {"xsd": os.path.join(_base_path, "LPCtarget", "XSD"),
    74 targets.targets["LPC"] = {"xsd": os.path.join(_base_path, "LPCtarget", "XSD"),
    75                           "class": lambda:LPC_target,
    75                           "class": lambda: LPC_target,
    76                           "code": os.path.join(_base_path,"LPCtarget","plc_LPC_main.c")} 
    76                           "code": os.path.join(_base_path,"LPCtarget","plc_LPC_main.c")} 
    77 targets.toolchains["makefile"] = os.path.join(_base_path, "LPCtarget", "XSD_toolchain_makefile")
    77 targets.toolchains["makefile"] = os.path.join(_base_path, "LPCtarget", "XSD_toolchain_makefile")
    78 
    78 
    79 # helper func to get path to images
    79 # helper func to get path to images
    80 from util import misc
    80 from util import misc
    81 misc.opjimg = lambda imgname: os.path.join(_base_folder, "beremiz", "images", imgname+".png")
    81 misc.opjimg = lambda imgname: os.path.join(_base_folder, "beremiz", "images", imgname+".png")
    82 
    82 
    83 from Beremiz import *
    83 from Beremiz import *
       
    84 
       
    85 import features
       
    86 from POULibrary import POULibrary
       
    87 
       
    88 class PLCLibrary(POULibrary):
       
    89     def GetLibraryPath(self):
       
    90         return os.path.join(_base_path, "pous.xml")
       
    91 
       
    92 features.libraries.append(
       
    93     ('LPC', lambda: PLCLibrary))
       
    94 
    84 from ProjectController import ProjectController
    95 from ProjectController import ProjectController
    85 from ConfigTreeNode import ConfigTreeNode
    96 from ConfigTreeNode import ConfigTreeNode
    86 from ProjectNodeEditor import ProjectNodeEditor
    97 from ProjectNodeEditor import ProjectNodeEditor
    87 
    98 
    88 from plcopen.structures import LOCATIONDATATYPES
    99 from plcopen.structures import LOCATIONDATATYPES
   583         def LoadChildren(self):
   594         def LoadChildren(self):
   584             ConfigTreeNode.LoadChildren(self)
   595             ConfigTreeNode.LoadChildren(self)
   585             
   596             
   586             if self.GetChildByName("Master") is None:
   597             if self.GetChildByName("Master") is None:
   587                 master = self.CTNAddChild("Master", "CanOpenNode", 0)
   598                 master = self.CTNAddChild("Master", "CanOpenNode", 0)
   588                 master.BaseParams.setEnabled(False)
   599                 #master.BaseParams.setEnabled(False)
   589                 master.CTNRequestSave()
   600                 master.CTNRequestSave()
   590             
   601             
   591             if self.GetChildByName("Slave") is None:
   602             if self.GetChildByName("Slave") is None:
   592                 slave = self.CTNAddChild("Slave", "CanOpenSlave", 1)
   603                 slave = self.CTNAddChild("Slave", "CanOpenSlave", 1)
   593                 slave.BaseParams.setEnabled(False)
   604                 #slave.BaseParams.setEnabled(False)
   594                 slave.CTNRequestSave()
   605                 slave.CTNRequestSave()
   595     
   606     
   596 
   607 
   597 #-------------------------------------------------------------------------------
   608 #-------------------------------------------------------------------------------
   598 #                              LPCProjectController Class
   609 #                              LPCProjectController Class
   603     Copy content of a directory to an other, omit hidden files
   614     Copy content of a directory to an other, omit hidden files
   604     @param src: source directory
   615     @param src: source directory
   605     @param dst: destination directory
   616     @param dst: destination directory
   606     """
   617     """
   607     for i in os.listdir(src):
   618     for i in os.listdir(src):
   608         if not i.startswith('.') and i != "pous.xml":
   619         if not i.startswith('.'):
   609             srcpath = os.path.join(src,i)
   620             srcpath = os.path.join(src,i)
   610             dstpath = os.path.join(dst,i)
   621             dstpath = os.path.join(dst,i)
   611             if os.path.isdir(srcpath):
   622             if os.path.isdir(srcpath):
   612                 if os.path.exists(dstpath):
   623                 if os.path.exists(dstpath):
   613                     shutil.rmtree(dstpath)
   624                     shutil.rmtree(dstpath)
   686                 resources["values"].extend(config_infos["values"][0]["values"])
   697                 resources["values"].extend(config_infos["values"][0]["values"])
   687         if resources is not None:
   698         if resources is not None:
   688             infos["values"].append(resources)
   699             infos["values"].append(resources)
   689         return infos
   700         return infos
   690     
   701     
   691     def ConfNodeLibraryFilePath(self):
       
   692         if self.OrigBuildPath is not None:
       
   693             return os.path.join(self.OrigBuildPath, "pous.xml")
       
   694         else:
       
   695             return ProjectController.ConfNodeLibraryFilePath(self)
       
   696     
       
   697     def GetProjectName(self):
   702     def GetProjectName(self):
   698         return self.Project.getname()
   703         return self.Project.getname()
   699 
   704 
   700     def GetDefaultTargetName(self):
   705     def GetDefaultTargetName(self):
   701         if self.CurrentMode == SIMULATION_MODE:
   706         if self.CurrentMode == SIMULATION_MODE:
   854             #Load and init all the children
   859             #Load and init all the children
   855             self.LoadChildren()
   860             self.LoadChildren()
   856         
   861         
   857         if havecanfestival and self.GetChildByName("CanOpen") is None:
   862         if havecanfestival and self.GetChildByName("CanOpen") is None:
   858             canopen = self.CTNAddChild("CanOpen", "CanOpen", 0)
   863             canopen = self.CTNAddChild("CanOpen", "CanOpen", 0)
   859             canopen.BaseParams.setEnabled(False)
   864             #canopen.BaseParams.setEnabled(False)
   860             canopen.LoadChildren()
   865             canopen.LoadChildren()
   861             canopen.CTNRequestSave()
   866             canopen.CTNRequestSave()
   862         
   867         
   863         if self.CTNTestModified():
   868         if self.CTNTestModified():
   864             self.SaveProject()
   869             self.SaveProject()
  1489         leftwindow.SetSizer(leftwindowvsizer)
  1494         leftwindow.SetSizer(leftwindowvsizer)
  1490         
  1495         
  1491         leftwindowsizer = wx.BoxSizer(wx.HORIZONTAL)
  1496         leftwindowsizer = wx.BoxSizer(wx.HORIZONTAL)
  1492         leftwindowvsizer.AddSizer(leftwindowsizer, 0, border=0, flag=0)
  1497         leftwindowvsizer.AddSizer(leftwindowsizer, 0, border=0, flag=0)
  1493         
  1498         
  1494         self.GenerateEnableButton(leftwindow, leftwindowsizer, confnode)
  1499         #self.GenerateEnableButton(leftwindow, leftwindowsizer, confnode)
  1495         
  1500         
  1496         st = wx.StaticText(leftwindow, -1)
  1501         st = wx.StaticText(leftwindow, -1)
  1497         st.SetFont(wx.Font(faces["size"], wx.DEFAULT, wx.NORMAL, wx.BOLD, faceName = faces["helv"]))
  1502         st.SetFont(wx.Font(faces["size"], wx.DEFAULT, wx.NORMAL, wx.BOLD, faceName = faces["helv"]))
  1498         st.SetLabel(confnode.GetFullIEC_Channel())
  1503         st.SetLabel(confnode.GetFullIEC_Channel())
  1499         leftwindowsizer.AddWindow(st, 0, border=5, flag=wx.RIGHT)
  1504         leftwindowsizer.AddWindow(st, 0, border=5, flag=wx.LEFT|wx.RIGHT)
  1500         
  1505         
  1501         expandbutton_id = wx.NewId()
  1506         expandbutton_id = wx.NewId()
  1502         expandbutton = wx.lib.buttons.GenBitmapToggleButton(id=expandbutton_id, bitmap=wx.Bitmap(Bpath( 'images', 'plus.png')),
  1507         expandbutton = wx.lib.buttons.GenBitmapToggleButton(id=expandbutton_id, bitmap=wx.Bitmap(Bpath( 'images', 'plus.png')),
  1503               name='ExpandButton', parent=leftwindow, pos=wx.Point(0, 0),
  1508               name='ExpandButton', parent=leftwindow, pos=wx.Point(0, 0),
  1504               size=wx.Size(13, 13), style=wx.NO_BORDER)
  1509               size=wx.Size(13, 13), style=wx.NO_BORDER)