176 if result: |
176 if result: |
177 self.GetCTRoot().logger.write_error(_("Error: Export slave failed\n")) |
177 self.GetCTRoot().logger.write_error(_("Error: Export slave failed\n")) |
178 dialog.Destroy() |
178 dialog.Destroy() |
179 |
179 |
180 ConfNodeMethods = [ |
180 ConfNodeMethods = [ |
181 {"bitmap" : "ExportSlave", |
181 { |
182 "name" : _("Export slave"), |
182 "bitmap": "ExportSlave", |
183 "tooltip" : _("Export CanOpen slave to EDS file"), |
183 "name": _("Export slave"), |
184 "method" : "_ExportSlave"}, |
184 "tooltip": _("Export CanOpen slave to EDS file"), |
|
185 "method": "_ExportSlave" |
|
186 }, |
185 ] |
187 ] |
186 |
188 |
187 def CTNTestModified(self): |
189 def CTNTestModified(self): |
188 return self.ChangesToSave or self.OneFileHasChanged() |
190 return self.ChangesToSave or self.OneFileHasChanged() |
189 |
191 |
226 slave = self.GetCurrentNodeCopy() |
228 slave = self.GetCurrentNodeCopy() |
227 slave.SetNodeName("OD_%s" % prefix) |
229 slave.SetNodeName("OD_%s" % prefix) |
228 # allow access to local OD from Slave PLC |
230 # allow access to local OD from Slave PLC |
229 pointers = config_utils.LocalODPointers(locations, current_location, slave) |
231 pointers = config_utils.LocalODPointers(locations, current_location, slave) |
230 res = gen_cfile.GenerateFile(Gen_OD_path, slave, pointers) |
232 res = gen_cfile.GenerateFile(Gen_OD_path, slave, pointers) |
231 if res : |
233 if res: |
232 raise Exception, res |
234 raise Exception, res |
233 res = eds_utils.GenerateEDSFile(os.path.join(buildpath, "Slave_%s.eds" % prefix), slave) |
235 res = eds_utils.GenerateEDSFile(os.path.join(buildpath, "Slave_%s.eds" % prefix), slave) |
234 if res : |
236 if res: |
235 raise Exception, res |
237 raise Exception, res |
236 return [(Gen_OD_path,local_canfestival_config.getCFLAGS(CanFestivalPath))],"",False |
238 return [(Gen_OD_path,local_canfestival_config.getCFLAGS(CanFestivalPath))],"",False |
237 |
239 |
238 def LoadPrevious(self): |
240 def LoadPrevious(self): |
239 self.LoadCurrentPrevious() |
241 self.LoadCurrentPrevious() |
393 if self._View is not None: |
395 if self._View is not None: |
394 self._View.SetBusId(self.GetCurrentLocation()) |
396 self._View.SetBusId(self.GetCurrentLocation()) |
395 return self._View |
397 return self._View |
396 |
398 |
397 ConfNodeMethods = [ |
399 ConfNodeMethods = [ |
398 {"bitmap" : "ShowMaster", |
400 { |
399 "name" : _("Show Master"), |
401 "bitmap": "ShowMaster", |
400 "tooltip" : _("Show Master generated by config_utils"), |
402 "name": _("Show Master"), |
401 "method" : "_ShowGeneratedMaster"} |
403 "tooltip": _("Show Master generated by config_utils"), |
|
404 "method": "_ShowGeneratedMaster" |
|
405 } |
402 ] |
406 ] |
403 |
407 |
404 def OnCloseEditor(self, view): |
408 def OnCloseEditor(self, view): |
405 ConfigTreeNode.OnCloseEditor(self, view) |
409 ConfigTreeNode.OnCloseEditor(self, view) |
406 if self._GeneratedMasterView == view: |
410 if self._GeneratedMasterView == view: |
444 master, pointers = config_utils.GenerateConciseDCF(locations, current_location, self, self.CanFestivalNode.getSync_TPDOs(),"OD_%s" % prefix) |
448 master, pointers = config_utils.GenerateConciseDCF(locations, current_location, self, self.CanFestivalNode.getSync_TPDOs(),"OD_%s" % prefix) |
445 except config_utils.PDOmappingException, e: |
449 except config_utils.PDOmappingException, e: |
446 raise Exception, e.message |
450 raise Exception, e.message |
447 # Do generate C file. |
451 # Do generate C file. |
448 res = gen_cfile.GenerateFile(Gen_OD_path, master, pointers) |
452 res = gen_cfile.GenerateFile(Gen_OD_path, master, pointers) |
449 if res : |
453 if res: |
450 raise Exception, res |
454 raise Exception, res |
451 |
455 |
452 file = open(os.path.join(buildpath, "MasterGenerated.od"), "w") |
456 file = open(os.path.join(buildpath, "MasterGenerated.od"), "w") |
453 dump(master, file) |
457 dump(master, file) |
454 file.close() |
458 file.close() |
487 child["type"] = local_canfestival_config.DLL_LIST |
491 child["type"] = local_canfestival_config.DLL_LIST |
488 return infos |
492 return infos |
489 |
493 |
490 def GetCanDriver(self): |
494 def GetCanDriver(self): |
491 res = self.CanFestivalInstance.getCAN_Driver() |
495 res = self.CanFestivalInstance.getCAN_Driver() |
492 if not res : |
496 if not res: |
493 return "" |
497 return "" |
494 return res |
498 return res |
495 |
499 |
496 def CTNGenerate_C(self, buildpath, locations): |
500 def CTNGenerate_C(self, buildpath, locations): |
497 can_driver = self.GetCanDriver() |
501 can_driver = self.GetCanDriver() |
498 if can_driver is not None: |
502 if can_driver is not None: |
499 can_drivers = local_canfestival_config.DLL_LIST |
503 can_drivers = local_canfestival_config.DLL_LIST |
500 if can_driver not in can_drivers : |
504 if can_driver not in can_drivers: |
501 can_driver = can_drivers[0] |
505 can_driver = can_drivers[0] |
502 can_drv_ext = self.GetCTRoot().GetBuilder().extension |
506 can_drv_ext = self.GetCTRoot().GetBuilder().extension |
503 can_drv_prefix = self.GetCTRoot().GetBuilder().dlopen_prefix |
507 can_drv_prefix = self.GetCTRoot().GetBuilder().dlopen_prefix |
504 can_driver_name = can_drv_prefix + "libcanfestival_" + can_driver + can_drv_ext |
508 can_driver_name = can_drv_prefix + "libcanfestival_" + can_driver + can_drv_ext |
505 else: |
509 else: |
506 can_driver_name = "" |
510 can_driver_name = "" |
507 |
511 |
508 |
512 |
509 format_dict = {"locstr" : "_".join(map(str,self.GetCurrentLocation())), |
513 format_dict = {"locstr": "_".join(map(str,self.GetCurrentLocation())), |
510 "candriver" : can_driver_name, |
514 "candriver": can_driver_name, |
511 "nodes_includes" : "", |
515 "nodes_includes": "", |
512 "board_decls" : "", |
516 "board_decls": "", |
513 "nodes_init" : "", |
517 "nodes_init": "", |
514 "nodes_open" : "", |
518 "nodes_open": "", |
515 "nodes_stop" : "", |
519 "nodes_stop": "", |
516 "nodes_close" : "", |
520 "nodes_close": "", |
517 "nodes_send_sync" : "", |
521 "nodes_send_sync": "", |
518 "nodes_proceed_sync" : "", |
522 "nodes_proceed_sync": "", |
519 "slavebootups" : "", |
523 "slavebootups": "", |
520 "slavebootup_register" : "", |
524 "slavebootup_register": "", |
521 "post_sync" : "", |
525 "post_sync": "", |
522 "post_sync_register" : "", |
526 "post_sync_register": "", |
523 "pre_op" : "", |
527 "pre_op": "", |
524 "pre_op_register" : "", |
528 "pre_op_register": "", |
525 } |
529 } |
526 for child in self.IECSortedChildren(): |
530 for child in self.IECSortedChildren(): |
527 childlocstr = "_".join(map(str,child.GetCurrentLocation())) |
531 childlocstr = "_".join(map(str,child.GetCurrentLocation())) |
528 nodename = "OD_%s" % childlocstr |
532 nodename = "OD_%s" % childlocstr |
529 |
533 |