481 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			481 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
| /****************************************************************************
 | |
| 
 | |
| 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_EM_EXT_API_H_
 | |
| #define _IOT_EM_EXT_API_H_
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif
 | |
| 
 | |
| #include "iot_pkt_api.h"
 | |
| #include "iot_spi_api.h"
 | |
| 
 | |
| /* energy meter extern support module id */
 | |
| #define IOT_EM_EXT_MODULE_INVALID           0x00
 | |
| #define IOT_EM_EXT_MODULE_ATT7022           0x01
 | |
| 
 | |
| /* energy meter extern communication hw interface */
 | |
| #define IOT_EM_EXT_INTERFACE_SPI            0x00
 | |
| #define IOT_EM_EXT_INTERFACE_UART           0x01
 | |
| #define IOT_EM_EXT_INTERFACE_I2C            0x02
 | |
| 
 | |
| /* kunlun spi port default */
 | |
| #define IOT_EM_EXT_INTERFACE_SPI_PORT       0x00
 | |
| 
 | |
| /* energy meter extern general define */
 | |
| /* energy meter extern connect phase id */
 | |
| #define IOT_EM_EXT_PHASE_A                  0
 | |
| #define IOT_EM_EXT_PHASE_B                  1
 | |
| #define IOT_EM_EXT_PHASE_C                  2
 | |
| #define IOT_EM_EXT_PHASE_ALL                3
 | |
| #define IOT_EM_EXT_PHASE_CNT                4
 | |
| 
 | |
| /* energy meter extern measure parameter. start */
 | |
| /* power: active power */
 | |
| #define IOT_EM_EXT_MTYPE_P_P                0
 | |
| /* power: reactive power */
 | |
| #define IOT_EM_EXT_MTYPE_P_Q                1
 | |
| /* power: apparent power */
 | |
| #define IOT_EM_EXT_MTYPE_P_S                2
 | |
| /* power: fundamental wave active power */
 | |
| #define IOT_EM_EXT_MTYPE_P_LINE_P           3
 | |
| /* power: power factor */
 | |
| #define IOT_EM_EXT_MTYPE_P_FACTOR           4
 | |
| /* power: active power sign */
 | |
| #define IOT_EM_EXT_MTYPE_POWER_SIGN         5
 | |
| #define IOT_EM_EXT_MSIGN_P_A_MASK           0x01
 | |
| #define IOT_EM_EXT_MSIGN_P_A_OFFSET         0
 | |
| #define IOT_EM_EXT_MSIGN_P_B_MASK           0x02
 | |
| #define IOT_EM_EXT_MSIGN_P_B_OFFSET         1
 | |
| #define IOT_EM_EXT_MSIGN_P_C_MASK           0x04
 | |
| #define IOT_EM_EXT_MSIGN_P_C_OFFSET         2
 | |
| #define IOT_EM_EXT_MSIGN_P_ALL_MASK         0x08
 | |
| #define IOT_EM_EXT_MSIGN_P_ALL_OFFSET       3
 | |
| #define IOT_EM_EXT_MSIGN_Q_A_MASK           0x10
 | |
| #define IOT_EM_EXT_MSIGN_Q_A_OFFSET         4
 | |
| #define IOT_EM_EXT_MSIGN_Q_B_MASK           0x20
 | |
| #define IOT_EM_EXT_MSIGN_Q_B_OFFSET         5
 | |
| #define IOT_EM_EXT_MSIGN_Q_C_MASK           0x40
 | |
| #define IOT_EM_EXT_MSIGN_Q_C_OFFSET         6
 | |
| #define IOT_EM_EXT_MSIGN_Q_ALL_MASK         0x80
 | |
| #define IOT_EM_EXT_MSIGN_Q_ALL_OFFSET       7
 | |
| /* voltage: effective voltage  */
 | |
| #define IOT_EM_EXT_MTYPE_U_RMS              6
 | |
| /* voltage: fundamental wave effective voltage */
 | |
| #define IOT_EM_EXT_MTYPE_U_LINE_RMS         7
 | |
| /* current: effective electric current */
 | |
| #define IOT_EM_EXT_MTYPE_I_RMS              8
 | |
| /* current: fundamental wave effective current */
 | |
| #define IOT_EM_EXT_MTYPE_I_LINE_RMS         9
 | |
| /* energy: active energy  */
 | |
| #define IOT_EM_EXT_MTYPE_E_P                10
 | |
| /* energy: reactive energy */
 | |
| #define IOT_EM_EXT_MTYPE_E_Q                11
 | |
| /* energy: apparent energy */
 | |
| #define IOT_EM_EXT_MTYPE_E_S                12
 | |
| /* energy: fundamental wave effective active energy */
 | |
| #define IOT_EM_EXT_MTYPE_E_LINE_P           13
 | |
| /* angle: voltage and current angle */
 | |
| #define IOT_EM_EXT_MTYPE_ANGLE_U_I          14
 | |
| /* angle: voltage angle */
 | |
| #define IOT_EM_EXT_MTYPE_ANGLE_UA_UB        15
 | |
| #define IOT_EM_EXT_MTYPE_ANGLE_UA_UC        16
 | |
| #define IOT_EM_EXT_MTYPE_ANGLE_UB_UC        17
 | |
| /* frequency */
 | |
| #define IOT_EM_EXT_MTYPE_FREQ               18
 | |
| /* temperature */
 | |
| #define IOT_EM_EXT_MTYPE_TPSD               19
 | |
| /* ec constant */
 | |
| #define IOT_EM_EXT_MTYPE_EC                 20
 | |
| /* current: read current rms offset */
 | |
| #define IOT_EM_EXT_MTYPE_I_RMS_OFFSET       21
 | |
| /* voltage: read voltage rms offset */
 | |
| #define IOT_EM_EXT_MTYPE_U_RMS_OFFSET       22
 | |
| /* current: effective electric curren for N line */
 | |
| #define IOT_EM_EXT_MTYPE_I_N_RMS            23
 | |
| //TODO: add code
 | |
| #define IOT_EM_EXT_MTYPE_MAX                24
 | |
| /* energy meter extern measure parameter. end */
 | |
| 
 | |
| /* energy meter extern calibration parameter. start */
 | |
| /* power: active power */
 | |
| #define IOT_EM_EXT_CTYPE_P_P_GAIN           0
 | |
| #define IOT_EM_EXT_CTYPE_P_P_OFFSET         1
 | |
| /* power: reactive power */
 | |
| #define IOT_EM_EXT_CTYPE_P_Q_GAIN           2
 | |
| #define IOT_EM_EXT_CTYPE_P_Q_OFFSET         3
 | |
| /* power: apparent power */
 | |
| #define IOT_EM_EXT_CTYPE_P_S_GAIN           4
 | |
| /* voltage: effective voltage  */
 | |
| #define IOT_EM_EXT_CTYPE_U_GAIN             5
 | |
| #define IOT_EM_EXT_CTYPE_U_OFFSET           6
 | |
| /* current: effective electric current */
 | |
| #define IOT_EM_EXT_CTYPE_I_GAIN             7
 | |
| #define IOT_EM_EXT_CTYPE_I_OFFSET           8
 | |
| /* phase calibration */
 | |
| #define IOT_EM_EXT_CTYPE_PHASE_CALI0        9
 | |
| #define IOT_EM_EXT_CTYPE_PHASE_CALI1        10
 | |
| #define IOT_EM_EXT_CTYPE_PHASE_CALI2        11
 | |
| #define IOT_EM_EXT_CTYPE_PHASE_REGION01     12
 | |
| #define IOT_EM_EXT_CTYPE_PHASE_REGION12     13
 | |
| /* temperature calibration */
 | |
| #define IOT_EM_EXT_CTYPE_TPSD_OFFSET        14
 | |
| /* current start up threshold */
 | |
| #define IOT_EM_EXT_CTYPE_I_START            15
 | |
| /* power start up threshold */
 | |
| #define IOT_EM_EXT_CTYPE_P_START            16
 | |
| /* power gain calculate by oneshot method */
 | |
| #define IOT_EM_EXT_CTYPE_P_P_GAIN_ONESHOT   17
 | |
| /* phase angle calculate by oneshot method */
 | |
| #define IOT_EM_EXT_CTYPE_PHS_CALI_ONESHOT   18
 | |
| /* current: effective electric current for N line */
 | |
| #define IOT_EM_EXT_CTYPE_I_N_GAIN           19
 | |
| /* calibration type max id */
 | |
| #define IOT_EM_EXT_CTYPE_MAX                0x7F
 | |
| /* energy meter extern calibration parameter. end */
 | |
| 
 | |
| /* special function id */
 | |
| /* soft reset extern energy meter module */
 | |
| #define IOT_EM_EXT_FUNC_SW_RST              0x00
 | |
| /* hardware reset extern energy meter module */
 | |
| #define IOT_EM_EXT_FUNC_HW_RST              0x01
 | |
| /* clear extern energy meter(HW) calibration parameter */
 | |
| #define IOT_EM_EXT_FUNC_CALI_AREA_CLR       0x02
 | |
| /* set extern energy meter constant parameter */
 | |
| #define IOT_EM_EXT_FUNC_CALI_CONST_SET      0x03
 | |
| /* get extern energy meter(HW) calibration parameter */
 | |
| #define IOT_EM_EXT_FUNC_CALI_AREA_GET       0x04
 | |
| 
 | |
| /* for compitable with extend cali area introduce cali version */
 | |
| /* cali version invalid */
 | |
| #define IOT_EM_EXT_CALI_VERSION_INVALID     (0xff)
 | |
| /* cali version never write version to flash */
 | |
| #define IOT_EM_EXT_CALI_VERSION_BASE        (0)
 | |
| /* cali version support base cali area and extend erea */
 | |
| #define IOT_EM_EXT_CALI_VERSION_EXT         (1)
 | |
| /* cali version add support N current */
 | |
| #define IOT_EM_EXT_CALI_VERSION_EXT_V2      (2)
 | |
| /* target cali version */
 | |
| #define IOT_EM_EXT_CALI_TARGET_VER          IOT_EM_EXT_CALI_VERSION_EXT_V2
 | |
| 
 | |
| #pragma pack(push)
 | |
| #pragma pack(1)
 | |
| 
 | |
| /* calibration data start */
 | |
| /* calibration data parameter for standard and actuual mode */
 | |
| typedef struct _iot_em_ext_cali_data_std_act {
 | |
|     int32_t std;
 | |
|     int32_t actual;
 | |
| } iot_em_ext_cali_data_std_act_t;
 | |
| 
 | |
| /* calibration data parameter for U/I offset calibration */
 | |
| typedef struct _iot_em_ext_cali_data_raw_data {
 | |
|     uint32_t raw;
 | |
| } iot_em_ext_cali_data_raw_data_t;
 | |
| 
 | |
| /* calibration data parameter for I/P start rate calibration */
 | |
| typedef struct _iot_em_ext_cali_data_set_rate {
 | |
|     uint32_t rate;
 | |
| } iot_em_ext_cali_data_set_rate_t;
 | |
| 
 | |
| /* calibration data for power gain */
 | |
| typedef struct _iot_em_ext_cali_data_p_gain {
 | |
|     /* indicate data type. 0 - std actual type, others - err type */
 | |
|     uint8_t is_err;
 | |
|     union {
 | |
|         /* standard meter output error value.
 | |
|          * e.g. 0.74%, then set err = 74
 | |
|          */
 | |
|         int32_t err;
 | |
|         /* standard/actual value, unit: 1mW */
 | |
|         iot_em_ext_cali_data_std_act_t  std_act;
 | |
|     } data;
 | |
| } iot_em_ext_cali_data_p_gain_t;
 | |
| 
 | |
| /* calibration data for power phase */
 | |
| typedef struct _iot_em_ext_cali_data_p_phase {
 | |
|     /* indicate data type. 0 - std actual type, others - err type */
 | |
|     uint8_t is_err;
 | |
|     union {
 | |
|         /* standard meter output error value.
 | |
|          * e.g. 0.74%, then set err = 74
 | |
|          */
 | |
|         int32_t err;
 | |
|         /* standard/actual value, unit: 1mW */
 | |
|         iot_em_ext_cali_data_std_act_t  std_act;
 | |
|     } data;
 | |
| } iot_em_ext_cali_data_p_phase_t;
 | |
| 
 | |
| /* calibration data for U gain, U unit: 1mV */
 | |
| typedef iot_em_ext_cali_data_std_act_t iot_em_ext_cali_data_u_gain_t;
 | |
| 
 | |
| /* calibration data for I gain, I unit: 1mA */
 | |
| typedef iot_em_ext_cali_data_std_act_t iot_em_ext_cali_data_i_gain_t;
 | |
| 
 | |
| /* calibration data for p_gain/phase angel, unit:1W/1Var */
 | |
| typedef struct {
 | |
|     /* calibration data of P include raw and actual value */
 | |
|     iot_em_ext_cali_data_std_act_t p;
 | |
|     /* calibration data of Q include raw and actual value */
 | |
|     iot_em_ext_cali_data_std_act_t q;
 | |
| } iot_em_ext_cali_p_data_oneshot_t;
 | |
| 
 | |
| /* calibration data for temperature offset , T unit: 0.1 Celsius */
 | |
| typedef struct {
 | |
|     int32_t std;
 | |
|     int32_t actual;
 | |
| } iot_em_ext_cali_data_tpsd_t;
 | |
| 
 | |
| /* voltage channel hw input config */
 | |
| typedef struct _iot_em_ext_hw_u_cfg {
 | |
|     /* voltage channel transfer rate */
 | |
|     uint32_t rate;
 | |
| } iot_em_ext_u_cfg_t;
 | |
| 
 | |
| /* current channel hw input config */
 | |
| typedef struct _iot_em_ext_hw_i_cfg {
 | |
|     /* current channel sample resistance value. unit: ohm */
 | |
|     uint32_t r_sample;
 | |
|     /* current channel transfer rate */
 | |
|     uint32_t rate;
 | |
| } iot_em_ext_i_cfg_t;
 | |
| 
 | |
| /* energy meter constant config */
 | |
| typedef struct _iot_em_ext_cali_const {
 | |
|     /* EC constant */
 | |
|     uint32_t ec; /* low 16bit */
 | |
|     /* voltage channel config */
 | |
|     iot_em_ext_u_cfg_t  u_ch;
 | |
|     /* current channel config */
 | |
|     iot_em_ext_i_cfg_t  i_ch;
 | |
| } iot_em_ext_cali_const_t;
 | |
| /* calibration data end */
 | |
| 
 | |
| #pragma pack(pop)
 | |
| 
 | |
| /* energy measure misc data */
 | |
| typedef struct _iot_em_ext_meas_misc {
 | |
|     /* EC constant */
 | |
|     uint16_t ec;
 | |
|     /* phase line frequency. unit: 0.01Hz */
 | |
|     uint16_t freq;
 | |
|     /* energy chip temperature. unit: 0.1 centigrade */
 | |
|     int16_t temperature;
 | |
|     /* voltage angle between phaseA and phaseB. unit: 1degrees */
 | |
|     int16_t angle_ua_ub;
 | |
|     /* voltage angle between phaseA and phaseC. unit: 1degrees */
 | |
|     int16_t angle_ua_uc;
 | |
|     /* voltage angle between phaseB and phaseC. unit: 1degrees */
 | |
|     int16_t angle_ub_uc;
 | |
|     /* current rms for N line. unit: 0.00001A */
 | |
|     int32_t i_n_rms;
 | |
|     //TODO:
 | |
| } iot_em_ext_meas_misc_t;
 | |
| 
 | |
| /* energy measure all phase common data */
 | |
| typedef struct _iot_em_ext_meas_common {
 | |
|     /* active powoer sign. 0: positive , 1: negative */
 | |
|     uint16_t p_sign         : 1,/* 1bit */
 | |
|     /* reactive powoer sign. 0: positive , 1: negative */
 | |
|              q_sign         : 1,
 | |
|     /* reserved for further use */
 | |
|              rsvd0          : 14;
 | |
|     /* power factor. unit: 0.001 */
 | |
|     int16_t p_factor;
 | |
|     /* active power. unit: 0.000001KW */
 | |
|     int32_t p_p;
 | |
|     /* reactive power. unit: 0.000001Kvar */
 | |
|     int32_t p_q;
 | |
|     /* apparent power. unit: 0.000001KVA */
 | |
|     int32_t p_s;
 | |
|     /* voltage rms. unit: 0.1V */
 | |
|     uint16_t u_rms;
 | |
|     /* power angele(only phaseA/B/C). unit: 0.1degrees */
 | |
|     int16_t angle_u_i;
 | |
|     /* current rms. unit: 0.00001A */
 | |
|     int32_t i_rms;
 | |
|     /* active energy. unit: 1/ec kwh */
 | |
|     uint32_t e_p;
 | |
|     /* reactive energy. unit: 1/ec kvarh */
 | |
|     uint32_t e_q;
 | |
|     /* apparent energy. unit: 1/ec kwh */
 | |
|     uint32_t e_s;
 | |
| } iot_em_ext_meas_common_t;
 | |
| 
 | |
| /* measure value ctxt */
 | |
| typedef struct _iot_em_ext_meas_data {
 | |
|     /* measure update timestamp */
 | |
|     uint32_t ts;
 | |
|     /* misc measure */
 | |
|     iot_em_ext_meas_misc_t      misc;
 | |
|     /* total phase(phase A/B/C/All) measure */
 | |
|     iot_em_ext_meas_common_t    phase[IOT_EM_EXT_PHASE_CNT];
 | |
| } iot_em_ext_meas_data_t;
 | |
| /* energy measure ctxt. end */
 | |
| 
 | |
| /* energy hw config info context */
 | |
| typedef struct _iot_em_ext_hw_cfg {
 | |
|     /* communication interface between energy meter extern module and kunlun.
 | |
|      * see IOT_EM_EXT_INTERFACE_XXX
 | |
|      */
 | |
|     uint32_t interface_proto    : 2,
 | |
|     /* em extern module reset gpio */
 | |
|         gpio_rst                : 8,
 | |
|         rev0                    : 22;
 | |
|     /* communication interface config */
 | |
|     union {
 | |
|         /* spi config info */
 | |
|         iot_spi_cfg_t   spi;
 | |
|         /* TODO: reserved. */
 | |
|         uint32_t        uart;
 | |
|     } comm;
 | |
| } iot_em_ext_hw_cfg_t;
 | |
| 
 | |
| /* @brief               measure data callback register.
 | |
|  *
 | |
|  * @param entry         measure data buffer entry address
 | |
|  * @return:             none.
 | |
|  */
 | |
| typedef void (*iot_em_ext_meas_std_rpt_func_t)(iot_em_ext_meas_data_t \
 | |
|     const *entry);
 | |
| 
 | |
| /* energy config info context */
 | |
| typedef struct _iot_em_ext_cfg {
 | |
|     /* communication hw config */
 | |
|     iot_em_ext_hw_cfg_t             hw_cfg;
 | |
|     /* measure data report callback function */
 | |
|     iot_em_ext_meas_std_rpt_func_t  rpt;
 | |
| } iot_em_ext_cfg_t;
 | |
| 
 | |
| /* @breif:          calibration finish callback function
 | |
|  * @param res       calibration result, eg, ERR_OK or ERR_FAIL
 | |
|  * @param reason    calibration fail reason, eg IOT_EM_EXT_ONESHOT_CALI_FAIL_XXX
 | |
|  * @param return    none
 | |
|  */
 | |
| typedef void (*iot_em_ext_rpt_cali_res_cb_t)(uint8_t res, uint32_t reason);
 | |
| 
 | |
| /* standard source output parameter define */
 | |
| typedef struct _iot_em_ext_cali_src_para {
 | |
|     /* input standard source voltage, unit: 0.1V */
 | |
|     uint16_t u;
 | |
|     /* input stardard source current, unit: 0.01A */
 | |
|     uint16_t i;
 | |
|     /* input standard source active power, unit: 0.1W */
 | |
|     int32_t p;
 | |
|     /* input standard source reactive power, unit: 0.1Var */
 | |
|     int32_t q;
 | |
| } iot_em_ext_cali_src_para_t;
 | |
| 
 | |
| /* calibrate defult parameter type */
 | |
| typedef struct _iot_em_ext_cali_zero_para {
 | |
|     /* u offset cali zero enable */
 | |
|     uint32_t u_offset_en        : 1,
 | |
|     /* i offset cali zero enable */
 | |
|              i_offset_en        : 1,
 | |
|              resv               : 30;
 | |
|     /* u offset reg data */
 | |
|     uint16_t u_offset[IOT_EM_EXT_PHASE_ALL];
 | |
|     /* i offset reg data */
 | |
|     uint16_t i_offset[IOT_EM_EXT_PHASE_CNT];
 | |
| } iot_em_ext_cali_default_para_t;
 | |
| 
 | |
| /* app trigger calibration, config parameter define */
 | |
| typedef struct _iot_em_ext_oneshot_cali_cfg {
 | |
|     /* input max sample times */
 | |
|     uint32_t max_smpl              : 8,
 | |
|     /* is calibrate default parameter enable */
 | |
|              is_cali_defeault_en   : 1,
 | |
|              resv                  : 23;
 | |
|     /* standard source device output parameter, eg U/I/PF */
 | |
|     iot_em_ext_cali_src_para_t src_phase[IOT_EM_EXT_PHASE_ALL];
 | |
|     /* hardware config const parameter */
 | |
|     iot_em_ext_cali_const_t cali_const;
 | |
|     /* calibration finish callback function */
 | |
|     iot_em_ext_rpt_cali_res_cb_t func;
 | |
|     /* default para data */
 | |
|     iot_em_ext_cali_default_para_t default_para;
 | |
| } iot_em_ext_oneshot_cali_cfg_t;
 | |
| 
 | |
| /* @brief               read measure data from local buffer.
 | |
|  *
 | |
|  * @param meas_type     read data type, see IOT_EM_EXT_MTYPE_XXX
 | |
|  * @param em_ext_phase  read phase id, see IOT_EM_EXT_PLC_PHASE_XXX
 | |
|  * @param result        read result. unit see iot_em_ext_meas_data_t.
 | |
|  * @return:             error code. see see ERR_XXX
 | |
|  */
 | |
| uint32_t iot_em_ext_get_meas_local(uint8_t meas_type, uint8_t em_ext_phase,
 | |
|     int32_t *result);
 | |
| 
 | |
| /* @brief               read measure data from chip.
 | |
|  *
 | |
|  * @param meas_type     read data type, see IOT_EM_EXT_MTYPE_XXX
 | |
|  * @param is_rawdata    is get measure raw data
 | |
|  * @param em_ext_phase  read phase id, see IOT_EM_EXT_PLC_PHASE_XXX
 | |
|  * @return:             return measure data
 | |
|  */
 | |
| int32_t iot_em_ext_read_meas(uint8_t meas_type, uint8_t is_rawdata,
 | |
|     uint8_t em_ext_phase);
 | |
| 
 | |
| /* @brief               open energy module
 | |
|  *
 | |
|  * @param em_ext_cfg    hw config parameters
 | |
|  * @return:             error code, see ERR_XXX
 | |
|  */
 | |
| uint32_t iot_em_ext_module_open(iot_em_ext_cfg_t *em_ext_cfg);
 | |
| 
 | |
| /* @brief               close energy module
 | |
|  *
 | |
|  * @return:             error code, see ERR_XXX
 | |
|  */
 | |
| uint32_t iot_em_ext_module_close(void);
 | |
| 
 | |
| /* @brief               entry energy meter calibration function.
 | |
|  *
 | |
|  * @param req           request buffer address
 | |
|  * @param req_len       request  buffer byte length
 | |
|  * @param resp          response buffer address
 | |
|  * @param resp_len      response  buffer byte length
 | |
|  * @return:             return response valid data length
 | |
|  */
 | |
| uint32_t iot_em_ext_cali_func_entry(uint8_t *req, uint16_t req_len,
 | |
|     uint8_t *resp, uint16_t resp_len);
 | |
| 
 | |
| /* @brief                em oneshot calibration trig start
 | |
|  * @param cfg            app config calibration parameter
 | |
|  * @retval               trig calibration ok return ERR_OK, else ERR_FAIL
 | |
|  * note : in oneshot method calibration, after standard source device output
 | |
|  *        in rate voltage range and current range, just trigger the oneshot
 | |
|  *        method process once can finish all calibration.
 | |
|  *   eg : iot_em_ext_oneshot_cali_cfg_t test = {0};
 | |
|  *        test.src_phase[0].i = 2000;  //20.00A
 | |
|  *        test.src_phase[0].u = 2200;  //220.0V
 | |
|  *        test.src_phase[0].p = 22000; //2200.0W
 | |
|  *        test.src_phase[0].q = 38104; //3810.4Var
 | |
|  *        test.max_smpl = 5;
 | |
|  *        test.cali_const.ec = 1200;
 | |
|  *        test.cali_const.i_ch.rate = 3000;
 | |
|  *        test.cali_const.i_ch.r_sample = 4;
 | |
|  *        test.cali_const.u_ch.rate = 1843;
 | |
|  *        iot_em_ext_cali_oneshot_trig(&test);
 | |
|  */
 | |
| uint32_t iot_em_ext_cali_oneshot_trig(iot_em_ext_oneshot_cali_cfg_t *app_cfg);
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif
 | |
| 
 | |
| #endif //_IOT_EM_EXT_API_H_
 |