311 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			311 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								/****************************************************************************
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Copyright(c) 2019 by Aerospace C.Power (Chongqing) Microelectronics. ALL RIGHTS RESERVED.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								This Information is proprietary to Aerospace C.Power (Chongqing) Microelectronics and MAY NOT
							 | 
						||
| 
								 | 
							
								be copied by any method or incorporated into another program without
							 | 
						||
| 
								 | 
							
								the express written consent of Aerospace C.Power. This Information or any portion
							 | 
						||
| 
								 | 
							
								thereof remains the property of Aerospace C.Power. The Information contained herein
							 | 
						||
| 
								 | 
							
								is believed to be accurate and Aerospace C.Power assumes no responsibility or
							 | 
						||
| 
								 | 
							
								liability for its use in any way and conveys no license or title under
							 | 
						||
| 
								 | 
							
								any patent or copyright and makes no representation or warranty that this
							 | 
						||
| 
								 | 
							
								Information is free from patent or copyright infringement.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								****************************************************************************/
							 | 
						||
| 
								 | 
							
								#ifndef IOT_GR_UPGRADE_H
							 | 
						||
| 
								 | 
							
								#define IOT_GR_UPGRADE_H
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifdef __cplusplus
							 | 
						||
| 
								 | 
							
								extern "C" {
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define IOT_GREE_MAX_STA_FW_SIZE                        ((444 + 64) * 1024)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/** define the gree upgrade data recv max length */
							 | 
						||
| 
								 | 
							
								#define GREE_UPGRADE_FRM_MAX_LEN                        417
							 | 
						||
| 
								 | 
							
								#define GREE_UPGRADE_DATA_PACKET_LEN                    400
							 | 
						||
| 
								 | 
							
								#define GREE_UPGRADE_CMD_CONTROL_MIN                    0x90
							 | 
						||
| 
								 | 
							
								#define GREE_UPGRADE_CMD_CONTROL_MAX                    0x98
							 | 
						||
| 
								 | 
							
								/** define the gree upgrade data recv control code */
							 | 
						||
| 
								 | 
							
								#define GREE_UPGRADE_DATA_CONTROL                       0x9A
							 | 
						||
| 
								 | 
							
								#define GREE_UPGRADE_DATA_FRM_MIN_LEN                   17
							 | 
						||
| 
								 | 
							
								/** the position of gree upgrade length low byte */
							 | 
						||
| 
								 | 
							
								#define GREE_UPGRADE_DATA_FRM_LEN_LOW_BYTE              13
							 | 
						||
| 
								 | 
							
								/** the position of gree upgrade length high byte */
							 | 
						||
| 
								 | 
							
								#define GREE_UPGRADE_DATA_FRM_LEN_HIG_BYTE              14
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define GREE_UPGRADE_DATA_FRM_CTL_LEN                   8
							 | 
						||
| 
								 | 
							
								/** cco receive sta upgrade data max progress */
							 | 
						||
| 
								 | 
							
								#define GREE_CCO_RECV_STA_UPGRADE_DATA_MAX_PROGRESS     20
							 | 
						||
| 
								 | 
							
								/** cco remote sta upgrade data max progress */
							 | 
						||
| 
								 | 
							
								#define GREE_CCO_BROADCAST_UPGRADE_DATA_MAX_PROGRESS    80
							 | 
						||
| 
								 | 
							
								/** remote sta request recv upgrade data max progress */
							 | 
						||
| 
								 | 
							
								#define GREE_STA_RECV_UPGRADE_DATA_MAX_PROGRESS         50
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/** cco receive cco upgrade data max progress */
							 | 
						||
| 
								 | 
							
								#define GREE_CCO_RECV_CCO_UPGRADE_DATA_MAX_PROGRESS     85
							 | 
						||
| 
								 | 
							
								/** cco upgrade successful progress */
							 | 
						||
| 
								 | 
							
								#define GREE_CCO_UPGRADE_SUCC_PROGRESS                  100
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/** for response sta upgrade state count */
							 | 
						||
| 
								 | 
							
								#define RESP_UPGRADE_STATE_CNT_MAX                      120
							 | 
						||
| 
								 | 
							
								/** define sync upgrade address max count */
							 | 
						||
| 
								 | 
							
								#define GE_UPGRADE_REMOTE_ADDR_NUM                      50
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/** GE command use 6 byte mac */
							 | 
						||
| 
								 | 
							
								#define UPGRADE_MAC_BYTE                                MAC_ADDR_LEN_6BYTE
							 | 
						||
| 
								 | 
							
								typedef uint16_t                                        GE_UPGRADE_UNITBIT;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/** check gree upgrade command */
							 | 
						||
| 
								 | 
							
								#define GREE_CHECK_UPGRADE_CMD(control)                 ((control >= \
							 | 
						||
| 
								 | 
							
								    GREE_UPGRADE_CMD_CONTROL_MIN && control <= GREE_UPGRADE_CMD_CONTROL_MAX) || \
							 | 
						||
| 
								 | 
							
								    (control == GREE_UPGRADE_DATA_CONTROL))
							 | 
						||
| 
								 | 
							
								#define GREE_ACQUIRE_UPGRADE_CMD_LEN(control)           (control - \
							 | 
						||
| 
								 | 
							
								                                                  GREE_UPGRADE_CMD_CONTROL_MIN)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* dl cmd ack result */
							 | 
						||
| 
								 | 
							
								#define GREE_UPGRADE_CMD_SUCCESS                         0
							 | 
						||
| 
								 | 
							
								#define GREE_UPGRADE_CMD_FAILUR                          1
							 | 
						||
| 
								 | 
							
								#define GREE_UPGRADE_CMD_DATA_INDEXERROR                 2
							 | 
						||
| 
								 | 
							
								#define GREE_UPGRADE_CMD_PARAM_INVALID                   3
							 | 
						||
| 
								 | 
							
								#define GREE_UPGRADE_CMD_UGTYPE_NONSUPPORT               4
							 | 
						||
| 
								 | 
							
								#define GREE_UPGRADE_CMD_CCO_IS_GROUPNETING              5
							 | 
						||
| 
								 | 
							
								#define GREE_UPGRADE_CMD_LENGTH_CHECK_ERR                6
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* ul event */
							 | 
						||
| 
								 | 
							
								#define GREE_REPORT_UPGRADE_INVALID                      0
							 | 
						||
| 
								 | 
							
								#define GREE_REPORT_UPGRADE_CRC_OK                       1
							 | 
						||
| 
								 | 
							
								#define GREE_REPORT_UPGRADE_CRC_ERROR                    2
							 | 
						||
| 
								 | 
							
								#define GREE_REPORT_UPGRADE_RESET_CHIP                   3
							 | 
						||
| 
								 | 
							
								#define GREE_REPORT_UPGRADE_FILE_INVALID                 4
							 | 
						||
| 
								 | 
							
								#define GREE_REPORT_UPGRADE_UGTYPE_MISMATCH              5
							 | 
						||
| 
								 | 
							
								#define GREE_REPORT_UPGRADE_FILE_COMPLETED               6
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* type of gree upgrading */
							 | 
						||
| 
								 | 
							
								#define IOT_GREE_UPGRADE_INVALID                         0
							 | 
						||
| 
								 | 
							
								#define IOT_GREE_UPGRADE_LOCAL                           1
							 | 
						||
| 
								 | 
							
								#define IOT_GREE_UPGRADE_ALL                             2
							 | 
						||
| 
								 | 
							
								#define IOT_GREE_UPGRADE_STA_LIST                        3
							 | 
						||
| 
								 | 
							
								#define IOT_GREE_UPGRADE_P2P                             4
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/** remote sta upgrading state */
							 | 
						||
| 
								 | 
							
								#define IOT_PLC_REMOTE_UPGRADE_INIT            0
							 | 
						||
| 
								 | 
							
								#define IOT_PLC_REMOTE_UPGRADE_STARTING        1
							 | 
						||
| 
								 | 
							
								#define IOT_PLC_REMOTE_UPGRADE_STARTED         2
							 | 
						||
| 
								 | 
							
								#define IOT_PLC_REMOTE_UPGRADE_TRANSFERRED     3
							 | 
						||
| 
								 | 
							
								#define IOT_PLC_REMOTE_UPGRADE_FAILED          4
							 | 
						||
| 
								 | 
							
								#define IOT_PLC_REMOTE_UPGRADE_STOPED          5
							 | 
						||
| 
								 | 
							
								#define IOT_PLC_REMOTE_UPGRADE_START_FAIL      6
							 | 
						||
| 
								 | 
							
								#define IOT_PLC_REMOTE_UPGRADE_LISTEN          7
							 | 
						||
| 
								 | 
							
								#define IOT_PLC_REMOTE_UPGRADE_RESET           8
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								enum proto_upgrade_dl_subfn_e {
							 | 
						||
| 
								 | 
							
								    PROTO_UPGRADE_DATA            = 0x1,
							 | 
						||
| 
								 | 
							
								    PROTO_UPGRADE_QUERY_STATUS    = 0x2,
							 | 
						||
| 
								 | 
							
								    PROTO_UPGRADE_STOP            = 0x3,
							 | 
						||
| 
								 | 
							
								    PROTO_UPGRADE_START_NODE      = 0x4,
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								enum proto_upgrade_ul_subfn_e {
							 | 
						||
| 
								 | 
							
								    PROTO_UPGRADE_DATA_ACK        = 0x1,
							 | 
						||
| 
								 | 
							
								    PROTO_UPGRADE_DATA_RESULT     = 0x2,
							 | 
						||
| 
								 | 
							
								    PROTO_UPGRADE_COMPLETE        = 0x3,
							 | 
						||
| 
								 | 
							
								    PROTO_UPGRADE_STATUS_RESP     = 0x4,
							 | 
						||
| 
								 | 
							
								    PROTO_UPGRADE_STOP_ACK        = 0x5,
							 | 
						||
| 
								 | 
							
								    PROTO_UPGRADE_START_NODE_ACK  = 0x6,
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								enum proto_upgrade_status_e {
							 | 
						||
| 
								 | 
							
								    UPGRADE_STATUS_IDLE           = 0x0,
							 | 
						||
| 
								 | 
							
								    UPGRADE_STATUS_DATA_RECVING   = 0x1,
							 | 
						||
| 
								 | 
							
								    UPGRADE_STATUS_DATA_RECV_CMP  = 0x2,
							 | 
						||
| 
								 | 
							
								    UPGRADE_STATUS_DATA_BRST      = 0x3,
							 | 
						||
| 
								 | 
							
								    UPGRADE_STATUS_DATA_BRST_CMP  = 0x4,
							 | 
						||
| 
								 | 
							
								    UPGRADE_STATUS_COMPLETE       = 0x5,
							 | 
						||
| 
								 | 
							
								    UPGRADE_STATUS_IDX_ERR        = 0x6,
							 | 
						||
| 
								 | 
							
								    UPGRADE_STATUS_TYPE_ERR       = 0x7,
							 | 
						||
| 
								 | 
							
								    UPGRADE_STATUS_CRC_ERR        = 0x8,
							 | 
						||
| 
								 | 
							
								    UPGRADE_STATUS_FILE_ERR       = 0x9,
							 | 
						||
| 
								 | 
							
								    UPGRADE_STATUS_REMOTE_ERR     = 0xA,
							 | 
						||
| 
								 | 
							
								    UPGRADE_STATUS_NO_IN_WHT_ERR  = 0xB,
							 | 
						||
| 
								 | 
							
								    UPGRADE_STATUS_STA_QUERY      = 0xC,
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#pragma pack(push)  // save the pack status
							 | 
						||
| 
								 | 
							
								#pragma pack(1)     // 1 byte align
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* gree upgrade data */
							 | 
						||
| 
								 | 
							
								typedef struct _gree_frame_fn250_subfn01_t {
							 | 
						||
| 
								 | 
							
								    ge_extend_fn_hdr_t      hdr;
							 | 
						||
| 
								 | 
							
								    uint8_t                 resv0;
							 | 
						||
| 
								 | 
							
								    uint8_t                 resv1;
							 | 
						||
| 
								 | 
							
								    uint8_t                 seq;
							 | 
						||
| 
								 | 
							
								    uint8_t                 upgrade_type;
							 | 
						||
| 
								 | 
							
								    uint16_t                total_seg_cnt;
							 | 
						||
| 
								 | 
							
								    uint16_t                seg_index;
							 | 
						||
| 
								 | 
							
								    uint16_t                data_len;
							 | 
						||
| 
								 | 
							
								    uint8_t                 data[GREE_UPGRADE_DATA_PACKET_LEN];
							 | 
						||
| 
								 | 
							
								    ge_frm_tail_t           tail;
							 | 
						||
| 
								 | 
							
								}gree_frame_fn250_subfn01_t;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* query upgrade status */
							 | 
						||
| 
								 | 
							
								typedef struct _gree_frame_fn250_subfn02_t {
							 | 
						||
| 
								 | 
							
								    ge_extend_fn_hdr_t      hdr;
							 | 
						||
| 
								 | 
							
								    uint8_t                 resv0;
							 | 
						||
| 
								 | 
							
								    uint8_t                 resv1;
							 | 
						||
| 
								 | 
							
								    uint8_t                 seq;
							 | 
						||
| 
								 | 
							
								    uint8_t                 mac[UPGRADE_MAC_BYTE];
							 | 
						||
| 
								 | 
							
								    ge_frm_tail_t           tail;
							 | 
						||
| 
								 | 
							
								} gree_frame_fn250_subfn02_t;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* stop upgrade */
							 | 
						||
| 
								 | 
							
								typedef struct _gree_frame_fn250_subfn03_t {
							 | 
						||
| 
								 | 
							
								    ge_extend_fn_hdr_t      hdr;
							 | 
						||
| 
								 | 
							
								    uint8_t                 resv0;
							 | 
						||
| 
								 | 
							
								    uint8_t                 resv1;
							 | 
						||
| 
								 | 
							
								    uint8_t                 seq;
							 | 
						||
| 
								 | 
							
								    ge_frm_tail_t           tail;
							 | 
						||
| 
								 | 
							
								} gree_frame_fn250_subfn03_t;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* start node upgrade */
							 | 
						||
| 
								 | 
							
								typedef struct _gree_frame_fn250_subfn04_t {
							 | 
						||
| 
								 | 
							
								    ge_extend_fn_hdr_t      hdr;
							 | 
						||
| 
								 | 
							
								    uint8_t                 resv0;
							 | 
						||
| 
								 | 
							
								    uint8_t                 resv1;
							 | 
						||
| 
								 | 
							
								    uint8_t                 seq;
							 | 
						||
| 
								 | 
							
								    uint16_t                total;
							 | 
						||
| 
								 | 
							
								    uint16_t                index;
							 | 
						||
| 
								 | 
							
								    uint8_t                 mac[UPGRADE_MAC_BYTE];
							 | 
						||
| 
								 | 
							
								    ge_frm_tail_t           tail;
							 | 
						||
| 
								 | 
							
								} gree_frame_fn250_subfn04_t;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* gree upgrade data ack */
							 | 
						||
| 
								 | 
							
								typedef struct _gree_frame_fn251_subfn01_t {
							 | 
						||
| 
								 | 
							
								    ge_extend_fn_hdr_t      hdr;
							 | 
						||
| 
								 | 
							
								    uint8_t                 resv0;
							 | 
						||
| 
								 | 
							
								    uint8_t                 resv1;
							 | 
						||
| 
								 | 
							
								    uint8_t                 seq;
							 | 
						||
| 
								 | 
							
								    uint8_t                 result;
							 | 
						||
| 
								 | 
							
								    uint16_t                seg_index;
							 | 
						||
| 
								 | 
							
								    ge_frm_tail_t           tail;
							 | 
						||
| 
								 | 
							
								} gree_frame_fn251_subfn01_t;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* gree upgrade data result */
							 | 
						||
| 
								 | 
							
								typedef struct _gree_frame_fn251_subfn02_t {
							 | 
						||
| 
								 | 
							
								    ge_extend_fn_hdr_t      hdr;
							 | 
						||
| 
								 | 
							
								    uint8_t                 resv0;
							 | 
						||
| 
								 | 
							
								    uint8_t                 resv1;
							 | 
						||
| 
								 | 
							
								    uint8_t                 seq;
							 | 
						||
| 
								 | 
							
								    uint8_t                 result;
							 | 
						||
| 
								 | 
							
								    uint8_t                 reason;
							 | 
						||
| 
								 | 
							
								    ge_frm_tail_t           tail;
							 | 
						||
| 
								 | 
							
								} gree_frame_fn251_subfn02_t;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* gree upgrade completed  */
							 | 
						||
| 
								 | 
							
								typedef struct _gree_frame_fn251_subfn03_t {
							 | 
						||
| 
								 | 
							
								    ge_extend_fn_hdr_t      hdr;
							 | 
						||
| 
								 | 
							
								    uint8_t                 resv0;
							 | 
						||
| 
								 | 
							
								    uint8_t                 resv1;
							 | 
						||
| 
								 | 
							
								    uint8_t                 seq;
							 | 
						||
| 
								 | 
							
								    ge_frm_tail_t           tail;
							 | 
						||
| 
								 | 
							
								} gree_frame_fn251_subfn03_t;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* response query gree upgrade status */
							 | 
						||
| 
								 | 
							
								typedef struct _gree_frame_fn251_subfn04_t {
							 | 
						||
| 
								 | 
							
								    ge_extend_fn_hdr_t      hdr;
							 | 
						||
| 
								 | 
							
								    uint8_t                 resv0;
							 | 
						||
| 
								 | 
							
								    uint8_t                 resv1;
							 | 
						||
| 
								 | 
							
								    uint8_t                 seq;
							 | 
						||
| 
								 | 
							
								    uint16_t                total;
							 | 
						||
| 
								 | 
							
								    uint16_t                index;
							 | 
						||
| 
								 | 
							
								    uint8_t                 mac[UPGRADE_MAC_BYTE];
							 | 
						||
| 
								 | 
							
								    uint8_t                 status;
							 | 
						||
| 
								 | 
							
								    uint8_t                 progress;
							 | 
						||
| 
								 | 
							
								    ge_frm_tail_t           tail;
							 | 
						||
| 
								 | 
							
								} gree_frame_fn251_subfn04_t;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* stop upgrade ack */
							 | 
						||
| 
								 | 
							
								typedef struct _gree_frame_fn251_subfn05_t {
							 | 
						||
| 
								 | 
							
								    ge_extend_fn_hdr_t      hdr;
							 | 
						||
| 
								 | 
							
								    uint8_t                 resv0;
							 | 
						||
| 
								 | 
							
								    uint8_t                 resv1;
							 | 
						||
| 
								 | 
							
								    uint8_t                 seq;
							 | 
						||
| 
								 | 
							
								    uint8_t                 result;
							 | 
						||
| 
								 | 
							
								    uint8_t                 reason;
							 | 
						||
| 
								 | 
							
								    ge_frm_tail_t           tail;
							 | 
						||
| 
								 | 
							
								} gree_frame_fn251_subfn05_t;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* start upgrade node ack */
							 | 
						||
| 
								 | 
							
								typedef struct _gree_frame_fn251_subfn06_t {
							 | 
						||
| 
								 | 
							
								    ge_extend_fn_hdr_t      hdr;
							 | 
						||
| 
								 | 
							
								    uint8_t                 resv0;
							 | 
						||
| 
								 | 
							
								    uint8_t                 resv1;
							 | 
						||
| 
								 | 
							
								    uint8_t                 seq;
							 | 
						||
| 
								 | 
							
								    uint8_t                 result;
							 | 
						||
| 
								 | 
							
								    uint8_t                 reason;
							 | 
						||
| 
								 | 
							
								    ge_frm_tail_t           tail;
							 | 
						||
| 
								 | 
							
								} gree_frame_fn251_subfn06_t;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#pragma pack(pop) // restore the pack status
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/** cco local upgrade info */
							 | 
						||
| 
								 | 
							
								typedef struct _gree_cco_upgrade_info_t {
							 | 
						||
| 
								 | 
							
								    uint32_t                len;
							 | 
						||
| 
								 | 
							
								    uint8_t                 *file_data;
							 | 
						||
| 
								 | 
							
								    uint16_t                expect_seg_index;
							 | 
						||
| 
								 | 
							
								    uint8_t                 upgrade_type;
							 | 
						||
| 
								 | 
							
								    uint8_t                 upgrade_status;
							 | 
						||
| 
								 | 
							
								    /** cco recv data and broadcast data progress */
							 | 
						||
| 
								 | 
							
								    uint8_t                 data_progress;
							 | 
						||
| 
								 | 
							
								    /** sta upgrade average progress*/
							 | 
						||
| 
								 | 
							
								    uint8_t                 sta_upgrade_prg;
							 | 
						||
| 
								 | 
							
								    /** stop upgrade flag */
							 | 
						||
| 
								 | 
							
								    bool_t                  stop_upgrade_flag;
							 | 
						||
| 
								 | 
							
								    /** sta upgrade count */
							 | 
						||
| 
								 | 
							
								    uint16_t                sta_upgrade_cnt;
							 | 
						||
| 
								 | 
							
								    /** upgrade_id */
							 | 
						||
| 
								 | 
							
								    uint32_t                upgrade_id;
							 | 
						||
| 
								 | 
							
								} gree_cco_upgrade_info_t;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/** sta remote network upgrade info */
							 | 
						||
| 
								 | 
							
								typedef struct _gree_sta_upgrade_info_t {
							 | 
						||
| 
								 | 
							
								    uint8_t                 mac[UPGRADE_MAC_BYTE];
							 | 
						||
| 
								 | 
							
								    uint8_t                 status;
							 | 
						||
| 
								 | 
							
								    uint8_t                 progress;
							 | 
						||
| 
								 | 
							
								} gree_sta_upgrade_info_t;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* Gree upgrade fn code handle. */
							 | 
						||
| 
								 | 
							
								typedef void(*PROTO_UPGRADE_FN_HANDLE)(uint8_t *data, uint16_t len);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* Gree upgrade fn table */
							 | 
						||
| 
								 | 
							
								typedef struct _proto_upgrade_fnhdl_tbl_t
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    /*gree function code*/
							 | 
						||
| 
								 | 
							
								    uint32_t cmdid;
							 | 
						||
| 
								 | 
							
								    /*each code handler*/
							 | 
						||
| 
								 | 
							
								    PROTO_UPGRADE_FN_HANDLE cmd_handle_fn;
							 | 
						||
| 
								 | 
							
								}proto_upgrade_fnhdl_tbl_t;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @brief iot_proto_upgrade_fn_handler - handle gree upgrade fn cmd
							 | 
						||
| 
								 | 
							
								 * @param data:          data for upgrade cmd
							 | 
						||
| 
								 | 
							
								 * @param len:           data len
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								void iot_proto_upgrade_fn_handler(uint8_t *data, uint16_t len);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @brief iot_proto_upgrade_initialize - proto upgrade initialize
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								void iot_proto_upgrade_initialize();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @brief iot_proto_update_sta_upgrade_status - proto update upgrade state
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								void iot_proto_update_sta_upgrade_status(void);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifdef __cplusplus
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif
							 |