Пример #1
0
 private static void ShowCommandSent(object sender, RobotCommandDetails details)
 {
     //do something
 }
Пример #2
0
        /// <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;
            }
        }