Ejemplo n.º 1
0
        /// <summary>
        /// Starts the native service recognition.
        /// </summary>
        /// <param name="recognitionOptions">Recognition options.</param>
        /// <param name="recognitionListener">Recognition listener(MainScript).</param>
        public void StartRecognition(RecognitionOptions recognitionOptions, IRecognitionListener recognitionListener)
        {
            StopRecognition();

            SyncMarkersWithFolder();

            _recognitionRunning = true;
            _active             = true;

            _currentRecognitionOptions = recognitionOptions;
            _recognitionListener       = recognitionListener;
            _dataProvider = new RecognitionDataProvider(recognitionOptions.getCloudInfo(), this, GetDeviceId());

#if !UNITY_EDITOR
            if (!LoadSavedCameraParams())
            {
                _dataProvider.ExecuteGetCameraParamFromServer(true);
            }
#endif

            PikkartARCore.ChangeMode(_currentRecognitionOptions.getStorage() != RecognitionOptions.RecognitionStorage.LOCAL);
            PikkartARCore.StartRecognition(_currentRecognitionOptions.getStorage() != RecognitionOptions.RecognitionStorage.LOCAL, false);

            PikkartARCore.StartEffect();

            _markerId = "";

            if (_currentRecognitionOptions.getMode() == RecognitionOptions.RecognitionMode.TAP_TO_SCAN)
            {
                scheduleTimers();
            }
        }
Ejemplo n.º 2
0
        public void ChangeRecognitionOptions(RecognitionOptions recognitionOptions)
        {
            if (_recognitionRunning)
            {
                if (_currentRecognitionOptions.getStorage() != recognitionOptions.getStorage())
                {
                    if (recognitionOptions.getStorage() != RecognitionOptions.RecognitionStorage.LOCAL)
                    {
                        PikkartARCore.StartEffect();
                    }
                    else
                    {
                        PikkartARCore.StopEffect();
                    }

                    PikkartARCore.ChangeMode(recognitionOptions.getStorage() != RecognitionOptions.RecognitionStorage.LOCAL);
                }

                if (_currentRecognitionOptions.getMode() != recognitionOptions.getMode())
                {
                    if (recognitionOptions.getMode() != RecognitionOptions.RecognitionMode.TAP_TO_SCAN)
                    {
                        stopTimers();
                    }
                    else
                    {
                        scheduleTimers();
                    }
                }
            }

            _currentRecognitionOptions = recognitionOptions;
        }
Ejemplo n.º 3
0
        public void scheduleTimers()
        {
            _mainTimer.Stop();
            _mainTimer.AutoReset = false;
            _mainTimer.Elapsed  += (s, e) => {
                if (_currentRecognitionOptions.getStorage() == RecognitionOptions.RecognitionStorage.LOCAL ||
                    _cloudMarkerNotFoundCount > 0)
                {
                    StopRecognition();
                    _recognitionListener.MarkerNotFound();
                }
            };
            _mainTimer.Start();

            _serverResponseTimer.Stop();
            _serverResponseTimer.AutoReset = false;
            _serverResponseTimer.Elapsed  += (s, e) =>
            {
                StopRecognition();
                _recognitionListener.MarkerNotFound();
            };
            if (_currentRecognitionOptions.getStorage() != RecognitionOptions.RecognitionStorage.LOCAL)
            {
                _serverResponseTimer.Start();
            }
        }