Load firmware Examples¶
Load firmware through CANopen Example¶
from ingenialink.canopen.network import CanopenNetwork, CAN_DEVICE, CAN_BAUDRATE
import sys
def print_status_message(msg):
"""Example of a callback function."""
print('Current status message: {}'.format(msg))
def print_progress(value):
"""Example of a callback function."""
print('Progress: {}'.format(value))
def print_progress_total(value):
"""Example of a callback function."""
print('Total progress to be done: {}'.format(value))
def print_errors_enabled(value):
"""Example of a callback function."""
print('Errors enabled: {}'.format(value))
def load_firmware_example_connected():
"""Loads a firmware to an already connected drive."""
net = CanopenNetwork(device=CAN_DEVICE.IXXAT,
channel=0,
baudrate=CAN_BAUDRATE.Baudrate_1M)
nodes = net.scan_slaves()
print(nodes)
if len(nodes) > 0:
servo = net.connect_to_slave(
target=nodes[0],
dictionary='../../resources/dictionaries/eve-net-c_can_1.8.1.xdf')
fw_version = servo.read('DRV_ID_SOFTWARE_VERSION')
print('Firmware version before loading new firmware', fw_version)
net.load_firmware(nodes[0], '../../resources/firmware/eve-net-c_1.8.1.sfu',
print_status_message, print_progress, print_errors_enabled)
fw_version = servo.read('DRV_ID_SOFTWARE_VERSION')
print('Firmware version after loading new firmware', fw_version)
net.disconnect_from_slave(servo)
else:
print('Could not find any nodes')
def load_firmware_example_disconnected():
"""Loads a firmware to a disconnected drive."""
net = CanopenNetwork(device=CAN_DEVICE.IXXAT,
channel=0,
baudrate=CAN_BAUDRATE.Baudrate_1M)
net.load_firmware(32, '../../resources/firmware/eve-net-c_1.8.1.sfu',
print_status_message, print_progress, print_errors_enabled)
if __name__ == '__main__':
load_firmware_example_connected()
load_firmware_example_disconnected()
sys.exit()
Load firmware through EtherCAT Example¶
Note
In Linux administrator privileges are needed.
import sys
from ingenialink.ethercat.network import EthercatNetwork
def ecat_load_fw():
net = EthercatNetwork("\\Device\\NPF_{192D1D2F-C684-467D-A637-EC07BD434A63}")
net.load_firmware(fw_file='../../resources/firmware/cap-net-e_0.7.1.lfu')
if __name__ == '__main__':
ecat_load_fw()
sys.exit(0)
Load firmware through Ethernet Example¶
import sys
from ingenialink.ethernet.network import EthernetNetwork
def eth_load_fw():
net = EthernetNetwork()
net.load_firmware(fw_file='../../resources/firmware/eve-net-c_1.8.1.sfu',
ftp_user='Ingenia', ftp_pwd='Ingenia')
if __name__ == '__main__':
eth_load_fw()
sys.exit(0)