123 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			123 lines
		
	
	
		
			3.7 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 PROTO_SPG_STA_H
 | 
						|
#define PROTO_SPG_STA_H
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
extern "C" {
 | 
						|
#endif
 | 
						|
 | 
						|
#pragma pack(push)  /* save the pack status */
 | 
						|
#pragma pack(1)     /* 1 byte align */
 | 
						|
 | 
						|
/* define spg meter detect state */
 | 
						|
#define PROTO_SPG_MD_STATE_DETECTED        0
 | 
						|
#define PROTO_SPG_MD_STATE_DETECTING       1
 | 
						|
 | 
						|
/* power meter info format */
 | 
						|
typedef struct _spg_pm_info {
 | 
						|
    /* power meter addr */
 | 
						|
    uint8_t addr[IOT_MAC_ADDR_LEN];
 | 
						|
} spg_pm_info_t;
 | 
						|
 | 
						|
/* response power meter addresses number */
 | 
						|
typedef struct _spg_afn21_fn01_pm_addr_num_rsp {
 | 
						|
    /* power meter addresses number */
 | 
						|
    uint8_t pm_num;
 | 
						|
} spg_afn21_fn01_pm_addr_num_rsp_t;
 | 
						|
 | 
						|
/* request power meter addresses */
 | 
						|
typedef struct _spg_afn21_fn02_pm_addr_req {
 | 
						|
    /* start meter serial number */
 | 
						|
    uint8_t start_num;
 | 
						|
    /* request power meter number */
 | 
						|
    uint8_t pm_num;
 | 
						|
} spg_afn21_fn02_pm_addr_req_t;
 | 
						|
 | 
						|
/* response power meter addresses */
 | 
						|
typedef struct _spg_afn21_fn02_pm_addr_rsp {
 | 
						|
    /* response meter number */
 | 
						|
    uint8_t pm_num;
 | 
						|
    /* response meter addr list */
 | 
						|
    spg_pm_info_t pm[0];
 | 
						|
} spg_afn21_fn02_pm_addr_rsp_t;
 | 
						|
 | 
						|
/* response collector addr */
 | 
						|
typedef struct _spg_afn21_fn03_ct_addr_rsp {
 | 
						|
    /* collector addr */
 | 
						|
    uint8_t addr[IOT_MAC_ADDR_LEN];
 | 
						|
} spg_afn21_fn03_ct_addr_rsp_t;
 | 
						|
 | 
						|
/* request meter detect list */
 | 
						|
typedef struct _spg_afn21_fn04_md_list_req {
 | 
						|
    /* meter count */
 | 
						|
    uint8_t meter_count;
 | 
						|
    /* meter addr list */
 | 
						|
    uint8_t meter_addr_list[0][IOT_MAC_ADDR_LEN];
 | 
						|
} spg_afn21_fn04_md_list_req_t;
 | 
						|
 | 
						|
/* response meter detect state */
 | 
						|
typedef struct _spg_afn21_fn05_md_state_rsq {
 | 
						|
    /* state, see PROTO_SPG_MD_STATE_XXX */
 | 
						|
    uint8_t state;
 | 
						|
} spg_afn21_fn05_md_state_rsp_t;
 | 
						|
 | 
						|
/* request login addr to collector */
 | 
						|
typedef struct _spg_afn21_fn06_login_addr_req {
 | 
						|
    /* collector addr */
 | 
						|
    uint8_t addr[IOT_MAC_ADDR_LEN];
 | 
						|
} spg_afn21_fn06_login_addr_req_t;
 | 
						|
 | 
						|
/* response login addr to infrared */
 | 
						|
typedef struct _spg_afn21_fn06_ir_login_addr_rsp {
 | 
						|
    /* login addr */
 | 
						|
    uint8_t addr[IOT_MAC_ADDR_LEN];
 | 
						|
} spg_afn21_fn06_ir_login_addr_rsp_t;
 | 
						|
 | 
						|
/* request and response transparent data format */
 | 
						|
typedef struct _spg_afn22_fn01_trans_data {
 | 
						|
    /* data len */
 | 
						|
    uint16_t len;
 | 
						|
    /* transparent data */
 | 
						|
    uint8_t data[0];
 | 
						|
} spg_afn22_fn01_trans_data_t;
 | 
						|
 | 
						|
/* response vendor code and software version info */
 | 
						|
typedef struct _spg_afn23_fn01_query_ver_info_rsp {
 | 
						|
    /* vendor code, ASCII */
 | 
						|
    uint16_t vendor_id;
 | 
						|
    /* chip code, ASCII */
 | 
						|
    uint16_t chip_code;
 | 
						|
    /* build time, format DD/MM/YY, BCD */
 | 
						|
    uint8_t build_time[3];
 | 
						|
    /* version */
 | 
						|
    uint8_t ver[2];
 | 
						|
} spg_afn23_fn01_query_ver_info_rsp_t;
 | 
						|
 | 
						|
/* response device type */
 | 
						|
typedef struct _spg_afn25_fn01_query_dev_type_rsp {
 | 
						|
    /* device type, 0 is collector, 1 is converter */
 | 
						|
    uint8_t dev_type;
 | 
						|
} spg_afn25_fn01_query_dev_type_rsp_t;
 | 
						|
 | 
						|
#pragma pack(pop)   /* restore the pack status */
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
}
 | 
						|
#endif
 | 
						|
 | 
						|
#endif
 |