def import_from_node(node_id, network): # Create temporary SDO client sdo_client = SdoClient(0x600 + node_id, 0x580 + node_id, None) sdo_client.network = network # Subscribe to SDO responses network.subscribe(0x580 + node_id, sdo_client.on_response) # Create file like object for Store EDS variable try: eds_fp = sdo_client.open(0x1021, 0, "rt") od = import_eds(eds_fp, node_id) except Exception as e: logger.error("No object dictionary could be loaded for node %d: %s", node_id, e) od = None finally: network.unsubscribe(0x580 + node_id) return od
def import_from_node(node_id, network): """ Download the configuration from the remote node :param int node_id: Identifier of the node :param network: network object """ # Create temporary SDO client sdo_client = SdoClient(0x600 + node_id, 0x580 + node_id, objectdictionary.ObjectDictionary()) sdo_client.network = network # Subscribe to SDO responses network.subscribe(0x580 + node_id, sdo_client.on_response) # Create file like object for Store EDS variable try: eds_fp = sdo_client.open(0x1021, 0, "rt") od = import_eds(eds_fp, node_id) except Exception as e: logger.error("No object dictionary could be loaded for node %d: %s", node_id, e) od = None finally: network.unsubscribe(0x580 + node_id) return od