15 |
15 |
16 from gnosis.xml.pickle import * |
16 from gnosis.xml.pickle import * |
17 from gnosis.xml.pickle.util import setParanoia |
17 from gnosis.xml.pickle.util import setParanoia |
18 setParanoia(0) |
18 setParanoia(0) |
19 |
19 |
|
20 if wx.Platform == '__WXMSW__': |
|
21 DEFAULT_SETTINGS = { |
|
22 "CAN_Driver": "can_tcp_win32", |
|
23 "CAN_Device": "127.0.0.1", |
|
24 "CAN_Baudrate": "125K", |
|
25 "Slave_NodeId": 2, |
|
26 "Master_NodeId": 1, |
|
27 } |
|
28 else: |
|
29 DEFAULT_SETTINGS = { |
|
30 "CAN_Driver": "../CanFestival-3/drivers/can_socket/libcanfestival_can_socket.so", |
|
31 "CAN_Device": "vcan0", |
|
32 "CAN_Baudrate": "125K", |
|
33 "Slave_NodeId": 2, |
|
34 "Master_NodeId": 1, |
|
35 } |
|
36 |
20 #-------------------------------------------------- |
37 #-------------------------------------------------- |
21 # SLAVE |
38 # SLAVE |
22 #-------------------------------------------------- |
39 #-------------------------------------------------- |
23 |
40 |
24 class _SlavePlug(NodeManager): |
41 class _SlavePlug(NodeManager): |
25 XSD = """<?xml version="1.0" encoding="ISO-8859-1" ?> |
42 XSD = """<?xml version="1.0" encoding="ISO-8859-1" ?> |
26 <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> |
43 <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> |
27 <xsd:element name="CanFestivalSlaveNode"> |
44 <xsd:element name="CanFestivalSlaveNode"> |
28 <xsd:complexType> |
45 <xsd:complexType> |
29 <xsd:attribute name="CAN_Device" type="xsd:string" use="required"/> |
46 <xsd:attribute name="CAN_Device" type="xsd:string" use="optional" default="%(CAN_Device)s"/> |
30 <xsd:attribute name="CAN_Baudrate" type="xsd:string" use="required"/> |
47 <xsd:attribute name="CAN_Baudrate" type="xsd:string" use="optional" default="%(CAN_Baudrate)s"/> |
31 <xsd:attribute name="NodeId" type="xsd:string" use="required"/> |
48 <xsd:attribute name="NodeId" type="xsd:string" use="optional" default="%(Slave_NodeId)d"/> |
32 <xsd:attribute name="Sync_Align" type="xsd:integer" use="optional" default="0"/> |
49 <xsd:attribute name="Sync_Align" type="xsd:integer" use="optional" default="0"/> |
33 <xsd:attribute name="Sync_Align_Ratio" use="optional" default="50"> |
50 <xsd:attribute name="Sync_Align_Ratio" use="optional" default="50"> |
34 <xsd:simpleType> |
51 <xsd:simpleType> |
35 <xsd:restriction base="xsd:integer"> |
52 <xsd:restriction base="xsd:integer"> |
36 <xsd:minInclusive value="1"/> |
53 <xsd:minInclusive value="1"/> |
148 class _NodeListPlug(NodeList): |
165 class _NodeListPlug(NodeList): |
149 XSD = """<?xml version="1.0" encoding="ISO-8859-1" ?> |
166 XSD = """<?xml version="1.0" encoding="ISO-8859-1" ?> |
150 <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> |
167 <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> |
151 <xsd:element name="CanFestivalNode"> |
168 <xsd:element name="CanFestivalNode"> |
152 <xsd:complexType> |
169 <xsd:complexType> |
153 <xsd:attribute name="CAN_Device" type="xsd:string" use="required"/> |
170 <xsd:attribute name="CAN_Device" type="xsd:string" use="optional" default="%(CAN_Device)s"/> |
154 <xsd:attribute name="CAN_Baudrate" type="xsd:string" use="required"/> |
171 <xsd:attribute name="CAN_Baudrate" type="xsd:string" use="optional" default="%(CAN_Baudrate)s"/> |
155 <xsd:attribute name="NodeId" type="xsd:string" use="required"/> |
172 <xsd:attribute name="NodeId" type="xsd:string" use="optional" default="%(Master_NodeId)d"/> |
156 <xsd:attribute name="Sync_TPDOs" type="xsd:boolean" use="optional" default="true"/> |
173 <xsd:attribute name="Sync_TPDOs" type="xsd:boolean" use="optional" default="true"/> |
157 </xsd:complexType> |
174 </xsd:complexType> |
158 </xsd:element> |
175 </xsd:element> |
159 </xsd:schema> |
176 </xsd:schema> |
160 """ |
177 """ % DEFAULT_SETTINGS |
161 |
178 |
162 def __init__(self): |
179 def __init__(self): |
163 manager = NodeManager() |
180 manager = NodeManager() |
164 # TODO change netname when name change |
181 # TODO change netname when name change |
165 NodeList.__init__(self, manager, self.BaseParams.getName()) |
182 NodeList.__init__(self, manager, self.BaseParams.getName()) |
252 class RootClass: |
269 class RootClass: |
253 XSD = """<?xml version="1.0" encoding="ISO-8859-1" ?> |
270 XSD = """<?xml version="1.0" encoding="ISO-8859-1" ?> |
254 <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> |
271 <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> |
255 <xsd:element name="CanFestivalInstance"> |
272 <xsd:element name="CanFestivalInstance"> |
256 <xsd:complexType> |
273 <xsd:complexType> |
257 <xsd:attribute name="CAN_Driver" type="xsd:string" use="required"/> |
274 <xsd:attribute name="CAN_Driver" type="xsd:string" use="optional" default="%(CAN_Driver)s"/> |
258 <xsd:attribute name="Debug_mode" type="xsd:boolean" use="optional" default="false"/> |
275 <xsd:attribute name="Debug_mode" type="xsd:boolean" use="optional" default="false"/> |
259 </xsd:complexType> |
276 </xsd:complexType> |
260 </xsd:element> |
277 </xsd:element> |
261 </xsd:schema> |
278 </xsd:schema> |
262 """ |
279 """ % DEFAULT_SETTINGS |
|
280 |
263 PlugChildsTypes = [("CanOpenNode",_NodeListPlug, "CanOpen Master"), |
281 PlugChildsTypes = [("CanOpenNode",_NodeListPlug, "CanOpen Master"), |
264 ("CanOpenSlave",_SlavePlug, "CanOpen Slave")] |
282 ("CanOpenSlave",_SlavePlug, "CanOpen Slave")] |
265 def GetParamsAttributes(self, path = None): |
283 def GetParamsAttributes(self, path = None): |
266 infos = PlugTemplate.GetParamsAttributes(self, path = None) |
284 infos = PlugTemplate.GetParamsAttributes(self, path = None) |
267 for element in infos: |
285 for element in infos: |