private static void ShowEventRegistration(object sender, RegisterEventDetails details) { //do something }
/// <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; } }