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