private static void ShowCommandSent(object sender, RobotCommandDetails details) { //do something }
/// <summary> /// When certain commands are trigered, we might want to do something else like trigger an event /// </summary> /// <param name="command"></param> /// <param name="callback"></param> private async void HandleRobotCommand(object sender, RobotCommandDetails details) { var command = details.RobotCommand; switch (command.MessageType) { //These commands trigger events if the skill is regisered case MessageType.Stop: if (_locomotionCommandEventDetails != null) { MockedRobot.TriggerRobotEvent(new LocomotionCommandEvent(0, 0, _locomotionCommandEventDetails.EventId)); } break; case MessageType.Drive: if (_locomotionCommandEventDetails != null) { DriveCommand newCommand = (DriveCommand)command; MockedRobot.TriggerRobotEvent(new LocomotionCommandEvent(newCommand.LinearVelocity, newCommand.AngularVelocity, _locomotionCommandEventDetails.EventId)); } break; case MessageType.DriveTime: if (_locomotionCommandEventDetails != null) { DriveTimeCommand newCommand = (DriveTimeCommand)command; MockedRobot.TriggerRobotEvent(new LocomotionCommandEvent(newCommand.LinearVelocity, newCommand.AngularVelocity, _locomotionCommandEventDetails.EventId)); } break; case MessageType.Halt: if (_haltCommandEventDetails != null) { HaltCommand newCommand = (HaltCommand)command; MockedRobot.TriggerRobotEvent(new HaltCommandEvent(newCommand.MotorMasks, _haltCommandEventDetails.EventId)); } break; case MessageType.PlayAudio: if (_audioPlayCompleteCommandEventDetails != null) { PlayAudioCommand newCommand = (PlayAudioCommand)command; await Task.Delay(3000); //send an event 3 seconds after started playing for now... MockedRobot.TriggerRobotEvent(new AudioPlayCompleteEvent(newCommand.FileName, _audioPlayCompleteCommandEventDetails.EventId)); } break; //Update state flag so know if events should really be sent case MessageType.StartKeyPhraseRecognition: _keyPhraseRecRunning = true; break; case MessageType.StopKeyPhraseRecognition: _keyPhraseRecRunning = false; break; case MessageType.StartFaceDetection: _faceDetectRunning = true; break; case MessageType.StartFaceRecognition: _faceRecRunning = true; break; case MessageType.StopFaceDetection: _faceDetectRunning = false; break; case MessageType.StopFaceRecognition: _faceRecRunning = false; break; } }