22 #ifndef M2M_M2MB_FOTA_H
23 #define M2M_M2MB_FOTA_H
27 #define M2MB_LOAD_UPDATED_APPS 0xAABB
28 #define M2MB_SKIP_BACKUP_RESTORE_PARAM 0xCCDD
29 #define M2MB_DEFAULT_LOAD_UPDATED_APPS 0xFFFF
30 #define M2MB_PARAM_LEN (255+1)
35 M2MB_FOTA_STATE_UPDATE_START = 0,
36 M2MB_FOTA_STATE_UPDATE_PHASE_LAST = 0xF000,
37 M2MB_FOTA_STATE_UPDATE_CHECK_IN_AGENT = 0xF800,
38 M2MB_FOTA_STATE_CHECK_VERSION = 0xFF00,
39 M2MB_FOTA_STATE_UPDATED = 0xFF10,
40 M2MB_FOTA_STATE_UPDATED_NO_BACKUP_PARAMETERS = 0xFF15,
41 M2MB_FOTA_STATE_UPDATED_AFTER_NO_BACKUP_PARAMETERS = 0xFF17,
42 M2MB_FOTA_STATE_BACKUP_PARAMETERS = 0xFF20,
43 M2MB_FOTA_STATE_AFTER_BACKUP_PARAMETERS = 0xFF23,
44 M2MB_FOTA_STATE_RESTORE_PARAMETERS = 0xFF30,
45 M2MB_FOTA_STATE_AFTER_RESTORE_PARAMETERS = 0xFF33,
46 M2MB_FOTA_STATE_BEFORE_URC_PURGE = 0xFF37,
47 M2MB_FOTA_STATE_URC_PURGE = 0xFF40,
48 M2MB_FOTA_STATE_AFTER_PURGE = 0xFF50,
49 M2MB_FOTA_STATE_SPECIAL_CASE = 0xFF60,
50 M2MB_FOTA_STATE_IDLE = 0xFFFF
55 M2MB_XQCN_STATE_BACKUPED = 0,
56 M2MB_XQCN_STATE_WRITTEN = 0x1000,
57 M2MB_XQCN_STATE_ERASED = 0x1500,
58 M2MB_XQCN_STATE_END = 0x2000,
59 M2MB_XQCN_STATE_READY = 0xFFFF
64 M2MB_Q6ZIP_STATE_READY = 0xFFFF,
65 M2MB_Q6ZIP_STATE_ERASING = 0xFFFE,
66 M2MB_Q6ZIP_STATE_END = 0xFFFD
71 M2MB_CLADE_STATE_READY = 0xFFFF,
72 M2MB_CLADE_STATE_BACKUP_START = 0xFFFE,
73 M2MB_CLADE_STATE_BACKUP_END = 0xFFFD
78 M2MB_FOTA_INTEGRITY_CHECK = 0xFFFF,
79 M2MB_FOTA_INTEGRITY_PASS = 0xFFFE,
80 M2MB_FOTA_INTEGRITY_FAIL = 0xFFFD
81 } M2MB_FOTA_INTEGRITY_E;
85 M2MB_FOTA_TRACE_VERBOSE_LEVEL_0,
86 M2MB_FOTA_TRACE_VERBOSE_LEVEL_1,
87 M2MB_FOTA_TRACE_VERBOSE_LEVEL_2,
88 M2MB_FOTA_TRACE_VERBOSE_LEVEL_ALL,
89 M2MB_FOTA_TRACE_VERBOSE_LEVEL_NO_CHANGE,
90 M2MB_FOTA_TRACE_VERBOSE_LEVEL_PRINT = 0xFFF0,
91 M2MB_FOTA_TRACE_VERBOSE_LEVEL_NUM = 0xFFFF
92 } M2MB_FOTA_TRACE_VERBOSE_LEVEL_E;
96 M2MB_FOTA_TRACE_SPEED_NO_CHANGE,
97 M2MB_FOTA_TRACE_SPEED_4800,
98 M2MB_FOTA_TRACE_SPEED_9600,
99 M2MB_FOTA_TRACE_SPEED_115200,
100 M2MB_FOTA_TRACE_SPEED_230400,
101 M2MB_FOTA_TRACE_SPEED_460800,
102 M2MB_FOTA_TRACE_SPEED_921600,
103 M2MB_FOTA_TRACE_SPEED_BAUD_NUMBER,
104 M2MB_FOTA_TRACE_SPEED_NUM = 0xFFFF
105 } M2MB_FOTA_TRACE_SPEED_E;
109 M2MB_FOTA_RESULT_CODE_UNDEF,
110 M2MB_FOTA_RESULT_CODE_OK,
111 M2MB_FOTA_RESULT_CODE_ERROR_GET_STATE,
112 M2MB_FOTA_RESULT_CODE_READ_ERROR,
113 M2MB_FOTA_RESULT_CODE_WRITE_ERROR,
114 M2MB_FOTA_RESULT_CODE_GET_INFO_ERROR,
115 M2MB_FOTA_RESULT_CODE_INVALID_TRACE_VERBOSE_LEVEL,
116 M2MB_FOTA_RESULT_CODE_INVALID_TRACE_SPEED,
117 M2MB_FOTA_RESULT_CODE_GET_PARTITION_FAIL,
118 M2MB_FOTA_RESULT_CODE_BAD_MALLOC,
119 M2MB_FOTA_RESULT_CODE_ERROR_NO_TAG,
120 M2MB_FOTA_RESULT_CODE_ERROR_MD5_CALCULATE,
121 M2MB_FOTA_RESULT_CODE_ERROR_MD5_CHECK,
122 M2MB_FOTA_RESULT_CODE_ERROR_BAD_ACTION,
123 M2MB_FOTA_RESULT_CODE_ERROR_PARTITION_COPY,
124 M2MB_FOTA_RESULT_CODE_ERROR_GET_FW_CNV_ELEMENTS,
125 M2MB_FOTA_RESULT_CODE_ERROR_CHECK_FW_DELTA_CNV_ELEMENTS,
126 M2MB_FOTA_RESULT_CODE_ERROR_ERASE_FW_CNV_ELEMENTS,
127 M2MB_FOTA_RESULT_CODE_INVALID_HANDLE,
128 M2MB_FOTA_RESULT_CODE_TASK_ERROR,
129 M2MB_FOTA_RESULT_CODE_ERROR_SHA256_CALCULATE,
130 M2MB_FOTA_RESULT_CODE_ERROR_SHA256_CHECK,
131 M2MB_FOTA_RESULT_CODE_ERROR_FOTA_IN_PROGRESS,
132 M2MB_FOTA_RESULT_CODE_NUM
133 } M2MB_FOTA_RESULT_CODE_E;
137 M2MB_FOTA_CHECK_SETUP_SOURCE,
138 M2MB_FOTA_CHECK_SETUP_DESTINATION,
139 M2MB_FOTA_CHECK_SETUP_NUM
140 } M2MB_FOTA_CHECK_SETUP_E;
144 M2MB_FOTA_DOWNLOAD_TYPE_HTTP,
145 M2MB_FOTA_DOWNLOAD_TYPE_HTTPS,
146 M2MB_FOTA_DOWNLOAD_TYPE_FTP,
147 M2MB_FOTA_DOWNLOAD_TYPE_FTPS,
148 M2MB_FOTA_DOWNLOAD_TYPE_COAP,
149 M2MB_FOTA_DOWNLOAD_TYPE_COAPS,
150 M2MB_FOTA_DOWNLOAD_TYPE_MAX_NUM
151 } M2MB_FOTA_DOWNLOAD_TYPE_E;
155 M2MB_FOTA_DOWNLOAD_SUCCESS,
156 M2MB_FOTA_DOWNLOAD_TASK_INTERNAL_ERROR,
157 M2MB_FOTA_DOWNLOAD_NOT_RESOLVED,
158 M2MB_FOTA_DOWNLOAD_CONN_SOCKET_ERROR,
159 M2MB_FOTA_DOWNLOAD_CONN_CONTEXT_ERROR,
160 M2MB_FOTA_DOWNLOAD_ACCESS_DENIED,
161 M2MB_FOTA_DOWNLOAD_FILE_NOT_FOUND,
162 M2MB_FOTA_DOWNLOAD_SESSION_ERROR,
163 M2MB_FOTA_DOWNLOAD_MEMORY_ERROR
164 } M2MB_FOTA_DOWNLOAD_RESULT_E;
168 M2MB_FOTA_EXTENDED_FTP_PROTOCOL,
169 M2MB_FOTA_BASIC_FTP_PROTOCOL
170 } M2MB_FOTA_FTP_PROTOCOL_E;
174 M2MB_FOTA_EVENT_HTTP_DELTA_TRANSFER_END,
175 M2MB_FOTA_EVENT_FTP_DELTA_TRANSFER_END
178 typedef void *M2MB_FOTA_HANDLE;
183 CHAR server_addr[256];
186 CHAR user[M2MB_PARAM_LEN];
187 CHAR psw[M2MB_PARAM_LEN];
196 CHAR user[M2MB_PARAM_LEN];
197 CHAR psw[M2MB_PARAM_LEN];
202 M2MB_FOTA_FTP_PROTOCOL_E protocol;
211 UINT16 inactivityTimeout;
212 UINT16 connectionTimeout;
213 UINT16 dataSendingTimeout;
225 M2MB_FOTA_DOWNLOAD_RESULT_E result;
236 typedef void ( *m2mb_fota_ind_callback )( M2MB_FOTA_HANDLE h, M2MB_FOTA_IND_E fota_event, UINT16 resp_size,
void *resp_struct,
void *userdata );
308 M2MB_FOTA_HANDLE *pHandle,
309 m2mb_fota_ind_callback callback,
338 M2MB_FOTA_HANDLE handle
375 M2MB_FOTA_HANDLE handle,
376 M2MB_FOTA_DOWNLOAD_TYPE_E type,
405 M2MB_FOTA_HANDLE handle
437 M2MB_FOTA_HANDLE handle,
438 M2MB_FOTA_RESULT_CODE_E *pResultCode
475 M2MB_FOTA_HANDLE handle,
476 M2MB_FOTA_TRACE_VERBOSE_LEVEL_E TraceVerboseLevel,
477 M2MB_FOTA_TRACE_SPEED_E TraceSpeed
513 M2MB_FOTA_HANDLE handle,
514 M2MB_FOTA_TRACE_VERBOSE_LEVEL_E *pTraceVerboseLevel,
515 M2MB_FOTA_TRACE_SPEED_E *pTraceSpeed
551 M2MB_FOTA_HANDLE handle,
553 UINT32 *pPartitionSize
596 M2MB_FOTA_HANDLE handle,
630 M2MB_FOTA_HANDLE handle,
631 M2MB_FOTA_CHECK_SETUP_E Action
659 M2MB_FOTA_HANDLE handle
690 M2MB_FOTA_HANDLE handle
722 M2MB_FOTA_HANDLE handle,
723 M2MB_FOTA_STATE_E *pState