Esempio n. 1
0
 private static void ShowEventRegistration(object sender, RegisterEventDetails details)
 {
     //do something
 }
Esempio n. 2
0
        /// <summary>
        /// Callback when an event is registered so we can setup simulated events
        /// Under development
        /// </summary>
        /// <param name="eventDetails"></param>
        /// <param name="command"></param>
        private void HandleEventRegistered(object sender, RegisterEventDetails details)
        {
            //TODO Use the event details to multi real register with specific filters
            var eventDetails = details.EventDetails;

            switch (eventDetails.EventType)
            {
            //Based on the event that was registered, then setup an event to be triggered when the commands come in
            case EventType.LocomotionCommand:
                _locomotionCommandEventDetails = eventDetails;
                break;

            case EventType.HaltCommand:
                _haltCommandEventDetails = eventDetails;
                break;

            case EventType.AudioPlayComplete:
                _audioPlayCompleteCommandEventDetails = eventDetails;
                break;

            //Record event id we registered under for manually managed events so we can send events under that id
            case EventType.TouchSensor:
                if (_capTouchRegistered)
                {
                    return;
                }
                _capTouchRegistered = true;
                //Startup Cap Touch events...
                _ = Task.Run(async() =>
                {
                    await Task.Delay(8000);
                    MockedRobot.TriggerRobotEvent(CapTouchEvent.GetMockEvent(true, CapTouchPosition.Chin, eventDetails.EventId));
                    await Task.Delay(1000);
                    MockedRobot.TriggerRobotEvent(CapTouchEvent.GetMockEvent(false, CapTouchPosition.Chin, eventDetails.EventId));

                    await Task.Delay(3000);
                    MockedRobot.TriggerRobotEvent(CapTouchEvent.GetMockEvent(true, CapTouchPosition.Chin, eventDetails.EventId));
                    await Task.Delay(1000);
                    MockedRobot.TriggerRobotEvent(CapTouchEvent.GetMockEvent(false, CapTouchPosition.Chin, eventDetails.EventId));
                });
                break;

            case EventType.KeyPhraseRecognized:
                if (_keyPhraseRecRegistered)
                {
                    return;
                }
                _keyPhraseRecRegistered = true;
                _ = Task.Run(async() =>
                {
                    await Task.Delay(5000);
                    if (_keyPhraseRecRunning)
                    {
                        MockedRobot.TriggerRobotEvent(new KeyPhraseRecognizedEvent(50, eventDetails.EventId));
                    }
                    await Task.Delay(7000);
                    if (_keyPhraseRecRunning)
                    {
                        MockedRobot.TriggerRobotEvent(new KeyPhraseRecognizedEvent(70, eventDetails.EventId));
                    }
                    await Task.Delay(5000);
                    if (_keyPhraseRecRunning)
                    {
                        MockedRobot.TriggerRobotEvent(new KeyPhraseRecognizedEvent(80, eventDetails.EventId));
                    }
                    await Task.Delay(4000);
                    if (_keyPhraseRecRunning)
                    {
                        MockedRobot.TriggerRobotEvent(new KeyPhraseRecognizedEvent(70, eventDetails.EventId));
                    }
                });
                break;

            case EventType.BumpSensor:
                if (_bumpRegistered)
                {
                    return;
                }
                _bumpRegistered = true;
                _ = Task.Run(async() =>
                {
                    await Task.Delay(10000);
                    MockedRobot.TriggerRobotEvent(BumpSensorEvent.GetMockEvent(true, BumpSensorPosition.FrontLeft, eventDetails.EventId));
                    await Task.Delay(3000);
                    MockedRobot.TriggerRobotEvent(BumpSensorEvent.GetMockEvent(true, BumpSensorPosition.FrontRight, eventDetails.EventId));

                    await Task.Delay(5000);
                    MockedRobot.TriggerRobotEvent(BumpSensorEvent.GetMockEvent(false, BumpSensorPosition.FrontLeft, eventDetails.EventId));
                    await Task.Delay(1000);
                    MockedRobot.TriggerRobotEvent(BumpSensorEvent.GetMockEvent(false, BumpSensorPosition.FrontRight, eventDetails.EventId));
                });
                break;

            case EventType.FaceRecognition:
                if (_faceRecRegistered)
                {
                    return;
                }
                _faceRecRegistered = true;
                _ = Task.Run(async() =>
                {
                    await Task.Delay(5000);
                    if (_faceRecRunning || _faceDetectRunning)
                    {
                        MockedRobot.TriggerRobotEvent(new FaceRecognitionEvent(5, 1, 1, _faceRecRunning ? "brad" : "unknown_person", 2, eventDetails.EventId));
                    }
                    await Task.Delay(2000);
                    if (_faceRecRunning || _faceDetectRunning)
                    {
                        MockedRobot.TriggerRobotEvent(new FaceRecognitionEvent(5, 1, 1, _faceRecRunning ? "joe" : "unknown_person", 2, eventDetails.EventId));
                    }

                    await Task.Delay(4000);

                    if (_faceRecRunning || _faceDetectRunning)
                    {
                        MockedRobot.TriggerRobotEvent(new FaceRecognitionEvent(5, 1, 1, "unknown_person", 2, eventDetails.EventId));
                    }
                });
                break;
            }
        }