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',
            eds='../../resources/dictionaries/eve-net-c_1.8.1.eds')

        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

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',
                      boot_in_app=True)


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)