author | Mario de Sousa <msousa@fe.up.pt> |
Sat, 02 Jun 2018 11:56:01 +0100 | |
changeset 2479 | 7f08b03a5d92 |
parent 1511 | 91538d0c242c |
child 1730 | 64d8f52bc8c8 |
permissions | -rw-r--r-- |
1511
91538d0c242c
add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
1286
diff
changeset
|
1 |
#!/usr/bin/env python |
91538d0c242c
add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
1286
diff
changeset
|
2 |
# -*- coding: utf-8 -*- |
91538d0c242c
add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
1286
diff
changeset
|
3 |
|
91538d0c242c
add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
1286
diff
changeset
|
4 |
# This file is part of Beremiz, a Integrated Development Environment for |
91538d0c242c
add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
1286
diff
changeset
|
5 |
# programming IEC 61131-3 automates supporting plcopen standard and CanFestival. |
91538d0c242c
add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
1286
diff
changeset
|
6 |
# |
91538d0c242c
add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
1286
diff
changeset
|
7 |
# Copyright (C) 2007: Edouard TISSERANT and Laurent BESSARD |
91538d0c242c
add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
1286
diff
changeset
|
8 |
# |
91538d0c242c
add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
1286
diff
changeset
|
9 |
# See COPYING file for copyrights details. |
91538d0c242c
add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
1286
diff
changeset
|
10 |
# |
91538d0c242c
add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
1286
diff
changeset
|
11 |
# This program is free software; you can redistribute it and/or |
91538d0c242c
add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
1286
diff
changeset
|
12 |
# modify it under the terms of the GNU General Public License |
91538d0c242c
add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
1286
diff
changeset
|
13 |
# as published by the Free Software Foundation; either version 2 |
91538d0c242c
add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
1286
diff
changeset
|
14 |
# of the License, or (at your option) any later version. |
91538d0c242c
add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
1286
diff
changeset
|
15 |
# |
91538d0c242c
add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
1286
diff
changeset
|
16 |
# This program is distributed in the hope that it will be useful, |
91538d0c242c
add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
1286
diff
changeset
|
17 |
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
91538d0c242c
add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
1286
diff
changeset
|
18 |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
91538d0c242c
add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
1286
diff
changeset
|
19 |
# GNU General Public License for more details. |
91538d0c242c
add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
1286
diff
changeset
|
20 |
# |
91538d0c242c
add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
1286
diff
changeset
|
21 |
# You should have received a copy of the GNU General Public License |
91538d0c242c
add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
1286
diff
changeset
|
22 |
# along with this program; if not, write to the Free Software |
91538d0c242c
add copyright notices to python files where there were missing, that
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
1286
diff
changeset
|
23 |
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
680
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
24 |
|
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
25 |
import wx |
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
26 |
|
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
27 |
from subindextable import EditingPanel |
1021
939b1a1c7aa5
Fixed bug when importing NodeEditorTemplate
Laurent Bessard
parents:
920
diff
changeset
|
28 |
from nodeeditortemplate import NodeEditorTemplate |
814 | 29 |
from editors.ConfTreeNodeEditor import ConfTreeNodeEditor |
680
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
30 |
|
717 | 31 |
[ID_SLAVEEDITORCONFNODEMENUNODEINFOS, ID_SLAVEEDITORCONFNODEMENUDS301PROFILE, |
32 |
ID_SLAVEEDITORCONFNODEMENUDS302PROFILE, ID_SLAVEEDITORCONFNODEMENUDSOTHERPROFILE, |
|
33 |
ID_SLAVEEDITORCONFNODEMENUADD, |
|
34 |
] = [wx.NewId() for _init_coll_ConfNodeMenu_Items in range(5)] |
|
680
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
35 |
|
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
36 |
[ID_SLAVEEDITORADDMENUSDOSERVER, ID_SLAVEEDITORADDMENUSDOCLIENT, |
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
37 |
ID_SLAVEEDITORADDMENUPDOTRANSMIT, ID_SLAVEEDITORADDMENUPDORECEIVE, |
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
38 |
ID_SLAVEEDITORADDMENUMAPVARIABLE, ID_SLAVEEDITORADDMENUUSERTYPE, |
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
39 |
] = [wx.NewId() for _init_coll_AddMenu_Items in range(6)] |
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
40 |
|
762
aaacc83aa86b
Modifying canfestival plugin to following the new Beremiz confnode paradigm
laurent
parents:
738
diff
changeset
|
41 |
class SlaveEditor(ConfTreeNodeEditor, NodeEditorTemplate): |
680
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
42 |
|
920
1499a4d225db
Replaced SplitterWindow in ConfTreeNodeEditor by Notebook
Laurent Bessard
parents:
847
diff
changeset
|
43 |
CONFNODEEDITOR_TABS = [ |
1499a4d225db
Replaced SplitterWindow in ConfTreeNodeEditor by Notebook
Laurent Bessard
parents:
847
diff
changeset
|
44 |
(_("CANOpen slave"), "_create_SlaveNodeEditor")] |
1499a4d225db
Replaced SplitterWindow in ConfTreeNodeEditor by Notebook
Laurent Bessard
parents:
847
diff
changeset
|
45 |
|
1499a4d225db
Replaced SplitterWindow in ConfTreeNodeEditor by Notebook
Laurent Bessard
parents:
847
diff
changeset
|
46 |
def _create_SlaveNodeEditor(self, prnt): |
1499a4d225db
Replaced SplitterWindow in ConfTreeNodeEditor by Notebook
Laurent Bessard
parents:
847
diff
changeset
|
47 |
self.SlaveNodeEditor = EditingPanel(prnt, self, self.Controler, self.Editable) |
1499a4d225db
Replaced SplitterWindow in ConfTreeNodeEditor by Notebook
Laurent Bessard
parents:
847
diff
changeset
|
48 |
return self.SlaveNodeEditor |
680
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
49 |
|
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
50 |
def __init__(self, parent, controler, window, editable=True): |
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
51 |
self.Editable = editable |
762
aaacc83aa86b
Modifying canfestival plugin to following the new Beremiz confnode paradigm
laurent
parents:
738
diff
changeset
|
52 |
ConfTreeNodeEditor.__init__(self, parent, controler, window) |
680
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
53 |
NodeEditorTemplate.__init__(self, controler, window, False) |
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
54 |
|
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
55 |
def __del__(self): |
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
56 |
self.Controler.OnCloseEditor(self) |
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
57 |
|
717 | 58 |
def GetConfNodeMenuItems(self): |
680
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
59 |
if self.Editable: |
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
60 |
add_menu = [(wx.ITEM_NORMAL, (_('SDO Server'), ID_SLAVEEDITORADDMENUSDOSERVER, '', self.OnAddSDOServerMenu)), |
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
61 |
(wx.ITEM_NORMAL, (_('SDO Client'), ID_SLAVEEDITORADDMENUSDOCLIENT, '', self.OnAddSDOClientMenu)), |
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
62 |
(wx.ITEM_NORMAL, (_('PDO Transmit'), ID_SLAVEEDITORADDMENUPDOTRANSMIT, '', self.OnAddPDOTransmitMenu)), |
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
63 |
(wx.ITEM_NORMAL, (_('PDO Receive'), ID_SLAVEEDITORADDMENUPDORECEIVE, '', self.OnAddPDOReceiveMenu)), |
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
64 |
(wx.ITEM_NORMAL, (_('Map Variable'), ID_SLAVEEDITORADDMENUMAPVARIABLE, '', self.OnAddMapVariableMenu)), |
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
65 |
(wx.ITEM_NORMAL, (_('User Type'), ID_SLAVEEDITORADDMENUUSERTYPE, '', self.OnAddUserTypeMenu))] |
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
66 |
|
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
67 |
profile = self.Controler.GetCurrentProfileName() |
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
68 |
if profile not in ("None", "DS-301"): |
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
69 |
other_profile_text = _("%s Profile") % profile |
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
70 |
add_menu.append((wx.ITEM_SEPARATOR, None)) |
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
71 |
for text, indexes in self.Manager.GetCurrentSpecificMenu(): |
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
72 |
add_menu.append((wx.ITEM_NORMAL, (text, wx.NewId(), '', self.GetProfileCallBack(text)))) |
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
73 |
else: |
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
74 |
other_profile_text = _('Other Profile') |
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
75 |
|
845
412a9f05070f
Fixing CanFestival master and slave nodeid when generating code for PLC
laurent
parents:
816
diff
changeset
|
76 |
return [(wx.ITEM_NORMAL, (_('DS-301 Profile'), ID_SLAVEEDITORCONFNODEMENUDS301PROFILE, '', self.OnCommunicationMenu)), |
717 | 77 |
(wx.ITEM_NORMAL, (_('DS-302 Profile'), ID_SLAVEEDITORCONFNODEMENUDS302PROFILE, '', self.OnOtherCommunicationMenu)), |
78 |
(wx.ITEM_NORMAL, (other_profile_text, ID_SLAVEEDITORCONFNODEMENUDSOTHERPROFILE, '', self.OnEditProfileMenu)), |
|
680
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
79 |
(wx.ITEM_SEPARATOR, None), |
717 | 80 |
(add_menu, (_('Add'), ID_SLAVEEDITORCONFNODEMENUADD))] |
680
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
81 |
return [] |
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
82 |
|
717 | 83 |
def RefreshConfNodeMenu(self, confnode_menu): |
816
079ed646266f
Fix bug in canfestivel extension when Show Master Generated on Windows
laurent
parents:
814
diff
changeset
|
84 |
if self.Editable: |
079ed646266f
Fix bug in canfestivel extension when Show Master Generated on Windows
laurent
parents:
814
diff
changeset
|
85 |
confnode_menu.Enable(ID_SLAVEEDITORCONFNODEMENUDSOTHERPROFILE, False) |
680
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
86 |
|
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
87 |
def RefreshView(self): |
762
aaacc83aa86b
Modifying canfestival plugin to following the new Beremiz confnode paradigm
laurent
parents:
738
diff
changeset
|
88 |
ConfTreeNodeEditor.RefreshView(self) |
920
1499a4d225db
Replaced SplitterWindow in ConfTreeNodeEditor by Notebook
Laurent Bessard
parents:
847
diff
changeset
|
89 |
self.SlaveNodeEditor.RefreshIndexList() |
680
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
90 |
|
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
91 |
def RefreshCurrentIndexList(self): |
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
92 |
self.RefreshView() |
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
93 |
|
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
94 |
def RefreshBufferState(self): |
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
95 |
self.ParentWindow.RefreshTitle() |
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
96 |
self.ParentWindow.RefreshFileMenu() |
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
97 |
self.ParentWindow.RefreshEditMenu() |
61746934df41
Adding support for integrating CanFestival plugin panels in Beremiz main frame
smarteh-dev
parents:
diff
changeset
|
98 |
self.ParentWindow.RefreshPageTitles() |
777 | 99 |
|
100 |
class MasterViewer(SlaveEditor): |
|
1286
adda406d3960
Fixed bug when displaying Master generated Object Dictionary in canfestival extension
Laurent Bessard
parents:
1021
diff
changeset
|
101 |
SHOW_BASE_PARAMS = False |
777 | 102 |
SHOW_PARAMS = False |
1286
adda406d3960
Fixed bug when displaying Master generated Object Dictionary in canfestival extension
Laurent Bessard
parents:
1021
diff
changeset
|
103 |
|
847
b157705a9024
Fix bug in generated master panel in CanFestival extension
laurent
parents:
845
diff
changeset
|
104 |
def __init__(self, parent, controler, window, tagname): |
777 | 105 |
SlaveEditor.__init__(self, parent, controler, window, False) |
847
b157705a9024
Fix bug in generated master panel in CanFestival extension
laurent
parents:
845
diff
changeset
|
106 |
|
b157705a9024
Fix bug in generated master panel in CanFestival extension
laurent
parents:
845
diff
changeset
|
107 |
self.TagName = tagname |
b157705a9024
Fix bug in generated master panel in CanFestival extension
laurent
parents:
845
diff
changeset
|
108 |
|
b157705a9024
Fix bug in generated master panel in CanFestival extension
laurent
parents:
845
diff
changeset
|
109 |
def GetTagName(self): |
b157705a9024
Fix bug in generated master panel in CanFestival extension
laurent
parents:
845
diff
changeset
|
110 |
return self.TagName |
b157705a9024
Fix bug in generated master panel in CanFestival extension
laurent
parents:
845
diff
changeset
|
111 |
|
b157705a9024
Fix bug in generated master panel in CanFestival extension
laurent
parents:
845
diff
changeset
|
112 |
def GetCurrentNodeId(self): |
b157705a9024
Fix bug in generated master panel in CanFestival extension
laurent
parents:
845
diff
changeset
|
113 |
return None |
b157705a9024
Fix bug in generated master panel in CanFestival extension
laurent
parents:
845
diff
changeset
|
114 |
|
b157705a9024
Fix bug in generated master panel in CanFestival extension
laurent
parents:
845
diff
changeset
|
115 |
def GetInstancePath(self): |
b157705a9024
Fix bug in generated master panel in CanFestival extension
laurent
parents:
845
diff
changeset
|
116 |
return self.Controler.CTNFullName() + ".generated_master" |
b157705a9024
Fix bug in generated master panel in CanFestival extension
laurent
parents:
845
diff
changeset
|
117 |
|
b157705a9024
Fix bug in generated master panel in CanFestival extension
laurent
parents:
845
diff
changeset
|
118 |
def GetTitle(self): |
b157705a9024
Fix bug in generated master panel in CanFestival extension
laurent
parents:
845
diff
changeset
|
119 |
return self.GetInstancePath() |
b157705a9024
Fix bug in generated master panel in CanFestival extension
laurent
parents:
845
diff
changeset
|
120 |
|
b157705a9024
Fix bug in generated master panel in CanFestival extension
laurent
parents:
845
diff
changeset
|
121 |
def IsViewing(self, tagname): |
b157705a9024
Fix bug in generated master panel in CanFestival extension
laurent
parents:
845
diff
changeset
|
122 |
return self.GetInstancePath() == tagname |
1286
adda406d3960
Fixed bug when displaying Master generated Object Dictionary in canfestival extension
Laurent Bessard
parents:
1021
diff
changeset
|
123 |
|
adda406d3960
Fixed bug when displaying Master generated Object Dictionary in canfestival extension
Laurent Bessard
parents:
1021
diff
changeset
|
124 |
def RefreshView(self): |
adda406d3960
Fixed bug when displaying Master generated Object Dictionary in canfestival extension
Laurent Bessard
parents:
1021
diff
changeset
|
125 |
self.SlaveNodeEditor.RefreshIndexList() |
adda406d3960
Fixed bug when displaying Master generated Object Dictionary in canfestival extension
Laurent Bessard
parents:
1021
diff
changeset
|
126 |