示例#1
0
 protected void RaisePacketReceived(UdpDataReceivedEventArgs e)
 {
     if (PacketReceived != null)
     {
         Task.Factory.StartNew(() => PacketReceived.Invoke(this, e)).ContinueWith((t) => { if (t.IsFaulted)
                                                                                           {
                                                                                               RaiseError(new ExceptionEventArgs(t.Exception));
                                                                                           }
                                                                                  });
     }
 }
示例#2
0
        private void CenterConsoleOutputData(object sender, UdpDataReceivedEventArgs e)
        {
            TUG2SimCenterConsoleOutputData controlData = new TUG2SimCenterConsoleOutputData(e.Data);

            if (controlData.GoAroundButton)
            {
                SendSpeechCommand(new NetworkSpeechCommand()
                {
                    Text = "decided"
                });
            }
        }
示例#3
0
        private void AircraftControls(object sender, UdpDataReceivedEventArgs e)
        {
            AircraftControlsData controlData = new AircraftControlsData(e.Data);

            if (controlData.APDisengageButton)
            {
                SendSpeechCommand(new NetworkSpeechCommand()
                {
                    Text = "decided"
                });
            }
        }
示例#4
0
        private void SimulationTraffic(object sender, UdpDataReceivedEventArgs e)
        {
            var listner = sender as AsynchronousUPDListner;

            if (listner == null)
            {
                return;
            }

            TrafficData trafficPosition = new TrafficData(e.Data);

            if (count % 10 == 0)
            {
                Messenger.Default.Send(new PortStatusMessage()
                {
                    Port      = listner.Port,
                    IsRunning = true,
                    Latitude  = trafficPosition.Latitude,
                    Longitude = trafficPosition.Longitude
                });
            }

            if (listner.Port == 5001)
            {
                _myPosition = trafficPosition;
                return;
            }
            if (_myPosition == null)
            {
                return;
            }

            var pos = CalculateTarget(_myPosition, trafficPosition);

            var traffic = new HoloLensTraffic()
            {
                PosX      = pos.x,
                PosY      = pos.y,
                PosZ      = pos.z,
                RotationX = pos.rotationX,
                RotationY = pos.rotationY,
                RotationZ = pos.rotationZ
            };
            // Console.WriteLine($"{traffic.PosX} {traffic.PosY} {traffic.PosZ}");
            var env = new Envelope()
            {
                Content = JsonConvert.SerializeObject(traffic),
                Type    = typeof(HoloLensTraffic).Name
            };

            _tcpListner.Send(JsonConvert.SerializeObject(env));
        }
示例#5
0
        private void HandleNATTest(object sender, UdpDataReceivedEventArgs e)
        {
            var p = new Packet(e.Packet, 2);
            //_packetLogger.Log<ENATPacket>(p);

            uint   addr;
            ushort port;

            Packet ack;

            switch (p.PacketID)
            {
            case (byte)ENATPacket.Req1:     // test request
                addr = p.ReadUInt32();
                port = p.ReadUInt16();
                //_logger.Debug("-NAT Test- ID: {0} IP: {1} Port: {2} | {3}", p.PacketID, new IPAddress(addr), port, e.IPEndPoint.ToString());

                ack = new Packet(ENATPacket.Ack1);
                ack.Write((uint)e.IPEndPoint.Address.Address);
                ack.Write((ushort)e.IPEndPoint.Port);
                _natServer.Send(e.IPEndPoint, ack);
                break;

            case (byte)ENATPacket.Req2:     // firewall/nat type test
                addr = p.ReadUInt32();
                port = p.ReadUInt16();
                //_logger.Debug("-NAT Test- ID: {0} IP: {1} Port: {2} | {3}", p.PacketID, new IPAddress(addr), port, e.IPEndPoint.ToString());

                ack = new Packet(ENATPacket.Ack2);
                ack.Write((uint)e.IPEndPoint.Address.Address);
                ack.Write((ushort)e.IPEndPoint.Port);
                _natServer2.Send(e.IPEndPoint, ack);
                break;

            case (byte)ENATPacket.KeepAlive:     // keepalive?
                break;

            default:
                _logger.Warning("-NAT Test- ID: {0}", p.PacketID);
                break;
            }
        }
示例#6
0
        private void HandleNATTest2(object sender, UdpDataReceivedEventArgs e)
        {
            var p = new Packet(e.Packet, 2);

            //_packetLogger.Log<ENATPacket>(p);

            switch (p.PacketID)
            {
            case (byte)ENATPacket.Req3:
                var addr = p.ReadUInt32();
                var port = p.ReadUInt16();
                //_logger.Debug("-NAT Test2- ID: {0} IP: {1} Port: {2} | {3}", p.PacketID, new IPAddress(addr), port, e.IPEndPoint.ToString());

                var ack = new Packet(ENATPacket.Ack3);
                ack.Write((uint)e.IPEndPoint.Address.Address);
                ack.Write((ushort)e.IPEndPoint.Port);
                _natServer2.Send(e.IPEndPoint, ack);
                break;

            default:
                _logger.Warning("-NAT Test2- ID: {0}", p.PacketID);
                break;
            }
        }
示例#7
0
 /// <summary>
 /// Process data received events.
 /// </summary>
 /// <param name="sender">The sender of the event.</param>
 /// <param name="e">An EventArgs object that contains the event data.</param>
 private void mUdpServer_DataReceived(object sender, UdpDataReceivedEventArgs e)
 {
     DataReceived(null, e.SourceEndPoint, e.Data);
 }
示例#8
0
 /// <summary>
 /// Raise the DataReceived event.
 /// </summary>
 /// <param name="e">An EventArgs object that contains the event data.</param>
 private void OnDataReceived(UdpDataReceivedEventArgs e)
 {
     if (DataReceived != null)
     {
         DataReceived(this, e);
     }
 }