91 lines
3.1 KiB
C
91 lines
3.1 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_PLC_HW_TOPO_API_H
|
|
#define IOT_PLC_HW_TOPO_API_H
|
|
|
|
#include "os_types_api.h"
|
|
#include "iot_plc_msg_api.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* load mode encode frequncy. unit: 0.01Hz */
|
|
#define IOT_HW_TOPO_DECODE_FREQ_LOAD_DEF (83333)
|
|
|
|
/* define maximum number of codes. At present, branch identification supports
|
|
* transmission of up to four bytes.
|
|
*/
|
|
#define IOT_HW_TOPO_MAX_NUMBER_OF_CODES (16)
|
|
|
|
/* define hw topo cfg structure */
|
|
typedef struct _hw_topo_rcv_cfg {
|
|
/* flag to mark to if the "fc" field is valid */
|
|
uint16_t fc_valid : 1,
|
|
/* flag to mark to if the "chara_bit_dur" field is valid */
|
|
dur_valid : 1,
|
|
/* specified phase, see IOT_PLC_PHASE_XXX */
|
|
phase : 2,
|
|
/* reserved for further use */
|
|
rsvd : 12;
|
|
/* characteristics data per bit duration time, unit: 1ms. */
|
|
uint16_t chara_bit_dur;
|
|
/* center frequency, uint is 0.01HZ */
|
|
uint32_t fc;
|
|
/* similarity threshold, uint is 0.1& */
|
|
uint16_t similarity_thr;
|
|
/* characteristics code length, can not exceeded
|
|
* IOT_HW_TOPO_MAX_NUMBER_OF_CODES.
|
|
*/
|
|
uint8_t data_len;
|
|
/* characteristics code */
|
|
uint8_t data[IOT_HW_TOPO_MAX_NUMBER_OF_CODES];
|
|
} hw_topo_rcv_cfg_t;
|
|
|
|
/* define hw ratio coefficient structure */
|
|
typedef struct _hw_topo_ratio_coeff {
|
|
/* A/B/C phase current ratio coefficient, unit: 0.0001 */
|
|
uint32_t i_ratio_coeff[IOT_PLC_PHASE_CNT];
|
|
} hw_topo_ratio_coeff_t;
|
|
|
|
/**
|
|
* @brief iot_plc_hw_topo_cfg_rcv_mode() - config hw topo receive info.
|
|
* @param cfg: pointer to hw_topo_rcv_cfg_t structure
|
|
* @retval 0 - successful, other case - fail.
|
|
*/
|
|
uint32_t iot_plc_hw_topo_rcv_cfg(hw_topo_rcv_cfg_t *cfg);
|
|
|
|
/**
|
|
* @brief iot_plc_hw_topo_ratio_cfg() - config hw topo ratio.
|
|
* @param cfg: pointer to hw_topo_ratio_cfg_t structure
|
|
* @retval 0 - successful, other case - fail.
|
|
*/
|
|
uint32_t iot_plc_hw_topo_ratio_cfg(hw_topo_ratio_coeff_t *cfg);
|
|
|
|
/**
|
|
* @brief iot_plc_hw_topo_rms2_get() - get mean square value of current.
|
|
* @param phase: get witch phase
|
|
* @retval mean square value of current.
|
|
*/
|
|
uint32_t iot_plc_hw_topo_rms2_get(uint8_t phase);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* IOT_PLC_HW_TOPO_API_H */
|
|
|