# # This service initiates firmware update on a remote node. # # The node that is being updated (slave) will retrieve the firmware image file 'image_file_remote_path' from the node # 'source_node_id' using the file read service, then it will update the firmware and reboot. Alternatively, this # service can be used to invoke an alternative CAN bootloader (e.g. STM32 system memory bootloader), in which case # the field 'image_file_remote_path' must be empty. # # The slave can explicitly reject this request if it is not possible to update the firmware at the moment # (e.g. if the node is busy). # # If the slave node accepts this request, the initiator will get a response immediately, before the update process # actually begins. # # While the firmware is being updated, the slave should set its status code (uavcan.protocol.NodeStatus.status_code) # to STATUS_INITIALIZING. # uint8 source_node_id # If there is an invalid value (e.g. zero), the caller Node ID will be used instead Path image_file_remote_path # Empty to invoke an alternative bootloader --- uint8 ERROR_OK = 0 uint8 ERROR_INVALID_MODE = 1 # Cannot perform the update right now (e.g. the vehicle is operating) uint8 ERROR_IN_PROGRESS = 2 # Firmware update is already in progess, and the slave doesn't want to restart uint8 ERROR_UNKNOWN = 255 uint8 error uint8[<128] optional_error_message # Detailed error description