// 秒寻科技 // 基站模块数据据结构 // 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