tkl_ota | OTA Firmware Update
The tkl_ota.c
firmware OTA (Over-The-Air) includes handling various stages of the firmware upgrade process: obtaining firmware upgrade capabilities, OTA start notification, OTA data processing, and OTA end notification. This file is automatically generated by the TuyaOS and allows developers to add their own implementations in the provided user-defined areas.
API Descriptionâ
tkl_ota_get_abilityâ
OPERATE_RET tkl_ota_get_ability(uint32_t *image_size, TUYA_OTA_TYPE_E *type);
Functionalityâ
Obtains the OTA capability information of the current device, including the maximum firmware image size and the OTA type.
Parametersâ
image_size
: Output parameter, used to store the maximum size of the firmware image.type
: Output parameter, OTA type, can be a full package or a differential package, useTUYA_OTA_FULL
to indicate a full package, andTUYA_OTA_DIFF
to indicate a differential package.typedef enum {
TUYA_OTA_FULL = 1, ///< AB area switch, full package upgrade
TUYA_OTA_DIFF = 2, ///< fixed area, difference package upgrade
} TUYA_OTA_TYPE_E;
Return Valueâ
A return value of OPRT_OK
indicates success, other values indicate an error, please refer to tuya_error_code.h
.
tkl_ota_start_notifyâ
OPERATE_RET tkl_ota_start_notify(uint32_t image_size, TUYA_OTA_TYPE_E type, TUYA_OTA_PATH_E path);
Functionalityâ
Notifies the start of the OTA upgrade, this function initializes the necessary variables and states for the OTA process.
Parametersâ
image_size
: Input parameter, the size of the firmware image to be upgraded.type
: Input parameter, OTA type.path
: Input parameter, OTA path, the channel through which the data is transmitted.typedef enum {
TUYA_OTA_PATH_AIR = 0, ///< OTA from Wired/Wi-Fi/Cellular/NBIoT
TUYA_OTA_PATH_UART = 1, ///< OTA from uart for MF
TUYA_OTA_PATH_BLE = 2, ///< OTA from BLE protocol for subdev
TUYA_OTA_PATH_ZIGBEE = 3, ///< OTA from Zigbee protocol for subdev
TUYA_OTA_PATH_SEC_A = 4, ///< OTA from multi-section A
TUYA_OTA_PATH_SEC_B = 5, ///< OTA from multi-section B
TUYA_OTA_PATH_INVALID = 255 ///< OTA from multi-section invalid
}TUYA_OTA_PATH_E;
Return Valueâ
A return value of OPRT_OK
indicates the operation was successful, other return values indicate an error, please refer to tuya_error_code.h
for error information.
tkl_ota_data_processâ
OPERATE_RET tkl_ota_data_process(TUYA_OTA_DATA_T *pack, uint32_t* remain_len);
Functionalityâ
Processes the received OTA data packet, this function will perform different upgrade operations according to the state.
Parametersâ
pack
: Input parameter, a pointer to the OTA data packet.remain_len
: Output parameter, indicates the length of the remaining unprocessed data in the OTA data packet.
Return Valueâ
If the data packet is processed successfully, the return value is OPRT_OK
, otherwise, an error code is returned. For specific error information, please see tuya_error_code.h
.
tkl_ota_end_notifyâ
OPERATE_RET tkl_ota_end_notify(BOOL_T reset);
Functionalityâ
Notifies the end of the OTA upgrade, performs verification and follow-up processing, and will reset the device if necessary.
Parametersâ
reset
: Input parameter, indicates whether the device needs to be reset after the OTA ends.
Return Valueâ
A return value of OPRT_OK
indicates the operation was successful, if the verification fails or other reasons cause failure, an error code is returned. For error details, please refer to tuya_error_code.h
.
tkl_ota_get_old_firmware_infoâ
OPERATE_RET tkl_ota_get_old_firmware_info(TUYA_OTA_FIRMWARE_INFO_T **info);
Functionalityâ
Obtains information about the old firmware, this function is typically used in breakpoint resume scenarios.
Parametersâ
info
: Output parameter, a pointer to a pointer to the old firmware information structure.
Return Valueâ
If the old firmware information is successfully obtained, the return value is OPRT_OK
, otherwise, an error code is returned. For specific error information, please see tuya_error_code.h
.