--- a/etherlab/etherlab.py Wed Mar 06 18:38:17 2013 +0100
+++ b/etherlab/etherlab.py Wed Mar 06 19:25:20 2013 +0100
@@ -10,6 +10,8 @@
from ConfigTreeNode import ConfigTreeNode
from PLCControler import UndoBuffer, LOCATION_CONFNODE, LOCATION_MODULE, LOCATION_GROUP, LOCATION_VAR_INPUT, LOCATION_VAR_OUTPUT, LOCATION_VAR_MEMORY
from ConfigEditor import NodeEditor, CIA402NodeEditor, MasterEditor, LibraryEditor, ETHERCAT_VENDOR, ETHERCAT_GROUP, ETHERCAT_DEVICE
+from dialogs import BrowseValuesLibraryDialog +from IDEFrame import TITLE, FILEMENU, PROJECTTREE from MotionLibrary import Headers, AxisXSD
@@ -637,7 +639,28 @@
+ def GetContextualMenuItems(self): + return [("Add Ethercat Slave", "Add Ethercat Slave to Master", self.OnAddEthercatSlave)] + def OnAddEthercatSlave(self, event): + app_frame = self.GetCTRoot().AppFrame + dialog = BrowseValuesLibraryDialog(app_frame, + "Ethercat Slave Type", self.GetSlaveTypesLibrary()) + if dialog.ShowModal() == wx.ID_OK: + type_infos = dialog.GetValueInfos() + device, alignment = self.GetModuleInfos(type_infos) + if HAS_MCL and _EthercatCIA402SlaveCTN.NODE_PROFILE in device.GetProfileNumbers(): + ConfNodeType = "EthercatCIA402Slave" + ConfNodeType = "EthercatSlave" + new_child = self.CTNAddChild("%s_0" % ConfNodeType, ConfNodeType) + new_child.SetParamsAttribute("SlaveParams.Type", type_infos) + app_frame._Refresh(TITLE, FILEMENU, PROJECTTREE) def ExtractHexDecValue(self, value):
return ExtractHexDecValue(value)