예제 #1
0
        private async void LoadData()
        {
            try
            {
                isLoaded = false;
                isBusy   = true;

                TrackingList.Clear();
                responseObject = await trackingService.GetTrackingData(requestObject.JobType, requestObject.JobId);

                if (responseObject.ReturnCode == "ERR_SUCCESS")
                {
                    foreach (Tracking a in responseObject.TrackingInfoList)
                    {
                        TrackingList.Add(new TrackingModelView(a));
                    }
                }
                else
                {
                    //Error
                }
            }
            catch (Exception e)
            {
                //Exception
            }
            finally
            {
                isLoaded = true;
                isBusy   = false;
            }
        }
예제 #2
0
        public void TrackingListLode()
        {
            const string listName     = "LoadTest";
            const string trackName    = "BravoName";
            const string trackPattern = "BravoPattern";
            const string soundFile    = "BravoSound";

            var tlist = new TrackingList(listName);

            tlist.Trackables.Add(new Trackable {
                Name = trackName, Pattern = trackPattern
            });
            tlist.SoundFile = soundFile;
            TrackingList.Save(tlist);

            foreach (var file in Directory.GetFiles(string.Format("{0}", Radar.Settings.Persistance.SaveDir)))
            {
                tlist = TrackingList.Load(file);
            }

            Assert.AreEqual(listName, tlist.Name, "List name mismatch");
            Assert.IsNotNull(tlist.Trackables, "List is null");
            Assert.AreEqual(1, tlist.Trackables.Count, "List count incorrect");
            Assert.AreEqual(trackName, tlist.Trackables[0].Name, "Trackable name mismatch.");
            Assert.AreEqual(trackPattern, tlist.Trackables[0].Pattern, "Pattern mismatch.");
            Assert.AreEqual(soundFile, tlist.SoundFile, "SoundFile mismatch");
        }
예제 #3
0
        public void ParameterlessConstructor_CreatesEmptyList()
        {
            var list = new TrackingList <Data>();

            Assert.Empty(list);
            Assert.Empty(list.Added);
            Assert.Empty(list.Removed);
        }
예제 #4
0
        public void ConstructorWithData_CreatesListFilledWithTheData()
        {
            var list = new TrackingList <Data>(_sampleData);

            Assert.Equal(_sampleData, list);
            Assert.Empty(list.Added);
            Assert.Empty(list.Removed);
        }
 public OnSquareDetect(INyARMarkerSystemConfig i_config, ARMarkerList i_armk_list, NyIdList i_idmk_list, TrackingList i_tracking_list, SquareStack i_ref_sq_stack)
 {
     this._coordline         = new NyARCoord2Linear(i_config.getNyARParam().getScreenSize(), i_config.getNyARParam().getDistortionFactor());
     this._ref_armk_list     = i_armk_list;
     this._ref_idmk_list     = i_idmk_list;
     this._ref_tracking_list = i_tracking_list;
     //同時に判定待ちにできる矩形の数
     this._ref_sq_stack = i_ref_sq_stack;
 }
예제 #6
0
        private void ListChanged(object sender, EventArgs e)
        {
            SelectedList = _listsCombo.SelectedItem as TrackingList;

            _trackablesLstBx.Items.Clear();
            _trackablesLstBx.DataSource    = SelectedList == null ? null : SelectedList.Trackables;
            _trackablesLstBx.DisplayMember = "Name";
            _trackablesLstBx.Refresh();
        }
예제 #7
0
        public void RemovingItem_WhichWasAlreadyInList_IsSuccessful()
        {
            var list = new TrackingList <Data>(_sampleData);

            list.Remove(_sampleData.First());

            Assert.Equal(_sampleData.Skip(1), list);
            Assert.Empty(list.Added);
            Assert.Equal(_sampleData.Take(1), list.Removed);
        }
예제 #8
0
        public void AddingItem_ToEmptyList_IsSuccessful()
        {
            var data      = new Data();
            var dataArray = new[] { data };
            var list      = new TrackingList <Data>();

            list.Add(data);

            Assert.Equal(dataArray, list);
            Assert.Equal(dataArray, list.Added);
            Assert.Empty(list.Removed);
        }
예제 #9
0
        public void TrackignListSave()
        {
            var tlist = new TrackingList("Test");
            var track = new Trackable {
                Name = "Alpha", Pattern = "Alpha"
            };

            tlist.Trackables.Add(track);
            tlist.SoundFile = "TestSound";

            TrackingList.Save(tlist);
        }
예제 #10
0
 public OnSquareDetect(
     NyARParam i_params,
     ARMarkerList i_armk_list, NyIdList i_idmk_list, ARPlayCardList i_psmk_list,
     TrackingList i_tracking_list, int i_initial_stack_size)
 {
     this._coordline         = new NyARCoord2Linear(i_params.getScreenSize(), i_params.getDistortionFactor());
     this._ref_armk_list     = i_armk_list;
     this._ref_idmk_list     = i_idmk_list;
     this._ref_psmk_list     = i_psmk_list;
     this._ref_tracking_list = i_tracking_list;
     this._sq_stack          = new SquareStack(i_initial_stack_size);
 }
예제 #11
0
        public static void LoadTrackingLists()
        {
            foreach (var file in Directory.GetFiles(Persistance.SaveDir.ToString()))
            {
                var tlist = TrackingList.Load(file);

                if (tlist.Name == "Default")
                {
                    _default = tlist;
                }
            }
        }
예제 #12
0
        public void AddingItem_ToListWithData_IsSuccessful()
        {
            var data      = new Data();
            var dataArray = new[] { data };
            var list      = new TrackingList <Data>(_sampleData);

            list.Add(data);

            Assert.Equal(_sampleData.Concat(dataArray), list);
            Assert.Equal(dataArray, list.Added);
            Assert.Empty(list.Removed);
        }
예제 #13
0
        public TrackingListEditor()
        {
            InitializeComponent();

            SelectedList              = RadarSettings.Tracking.Default;
            _listsCombo.DataSource    = RadarSettings.Tracking.TrackingLists;
            _listsCombo.DisplayMember = "Name";
            _listsCombo.SelectedItem  = SelectedList;

            _trackablesLstBx.DataSource    = SelectedList.Trackables;
            _trackablesLstBx.DisplayMember = "Name";
            _trackablesLstBx.Refresh();
        }
예제 #14
0
        public void AddingAndThenRemovingTheSameItem_FromListWithData_IsSuccessful()
        {
            var data      = new Data();
            var dataArray = new[] { data };
            var list      = new TrackingList <Data>(_sampleData);

            list.Add(data);
            list.Remove(data);

            Assert.Equal(_sampleData, list);
            Assert.Empty(list.Added);
            Assert.Empty(list.Removed);
        }
	/**
	 * コンストラクタです。{@link INyARMarkerSystemConfig}を元に、インスタンスを生成します。
	 * @param i_config
	 * 初期化済の{@link MarkerSystem}を指定します。
	 * @throws NyARException
	 */
    public NyARMarkerSystem(INyARMarkerSystemConfig i_config)
        : base(i_config.getNyARParam())
	{
		this.initInstance(i_config);
		
		this._armk_list=new ARMarkerList();
		this._idmk_list=new NyIdList();
        this._psmk_list = new ARPlayCardList();
		this._tracking_list=new TrackingList();
		this._transmat=i_config.createTransmatAlgorism();
		//同時に判定待ちにできる矩形の数
        this._on_sq_handler = new OnSquareDetect(i_config, this._armk_list, this._idmk_list, this._psmk_list, this._tracking_list, INITIAL_MARKER_STACK_SIZE);
    }
예제 #16
0
        public NyARMarkerSystem(INyARMarkerSystemConfig i_config)
            : base(i_config.getNyARSingleCameraView())
        {
            this._sqdetect = new SquareDetect(i_config);
            this._hist_th  = i_config.createAutoThresholdArgorism();

            this._armk_list     = new ARMarkerList();
            this._idmk_list     = new NyIdList();
            this._psmk_list     = new ARPlayCardList();
            this._tracking_list = new TrackingList();
            this._transmat      = i_config.createTransmatAlgorism();
            this._on_sq_handler = new OnSquareDetect(this._view.getARParam(), this._armk_list, this._idmk_list, this._psmk_list, this._tracking_list, INITIAL_MARKER_STACK_SIZE);
        }
예제 #17
0
        /**
         * コンストラクタです。{@link INyARMarkerSystemConfig}を元に、インスタンスを生成します。
         * @param i_config
         * 初期化済の{@link MarkerSystem}を指定します。
         * @throws NyARException
         */
        public NyARMarkerSystem(INyARMarkerSystemConfig i_config)
            : base(i_config.getNyARParam())
        {
            this.initInstance(i_config);

            this._armk_list     = new ARMarkerList();
            this._idmk_list     = new NyIdList();
            this._psmk_list     = new ARPlayCardList();
            this._tracking_list = new TrackingList();
            this._transmat      = i_config.createTransmatAlgorism();
            //同時に判定待ちにできる矩形の数
            this._on_sq_handler = new OnSquareDetect(i_config, this._armk_list, this._idmk_list, this._psmk_list, this._tracking_list, INITIAL_MARKER_STACK_SIZE);
        }
        /**
         * コンストラクタです。{@link INyARMarkerSystemConfig}を元に、インスタンスを生成します。
         * @param i_config
         * 初期化済の{@link MarkerSystem}を指定します。
         * @throws NyARException
         */
        public NyARMarkerSystem(INyARMarkerSystemConfig i_config)
        {
            this._ref_param = i_config.getNyARParam();
            this._frustum   = new NyARFrustum();
            this.initInstance(i_config);
            this.setProjectionMatrixClipping(FRUSTUM_DEFAULT_NEAR_CLIP, FRUSTUM_DEFAULT_FAR_CLIP);

            this._armk_list     = new ARMarkerList();
            this._idmk_list     = new NyIdList();
            this._tracking_list = new TrackingList();
            this._transmat      = i_config.createTransmatAlgorism();
            //同時に判定待ちにできる矩形の数
            this._sq_stack      = new SquareStack(INITIAL_MARKER_STACK_SIZE);
            this._on_sq_handler = new OnSquareDetect(i_config, this._armk_list, this._idmk_list, this._tracking_list, this._sq_stack);
        }
예제 #19
0
        private void ChangeEventCollections(List <Tracking> trackingCollection)
        {
            foreach (var tracking in trackingCollection)
            {
                if (tracking.EventCollection == null)
                {
                    continue;
                }
                bool contains = TrackingList.Any(item => item.trackingId.Equals(tracking.trackingId));
                if (contains)
                {
                    int indexOfTracking = TrackingList
                                          .IndexOf(TrackingList.First(item => item.trackingId.Equals(tracking.trackingId)));

                    List <Event> oldEventCollection = TrackingList[indexOfTracking].EventCollection;

                    if (oldEventCollection != null)
                    {
                        List <Event> eventCollectionToChange = oldEventCollection
                                                               .Where(_event => tracking.EventCollection.Any(item => _event.eventId.Equals(item.eventId)))
                                                               .Where(_event => _event.dateOfChange > tracking.EventCollection
                                                                      .First(item => _event.eventId.Equals(item.eventId)).dateOfChange).ToList();

                        List <Event> eventCollectionToAdd = tracking.EventCollection
                                                            .Where(_event => !(oldEventCollection.Any(item => _event.eventId.Equals(item.eventId)))).ToList();

                        foreach (var _event in eventCollectionToChange)
                        {
                            int eventIndex = TrackingList[indexOfTracking].EventCollection
                                             .IndexOf(TrackingList[indexOfTracking].EventCollection
                                                      .First(item => item.eventId.Equals(_event.eventId)));

                            TrackingList[indexOfTracking].EventCollection[eventIndex] = _event;
                        }

                        TrackingList[indexOfTracking].EventCollection.AddRange(eventCollectionToAdd);
                    }
                    else
                    {
                        TrackingList[indexOfTracking].EventCollection = tracking.EventCollection;
                    }
                }
            }
        }
예제 #20
0
        private void ChangeTrackings(List <Tracking> trackingCollection)
        {
            List <Tracking> trackingsToChange = trackingCollection
                                                .Where(tracking => TrackingList.Any(item => item.trackingId.Equals(tracking.trackingId)))
                                                .Where(item =>
                                                       item.dateOfChange > TrackingList
                                                       .First(found => found.trackingId == item.trackingId).dateOfChange).ToList();
            List <Tracking> trackingsToAdd = trackingCollection
                                             .Where(item => !(TrackingList.Any(tracking => tracking.trackingId.Equals(item.trackingId)))).ToList();

            foreach (var tracking in trackingsToChange)
            {
                int trackingInCollectionToChange = TrackingList.IndexOf(TrackingList
                                                                        .First(item => item.trackingId.Equals(tracking.trackingId)));
                TrackingList[trackingInCollectionToChange] = tracking;
            }

            TrackingList.AddRange(trackingsToAdd);
        }
예제 #21
0
        /// <summary>
        /// Handles the closing event for the list editor.
        /// <p>Saves all of the current lists to xml files.</p>
        /// </summary>
        /// <param name="sender">this</param>
        /// <param name="args">empty</param>
        private static void SaveLists(object sender, CancelEventArgs args)
        {
            try
            {
                foreach (var tlist in RadarSettings.Tracking.TrackingLists)
                {
                    TrackingList.Save(tlist);
                }
            }
            catch (Exception e)
            {
                var sb = new StringBuilder();
                sb.AppendLine("Some or all of your tracking lists did not save correctly.");
                sb.AppendLine("Hit cancel to keep the tracking list editor open.\n");
                sb.Append(e.ToString());

                var res = MessageBox.Show(sb.ToString(), @"Error exporting tracking lists.", MessageBoxButtons.OKCancel,
                                          MessageBoxIcon.Warning);

                args.Cancel = res == DialogResult.Cancel;
            }
        }
예제 #22
0
 public override ICollection <T> LoadData <TSource>(TSource source, PropertyInfo loadedProperty)
 {
     return(TrackingList <T> .CreateExistingTrackingList(this.EnumerableDataLoader.LoadData(source, loadedProperty)));
 }
        /**
         * コンストラクタです。{@link INyARMarkerSystemConfig}を元に、インスタンスを生成します。
         * @param i_config
         * 初期化済の{@link MarkerSystem}を指定します。
         * @throws NyARException
         */
        public NyARMarkerSystem(INyARMarkerSystemConfig i_config)
        {
            this._ref_param=i_config.getNyARParam();
            this._frustum=new NyARFrustum();
            this.initInstance(i_config);
            this.setProjectionMatrixClipping(FRUSTUM_DEFAULT_NEAR_CLIP, FRUSTUM_DEFAULT_FAR_CLIP);

            this._armk_list=new ARMarkerList();
            this._idmk_list=new NyIdList();
            this._tracking_list=new TrackingList();
            this._transmat=i_config.createTransmatAlgorism();
            //同時に判定待ちにできる矩形の数
            this._sq_stack=new SquareStack(INITIAL_MARKER_STACK_SIZE);
            this._on_sq_handler=new OnSquareDetect(i_config,this._armk_list,this._idmk_list,this._tracking_list,this._sq_stack);
        }
예제 #24
0
        public override ICollection <T> Deserialize(BsonDeserializationContext context, BsonDeserializationArgs args)
        {
            var array = BsonSerializer.LookupSerializer <T[]>().Deserialize(context, args);

            return(TrackingList <T> .CreateExistingTrackingList(array));
        }
    public OnSquareDetect(
        INyARMarkerSystemConfig i_config,
        ARMarkerList i_armk_list, NyIdList i_idmk_list, ARPlayCardList i_psmk_list,
		TrackingList i_tracking_list,int i_initial_stack_size)
    {
		this._coordline=new NyARCoord2Linear(i_config.getNyARParam().getScreenSize(),i_config.getNyARParam().getDistortionFactor());
		this._ref_armk_list=i_armk_list;
		this._ref_idmk_list=i_idmk_list;
		this._ref_psmk_list=i_psmk_list;
		this._ref_tracking_list=i_tracking_list;
		//同時に判定待ちにできる矩形の数
        this._sq_stack = new SquareStack(i_initial_stack_size);
    }