コード例 #1
0
        /// <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);
        }
コード例 #2
0
 /// <summary>
 /// 上报接收到GPS信号事件
 /// </summary>
 /// <param name="device"></param>
 private void RaiseReceiveGPS(AudioAndVideoDevice device)
 {
     OnReceiveGPS?.Invoke(device);
 }