Ejemplo n.º 1
0
        private void InstanceSendData(ITrackData data, Action <bool> callback)
        {
            if (data == null)
            {
                return;
            }
            var client = new TcpClient();

            client.Init(m_ip, m_port, m_errorCallback, succ =>
            {
                if (!succ || client == null || !client.isReady)
                {
                    // 网络异常
                    m_errorCallback?.Invoke("连接失败");
                    callback?.Invoke(false);
                    return;
                }
                var finalData = new TrackDataToSend()
                {
                    uid       = m_uid,
                    userName  = m_userName,
                    sessionId = m_sessionId,
                    sendTime  = (int)(DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0)).TotalSeconds,
                    data      = data
                };
                client.SendData(JsonConvert.SerializeObject(finalData), (ret) =>
                {
                    client.Uninit();
                    client = null;
                    callback?.Invoke(ret);
                });
            });
        }
Ejemplo n.º 2
0
        public void Setup()
        {
            _transponderReceiver    = Substitute.For <ITransponderReceiver>();
            _trackRendition         = Substitute.For <ITrackRendition>();
            _proximityDetectionData = new ProximityDetectionData();
            _eventRendition         = new EventRendition();
            _proximityDetection     = new ProximityDetection(_eventRendition, _proximityDetectionData);
            _trackUpdate            = new TrackUpdate(_trackRendition, _proximityDetection);
            _filtering     = new Filtering(_trackUpdate);
            _parsing       = new Parsing(_transponderReceiver, _filtering);
            _trackData     = new TrackData();
            _faketrackList = new List <ITrackData>();
            //_trackRendition = new TrackRendition();

            _dataEvent = new RawTransponderDataEventArgs(new List <string>()
            {
                "JAS001;12345;67890;12000;20160101100909111"
            });

            //_fakeTrackData = new TrackData
            //{
            //    Tag = "JAS001",
            //    X = 12345,
            //    Y = 67890,
            //    Altitude = 12000,
            //    Course = 0,
            //    Velocity = 0,
            //    TimeStamp = DateTime.ParseExact("20160101100909111", "yyyyMMddHHmmssfff", System.Globalization.CultureInfo.InvariantCulture)
            //};
        }
Ejemplo n.º 3
0
        public int CalCourse(ITrackData track1, ITrackData track2)
        {
            double deltaX = track2.X - track1.X;
            double deltaY = track2.Y - track1.Y;

            double Degree = 0;

            if (deltaX == 0)
            {
                //if deltaY er større end 0
                // condition ? first_expression : second_expression;
                Degree = deltaY > 0 ? 0 : 180;
            }
            else
            {
                double radian = Math.Atan2(deltaY, deltaX);
                //Convert to degress
                Degree = radian / Math.PI * 180;

                Degree = 90 - Degree;
                if (Degree < 0)
                {
                    Degree += 360;
                }
            }

            return((int)Degree);
        }
Ejemplo n.º 4
0
        public void SetUp()
        {
            _trackRendition         = Substitute.For <ITrackRendition>();
            _proximityDetectionData = new ProximityDetectionData();
            _eventRendition         = new EventRendition();
            _proximityDetection     = new ProximityDetection(_eventRendition, _proximityDetectionData);
            _trackUpdate            = new TrackUpdate(_trackRendition, _proximityDetection);
            _filtering = new Filtering(_trackUpdate);

            _fakeTrackDataList = new List <ITrackData>();

            _fakeTrackDataValid1 = new TrackData
            {
                Tag       = "JAS002",
                X         = 50000,
                Y         = 50000,
                Altitude  = 12000,
                Course    = 0,
                TimeStamp = new DateTime(2018, 05, 13, 10, 50, 35),
                Velocity  = 0
            };

            _fakeTrackDataValid2 = new TrackData
            {
                Tag       = "JAS002",
                X         = 50100,
                Y         = 50100,
                Altitude  = 12000,
                Course    = 0,
                TimeStamp = new DateTime(2018, 05, 13, 10, 50, 36),
                Velocity  = 0
            };

            _fakeTrackDataValid3 = new TrackData
            {
                Tag       = "JAS002",
                X         = 20000,
                Y         = 20000,
                Altitude  = 12000,
                Course    = 0,
                TimeStamp = DateTime.MinValue,
                Velocity  = 0
            };

            _fakeTrackDataValid4 = new TrackData
            {
                Tag       = "JAS002",
                X         = 10000,
                Y         = 10000,
                Altitude  = 12000,
                Course    = 0,
                TimeStamp = DateTime.MinValue,
                Velocity  = 0
            };
        }
Ejemplo n.º 5
0
        public void SetUp()
        {
            _trackRendition     = Substitute.For <ITrackRendition>();
            _proximityDetection = Substitute.For <IProximityDetection>();

            _trackData = new List <ITrackData>();                //initial
            //_uut=new TrackUpdate(_trackData);

            _track1 = Substitute.For <ITrackData>();
            _track2 = Substitute.For <ITrackData>();

            _track1.TimeStamp.Returns(new DateTime(2018, 05, 13, 10, 50, 35));
            _track2.TimeStamp.Returns(new DateTime(2018, 05, 13, 10, 20, 31));
        }
Ejemplo n.º 6
0
 public void Setup()
 {
     _fakeTrackDataList = new List <ITrackData>();
     _trackUpdate       = Substitute.For <ITrackUpdate>();
     _uut = new Filtering(_trackUpdate);
     _fakeTrackDataValid = new TrackData
     {
         X        = 11000,
         Y        = 11000,
         Altitude = 15000
     };
     _fakeTrackDataInvalid = new TrackData
     {
         X        = 9000,
         Y        = 9000,
         Altitude = 200
     };
 }
Ejemplo n.º 7
0
        public void SetUp()
        {
            _trackData = new List <ITrackData>();  //elementerne i listen skal subtitutes
            //_filtering = Substitute.For<IFiltering>();

            _trackRendition         = Substitute.For <ITrackRendition>();
            _eventRendition         = Substitute.For <IEventRendition>();
            _proximityDetectionData = Substitute.For <IProximityDetectionData>();
            _proximityDetection     = new ProximityDetection(_eventRendition, _proximityDetectionData);
            //_proximityDetectionData = Substitute.For<IProximityDetectionData>();
            _trackUpdate = new TrackUpdate(_trackRendition, _proximityDetection);
            _track1      = Substitute.For <ITrackData>();
            _track2      = Substitute.For <ITrackData>();

            _fakeTrackDataList = new List <ITrackData>();

            _fakeTrackDataValid1 = new TrackData
            {
                Tag       = "JAS002",
                X         = 50000,
                Y         = 50000,
                Altitude  = 12000,
                Course    = 0,
                TimeStamp = new DateTime(2018, 05, 13, 10, 50, 35),
                Velocity  = 0
            };

            _fakeTrackDataValid2 = new TrackData
            {
                Tag       = "J5S002",
                X         = 50100,
                Y         = 50100,
                Altitude  = 12000,
                Course    = 0,
                TimeStamp = new DateTime(2018, 05, 13, 10, 50, 35),
                Velocity  = 0
            };
        }
Ejemplo n.º 8
0
        public void SetUp()
        {
            _trackDataList          = new List <ITrackData>();
            _proximityDetectionData = new ProximityDetectionData();
            _eventRendition         = Substitute.For <IEventRendition>();
            _proximityDetections    = Substitute.For <List <IProximityDetectionData> >();
            _uut = new ProximityDetection(_eventRendition, _proximityDetectionData);

            _track1 = new TrackData
            {
                Tag      = "ABC123",
                X        = 10050,
                Y        = 10050,
                Altitude = 10050,
            };

            _track2 = new TrackData
            {
                Tag      = "123ABC",
                X        = 10000,
                Y        = 10000,
                Altitude = 10200,
            };
        }
Ejemplo n.º 9
0
        public int CalVelocity(ITrackData track1, ITrackData track2)
        {
            // calculate velocity


            //Coordinates
            //int x1 = track1.X;
            //int x2 = track2.X;
            //int y1 = track1.Y;
            //int y2 = track2.Y;

            ////Distance between the 2 tracks
            //double distance = Math.Sqrt(Math.Pow(x1 - x2, 2) + Math.Pow(y1 - y2, 2));
            //if (distance<0)
            //{
            //    distance = distance * (-1);
            //}

            // //double time = track2.TimeStamp.Subtract(track1.TimeStamp).TotalSeconds;



            //TimeSpan time = track2.TimeStamp - track1.TimeStamp;
            //timespan = (time.TotalSeconds);
            TimeSpan time = track2.TimeStamp - track1.TimeStamp;

            timespan = (double)time.TotalSeconds;

            double deltaX   = 0;
            double deltaY   = 0;
            double velocity = 0;

            if (track1.X > track2.X)
            {
                deltaX = track1.X - track2.X;
            }
            else
            {
                deltaX = track2.X - track1.X;
            }

            if (track1.Y > track2.Y)
            {
                deltaY = track1.Y - track2.Y;
            }
            else
            {
                deltaY = track2.Y - track1.Y;
            }

            double distance = Math.Sqrt(Math.Pow(deltaX, 2) + Math.Pow(deltaY, 2));

            if (timespan < 0)
            {
                timespan = timespan * -1;
                velocity = distance / timespan;
            }
            else if (timespan > 0)
            {
                velocity = distance / timespan;
            }

            return((int)velocity);

            //return (int)distance /(int)timespan;  //Updating speed
        }
Ejemplo n.º 10
0
 public Delete(ITrackData trackData)
 {
     _trackData = trackData;
 }
Ejemplo n.º 11
0
 public Index(ITrackData trackData)
 {
     _trackData = trackData;
 }
Ejemplo n.º 12
0
 public New(ITrackData trackData, ChinookContext db)
 {
     _trackData = trackData;
     _db        = db;
 }
Ejemplo n.º 13
0
 /// <summary>
 /// 发送追踪数据
 /// </summary>
 /// <param name="data"></param>
 /// <param name="callback">调用结果,返回true为成功</param>
 public static void SendData(ITrackData data, Action <bool> callback)
 {
     Instance.InstanceSendData(data, callback);
 }