/// <summary> /// UDP接收GPS数据格式: /// 4字节:Type = 5; /// 4字节:设备ID; /// 8字节:时间戳; /// 后续数据:标准的NMEA 0183协议GPS数据 /// </summary> /// <param name="receiveData">接收到的数据</param> private void receiveGPSMessage(byte[] receiveData) { string message = Encoding.Default.GetString(receiveData, 16, receiveData.Length - 16); //切割字符串 string[] temp = message.Split(','); AudioAndVideoDevice device = new AudioAndVideoDevice(); device.Name = BitConverter.ToInt32(receiveData, 4).ToString(); //设备的ID device.Lat = Double.Parse(temp[3].Substring(0, 2)) + Double.Parse(temp[3].Substring(2)) / 60.0; //设备纬度 device.Lon = Double.Parse(temp[5].Substring(0, 3)) + Double.Parse(temp[5].Substring(3)) / 60.0; //设备经度 logger.Info("收到来自“" + device.Name + "”的UDP消息:“" + message + "”。"); RaiseReceiveGPS(device); }
/// <summary> /// 上报接收到GPS信号事件 /// </summary> /// <param name="device"></param> private void RaiseReceiveGPS(AudioAndVideoDevice device) { OnReceiveGPS?.Invoke(device); }