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
 |