123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- // 秒寻科技
- // 基站模块数据据结构
- // zt
- // 2023-03-29
- #ifndef __STRUCT_BTS_H__
- #define __STRUCT_BTS_H__
- #include "./datatype.h"
- #include "./sysmacro.h"
- // 幅度模块宏定义
- #define BTS_AMPL_MIRROR_SECONDS 4 // 镜像秒数,几秒计算一次最强频点
- #define BTS_AMPL_MIRROR_FRAMES (4 * BTS_AMPL_MIRROR_SECONDS) // 镜像帧数,每秒4帧
- #define BTS_AMPL_MAIN_BTS_AMPL_VALID_THRESHOLD 1500 // 主站幅度有效门限(用户在某个时刻一定会更靠近某个基站,所以该基站幅度至少要大于该门限值)
- #define BTS_AMPL_BTS_AMPL_VALID_THRESHOLD 350 // 基站幅度有效门限
- #define BTS_AMPL_BTS_SNR_VALID_THRESHOLD 5 // 基站SNR有效门限
- // 同步模块宏定义
- #define BTS_SYNC_STABLE_SYNC_FRAMES BTS_AMPL_MIRROR_FRAMES // 同步帧数,即几帧进行一次同步
- // 计算基站ID
- #define BTS_BTS_NUM 5000 // 基站最大规模数量
- // 基站模块参数
- typedef struct
- {
- // 幅度模块
- int32 dwValidAmplThres; // 有效幅度门限,默认值500
- int32 dwValidSnrThres; // 有效snr门限,放大100倍保存,默认值500
- int32 dwAmplRatioThres; // 当前幅度与上一次有效幅度之比门限,放大100倍保存,默认值15
- int32 dwBtsAmplValidTimes; // 幅度有效次数,默认值2,在一个周期内,只有2次及以上次有效,才能判定该基站有效
- // 同步模块
- int32 dwMainBtsValidAmplThres; // 主站有效幅度门限,默认值1500
- } BTS_AMPL_PARAM_T;
- // 基站幅度镜像数据结构
- typedef struct
- {
- uint8 byFreqIndex; // 基站频率索引
- flt32 afOneSecondData[PUB_SYS_SLOT_NUM * PUB_SLOT_FRAME_LEN]; // 镜像一秒数据
- flt32 fOneSecondMaxValue; // 一秒最大幅度
- uint16 wOneSecondMaxValueIndex; // 一秒最大幅度索引
- flt32 afMultiSecondData[PUB_SYS_SLOT_NUM * PUB_SLOT_FRAME_LEN]; // 镜像几秒数据
- uint8 byAmplValidTimes; // 幅度有效次数
- } BTS_AMPL_MIRROR_DATA_T;
- // 基站最大幅度数据结构
- typedef struct
- {
- uint8 byFreqIndex; // 载波索引
- flt32 fMaxValue; // 最大幅度
- uint16 wMaxValueIndex; // 最大幅度索引
- } BTS_MAX_AMPL_DATA_T;
- // 基站ID镜像数据结构
- typedef struct
- {
- uint8 byBitIndex; // 基站ID位索引,从0到PUBLIC_BTS_ID_BITS_NUM - 1
- flt32 afBitMaxAmplitude[PUBLIC_BTS_ID_BITS_NUM]; // 基站ID每比特的表征幅度
- flt32 fAvarageValue; // 幅度平均值
- } BTS_ID_MIRROR_DATA_T;
- // 主站结构
- typedef struct
- {
- uint32 dwBtsId; // 基站ID
- uint8 byFreqIndex; // 基站频率
- uint8 bySlot; // 基站时隙
- uint8 byShiftTimes; // 右移次数
- } BTS_ID_MAIN_BTS_T;
- // 判决主站结构
- #define BTS_ID_CAL_MAIN_BTS_NUM 3 // 计算主站数量
- typedef struct
- {
- uint8 byBtsNum; // 主站个数
- BTS_ID_MAIN_BTS_T astBtsList[BTS_ID_CAL_MAIN_BTS_NUM]; // 主站列表
- } BTS_ID_JUDGEMENT_MAIN_BTS_T;
- // 安装基站结构(项目中实际安装的基站)
- typedef struct
- {
- uint32 dwBuildId; // 大楼编号
- uint32 dwLayerId; // 楼层编号
- uint32 dwBtsId; // 基站配置编号
- uint32 dwFreqIndex; // 基站配置频率
- uint32 dwSlot; // 基站配置时隙
- int32 dwCoordX; // x坐标
- int32 dwCoordY; // y坐标
- int32 dwCoordZ; // z坐标
- uint32 dwLctType; // 定位类型,1:单站定位,2:双站定位,3:三站定位,4:多站定位
- uint32 dwTwoBtsNum; // 本站与几个站进行双站定位
- uint32 adwTwoBtsList[PUB_TWO_BTS_MAX_NUM]; // 与本站进行双站定位的基站ID列表
- uint32 adwBluetoothMac[PUB_MAC_ADDRESS_LEN]; // 蓝牙的mac地址
- uint32 adwWifiMac[PUB_MAC_ADDRESS_LEN]; // wifi的mac地址
- } BTS_INSTALL_BTS_T;
- // 安装基站组结构
- typedef struct
- {
- uint32 dwBtsNum; // 基站数量
- BTS_INSTALL_BTS_T astLocalBtsList[BTS_BTS_NUM];
- } BTS_INSTALL_BTS_LIST_T;
- #endif
|