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
|