// 秒寻科技
// 路由模块据据结构
// zt
// 2023-04-25

#ifndef __STRUCT_ROUTE_H__
#define __STRUCT_ROUTE_H__

#include "./datatype.h"
#include "./sysmacro.h"

#define ROUTE_BTS_USE_TIMES 4 // 最多使用次（4秒，每秒4次）

// 蓝牙基站结构，基于蓝牙UUID
typedef struct
{
    int32 dwRssi;                       // 接收电平强度，单位 dBm
    uint32 adwMac[PUB_MAC_ADDRESS_LEN]; // MAC地址，格式：00:00:00:00:00:00
} ROUTE_BLUETOOTH_BTS_T;

// WIFI基站结构，基于Wifi的MAC
typedef struct
{
    int32 dwRssi;                       // 接收电平强度，单位 dBm
    uint32 adwMac[PUB_MAC_ADDRESS_LEN]; // mac地址，格式：00:00:00:00:00:00
} ROUTE_WIFI_BTS_T;

// 路由基站队列结构，包括蓝牙和wifi
typedef struct
{
    // 基站数据有效表示符，1：有效，0：无效。JS写入数据时将其置1，WASM模块使用数据后将其置0
    uint32 dwBtsValidFlag;

    uint32 dwBluetoothNum;
    ROUTE_BLUETOOTH_BTS_T astBluetoothBts[PUB_SYS_CARRIER_NUM]; // 蓝牙基站，最多不超过9个，需要上层维护

    uint32 dwWifiNum;
    ROUTE_WIFI_BTS_T astWifiBts[PUB_SYS_CARRIER_NUM]; // wifi基站，最多不超过9个，需要上层维护
} ROUTE_BTS_LIST_T;

// 周边基站队列
typedef struct
{
    uint8 byValidFlag; // 周边站有效标识符
    uint8 byUsedTimes; // 引用次数，最多用ROUTE_BTS_USE_TIMES次
    uint8 byBtsNum;    // 周边基站数量，最多9个基站
    BTS_INSTALL_BTS_T astBtsList[PUB_SYS_CARRIER_NUM];
} ROUTE_NEARBY_BTS_LIST;

#endif