using GpsCardGatewayPosition.Common;
namespace GpsCardGatewayPosition.Service.Biz.Location.Dto.Wayz
{
public class WayzRequest
{
public long Timestamp { get; set; } = Utils.ConvertToSTimeStamp(DateTime.Now);
// Id = "679e9043-14fe-44df-aba6-b2fd62592fea",
// Timestamp = 1670231477000,
// Asset = new AssetDevice
// {
// Id = "679e9043-14fe-44df-aba6-b2fd62592fea",
// Manufacturer = "xiaomi",
// ImeiMd5 = "1be14c6210b3115f",
// UniqueId = "8f95204d-a60e-40bb-b8be-45a1ab3bef2a"
// },
public virtual string Id { get; set; } = Guid.NewGuid().ToString("D");
public virtual AssetDevice Asset { get; set; } = new AssetDevice
{
Id= "679e9043-14fe-44df-aba6-b2fd62592fea",
Manufacturer= "telpo",
ImeiMd5= "1be14c6210b3115f",
UniqueId= "8f95204d-a60e-40bb-b8be-45a1ab3bef2a"
};
public LocationDetail Location { get; set; }
public class LocationDetail
{
///
/// Wifi
///
public List Wifis { get; set; }
///
/// LBS/Cellular 基站
///
public List Cellulars { get; set; }
///
/// Gnss 地球系坐标
///
public Gnss Gnss { get; set; }
///
/// gcj02 火星系坐标
///
public Postion Position { get; set; }
}
// public List Wifis { get; set; }
public class AssetDevice
{
public string Id { get; set; }
public string Manufacturer { get; set; }
public string ImeiMd5 { get; set; }
public string UniqueId { get; set; }
}
public class Item
{
///
/// 扫描到的时间戳(UTC 时间)
///
public long Timestamp { get; set; }= Utils.ConvertToSTimeStamp(DateTime.Now);
///
/// 设备是否已连接在该 AP 下,如果是"False"则可以省略此 字段
///
public bool Connected { get; set; } = default;
///
/// 信号强度,单位为:-dBm,即取真实信号强度的 绝 对值
///
public virtual int SignalStrength { get; set; } = default;
}
public class WifiItem: Item
{
///
/// 设备网卡的 MAC 地址
///
public string MacAddress { get; set; }
///
/// WiFi 的ssid 名称,注意:JSON 编码时需要进行转义编码
///
public string Ssid { get; set; } = default;
///
/// 信号强度,单位为:-dBm,即取真实信号强度的绝对值
///
public override int SignalStrength { get; set; }
///
/// 指定通道下的频率,单位: MHz
///
public int Frequency { get; set; } = default;
///
/// WiFi 子频段的通道编号
///
public int Channel { get; set; } = default;
}
public class CellularItem: Item
{
///
/// 小区 ID,当 CDMA 时,为 BID(Base Station ID)
///
public int CellId { get; set; }
///
/// 基站类 型, 只能 是以 下 值:gsm, wcdma, lte, cdma
///
public string RadioType { get; set; }
///
/// MCC 码
///
public int MobileCountryCode { get; set; }
///
/// 当 CDMA 时,为 SID(System ID)码
///
public int MobileNetworkCode { get; set; }
///
/// 当 CDMA 时,为 NID(Network ID);
/// 当 LTE 时,为 TAC(Tracking Area code)
///
public int LocationAreaCode { get; set; }
}
public class Gnss
{
///
/// 数据收集的时间戳(UTC 时间,单位:毫秒)
///
public long Timestamp { get; set; }
public Point Point { get; set; }
///
/// 卫星定位水平精度,单位:米
///
public float Accuracy { get; set; } = 0f;
///
/// 卫星定位垂直精度,单位:米
///
public float VerticalAccuracy { get; set; } = default;
///
/// 速度,单位:米/秒
///
public float Velocity { get; set; }
///
/// 卫星定位垂直精度,单位:米
///
public float VelocityAccuracy { get; set; } = default;
///
/// 方向,单位:度,从北开始,顺时针 0~360 度
///
public int Heading { get; set; } = 0;
}
public class Postion
{
public long Timestamp { get; set; }
public Point Point { get; set; }
public float Accuracy { get; set; } = 0f;
public string SpatialReference { get; set; } = "gcj02";
}
public class Point
{
///
/// 经度
///
// public double Longitude { get; set; } // 维智精度
public decimal Longitude { get; set; } // 高德精度
///
/// 纬度
///
// public double Latitude { get; set; } // 维智精度
public decimal Latitude { get; set; } // 高德精度
///
/// 卫星定位水平精度,单位:米
///
public float Altitude { get; set; }=default;
}
}
}