From cc432b761c884a0bd8e9d83db0a4e26109fc08b1 Mon Sep 17 00:00:00 2001 From: chen <15335560115@163.com> Date: 星期五, 08 十一月 2024 15:35:38 +0800 Subject: [PATCH] 安邦手环GPS删除部分无用数据和修改4G波特率9600出厂测试固件 --- keil/include/components/algo/inc/lib_pdoa_3d.h | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 157 insertions(+), 0 deletions(-) diff --git a/keil/include/components/algo/inc/lib_pdoa_3d.h b/keil/include/components/algo/inc/lib_pdoa_3d.h new file mode 100644 index 0000000..b4f84dc --- /dev/null +++ b/keil/include/components/algo/inc/lib_pdoa_3d.h @@ -0,0 +1,157 @@ +/* + * Copyright (c) 2019-2023 Beijing Hanwei Innovation Technology Ltd. Co. and + * its subsidiaries and affiliates (collectly called MKSEMI). + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into an MKSEMI + * integrated circuit in a product or a software update for such product, + * must reproduce the above copyright notice, this list of conditions and + * the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * 3. Neither the name of MKSEMI nor the names of its contributors may be used + * to endorse or promote products derived from this software without + * specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * MKSEMI integrated circuit. + * + * 5. Any software provided in binary form under this license must not be + * reverse engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY MKSEMI "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL MKSEMI OR CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef PDOA_3D_LIB_H +#define PDOA_3D_LIB_H +#include "mk_uwb.h" + +/** + * @addtogroup MK8000_ALGO_PDOA + * @{ + * + * PDoA support: + * - Linear 2/3/4-ants + * - Square 4-ants (horizontal - 360 degree, vertical - half ball 3D) + * - Triangle 3-ants + * + */ + +enum PDOA_3D_AMBIGUITY_MODE_T +{ + PDOA_3D_AMBIGUITY_LEVEL_HIGH = 0, + PDOA_3D_AMBIGUITY_LEVEL_MIDIUM, + PDOA_3D_AMBIGUITY_LEVEL_LOW, + PDOA_3D_AMBIGUITY_LEVEL_NONE, +}; + +struct PDOA_3D_MAC_ADDR_T +{ + uint8_t mac_addr[8]; + uint32_t elapsed_time; +}; + +struct PDOA_3D_PDOA_DATA_T +{ + int16_t pdoa[18]; +}; + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @brief PDoA configuration. + * + * @param [in] ant_pattern antenna pattern + * @param [in] ant_layout layout of PCB board configuration + * @param [in] ambiguity_mode PDoA ambiguity configuration + * @param [in] mac_addr_cache mac address list input + * @param [in] azimuth previous PDoA data list input + * @param [in] cache_len list length(equal to the tag number supported) + * @param [in] timeout_ms timeout setting for PDoA ambiguity process, unit: millisecond + */ +void pdoa_3d_param_config(uint8_t ant_pattern, + enum ANT_LAYOUT_T ant_layout, + enum PDOA_3D_AMBIGUITY_MODE_T ambiguity_mode, + struct PDOA_3D_MAC_ADDR_T *mac_addr_cache, + struct PDOA_3D_PDOA_DATA_T *pdoa_data_cache, + size_t cache_len, + uint32_t timeout_ms); + +/** + * @brief Calculate PDoA. + * + * @param [in] mac_addr mac address + * @param [out] elevation PDoA elevation result + * @param [out] azimuth PDoA azimuth result + * @return 1: success, 0: failure + */ +uint8_t pdoa_3d_calculate(uint8_t *mac_addr, int16_t *elevation, int16_t *azimuth); + +/** + * @brief Set gain of each PDoA channel + * + * @param [in] gain gain list of antenna port + * @param [in] rx_ant_num The number of antenna gain(PDoA channel) to be set + * @return 0: success, -1: fail + */ +uint8_t pdoa_3d_ant_layout_get(void); + +/** + * @brief Set gain of each PDoA channel + * + * @param [in] gain gain list of antenna port, unit: 1 percent + * @param [in] rx_ant_num The number of antenna gain(PDoA channel) to be set + * @return 0: success, -1: fail + */ +int pdoa_gain_set(int16_t *gain, uint8_t rx_ant_num); + +/** + * @brief Set offset for each angle + * + * @param [in] angle_offset offset list for azimuth & elevation, unit: 0.1 degree + */ +int pdoa_angle_offset_set(int16_t *angle_offset); + +/** + * @brief Get pdoa fom + * + * @param ele_fom elevation fom, completely untrustworthy when fom equal to 0 + * @param az_fom azimuth fom, completely untrustworthy when fom equal to 0 + */ +void pdoa_fom_get(uint8_t *ele_fom, uint8_t *az_fom); + +/** + * @brief Reverse angle + * + * @param azimuth_reverse reverse azimuth + * @param elevation_reverse reverse elevation + */ +void pdoa_angle_reverse_set(bool azimuth_reverse, bool elevation_reverse); + +#ifdef __cplusplus +} +#endif + +/** + * @} + */ + +#endif // PDOA_3D_LIB_H -- Gitblit v1.9.3