struct_bts.h 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. // 秒寻科技
  2. // 基站模块数据据结构
  3. // zt
  4. // 2023-03-29
  5. #ifndef __STRUCT_BTS_H__
  6. #define __STRUCT_BTS_H__
  7. #include "./datatype.h"
  8. #include "./sysmacro.h"
  9. // 幅度模块宏定义
  10. #define BTS_AMPL_MIRROR_SECONDS 4 // 镜像秒数,几秒计算一次最强频点
  11. #define BTS_AMPL_MIRROR_FRAMES (4 * BTS_AMPL_MIRROR_SECONDS) // 镜像帧数,每秒4帧
  12. #define BTS_AMPL_MAIN_BTS_AMPL_VALID_THRESHOLD 1500 // 主站幅度有效门限(用户在某个时刻一定会更靠近某个基站,所以该基站幅度至少要大于该门限值)
  13. #define BTS_AMPL_BTS_AMPL_VALID_THRESHOLD 350 // 基站幅度有效门限
  14. #define BTS_AMPL_BTS_SNR_VALID_THRESHOLD 5 // 基站SNR有效门限
  15. // 同步模块宏定义
  16. #define BTS_SYNC_STABLE_SYNC_FRAMES BTS_AMPL_MIRROR_FRAMES // 同步帧数,即几帧进行一次同步
  17. // 计算基站ID
  18. #define BTS_BTS_NUM 5000 // 基站最大规模数量
  19. // 基站模块参数
  20. typedef struct
  21. {
  22. // 幅度模块
  23. int32 dwValidAmplThres; // 有效幅度门限,默认值500
  24. int32 dwValidSnrThres; // 有效snr门限,放大100倍保存,默认值500
  25. int32 dwAmplRatioThres; // 当前幅度与上一次有效幅度之比门限,放大100倍保存,默认值15
  26. int32 dwBtsAmplValidTimes; // 幅度有效次数,默认值2,在一个周期内,只有2次及以上次有效,才能判定该基站有效
  27. // 同步模块
  28. int32 dwMainBtsValidAmplThres; // 主站有效幅度门限,默认值1500
  29. } BTS_AMPL_PARAM_T;
  30. // 基站幅度镜像数据结构
  31. typedef struct
  32. {
  33. uint8 byFreqIndex; // 基站频率索引
  34. flt32 afOneSecondData[PUB_SYS_SLOT_NUM * PUB_SLOT_FRAME_LEN]; // 镜像一秒数据
  35. flt32 fOneSecondMaxValue; // 一秒最大幅度
  36. uint16 wOneSecondMaxValueIndex; // 一秒最大幅度索引
  37. flt32 afMultiSecondData[PUB_SYS_SLOT_NUM * PUB_SLOT_FRAME_LEN]; // 镜像几秒数据
  38. uint8 byAmplValidTimes; // 幅度有效次数
  39. } BTS_AMPL_MIRROR_DATA_T;
  40. // 基站最大幅度数据结构
  41. typedef struct
  42. {
  43. uint8 byFreqIndex; // 载波索引
  44. flt32 fMaxValue; // 最大幅度
  45. uint16 wMaxValueIndex; // 最大幅度索引
  46. } BTS_MAX_AMPL_DATA_T;
  47. // 基站ID镜像数据结构
  48. typedef struct
  49. {
  50. uint8 byBitIndex; // 基站ID位索引,从0到PUBLIC_BTS_ID_BITS_NUM - 1
  51. flt32 afBitMaxAmplitude[PUBLIC_BTS_ID_BITS_NUM]; // 基站ID每比特的表征幅度
  52. flt32 fAvarageValue; // 幅度平均值
  53. } BTS_ID_MIRROR_DATA_T;
  54. // 主站结构
  55. typedef struct
  56. {
  57. uint32 dwBtsId; // 基站ID
  58. uint8 byFreqIndex; // 基站频率
  59. uint8 bySlot; // 基站时隙
  60. uint8 byShiftTimes; // 右移次数
  61. } BTS_ID_MAIN_BTS_T;
  62. // 判决主站结构
  63. #define BTS_ID_CAL_MAIN_BTS_NUM 3 // 计算主站数量
  64. typedef struct
  65. {
  66. uint8 byBtsNum; // 主站个数
  67. BTS_ID_MAIN_BTS_T astBtsList[BTS_ID_CAL_MAIN_BTS_NUM]; // 主站列表
  68. } BTS_ID_JUDGEMENT_MAIN_BTS_T;
  69. // 安装基站结构(项目中实际安装的基站)
  70. typedef struct
  71. {
  72. uint32 dwBuildId; // 大楼编号
  73. uint32 dwLayerId; // 楼层编号
  74. uint32 dwBtsId; // 基站配置编号
  75. uint32 dwFreqIndex; // 基站配置频率
  76. uint32 dwSlot; // 基站配置时隙
  77. int32 dwCoordX; // x坐标
  78. int32 dwCoordY; // y坐标
  79. int32 dwCoordZ; // z坐标
  80. uint32 dwLctType; // 定位类型,1:单站定位,2:双站定位,3:三站定位,4:多站定位
  81. uint32 dwTwoBtsNum; // 本站与几个站进行双站定位
  82. uint32 adwTwoBtsList[PUB_TWO_BTS_MAX_NUM]; // 与本站进行双站定位的基站ID列表
  83. uint32 adwBluetoothMac[PUB_MAC_ADDRESS_LEN]; // 蓝牙的mac地址
  84. uint32 adwWifiMac[PUB_MAC_ADDRESS_LEN]; // wifi的mac地址
  85. } BTS_INSTALL_BTS_T;
  86. // 安装基站组结构
  87. typedef struct
  88. {
  89. uint32 dwBtsNum; // 基站数量
  90. BTS_INSTALL_BTS_T astLocalBtsList[BTS_BTS_NUM];
  91. } BTS_INSTALL_BTS_LIST_T;
  92. #endif