#define CUSTOM_SETTINGS
#define INCLUDE_VOICE_RECOGNIZER_SHIELD
#define INCLUDE_MUSIC_PLAYER_SHIELD
#define INCLUDE_TERMINAL_SHIELD
/* Include 1Sheeld library. */
#include <OneSheeld.h>
int Rled=13;
int Yled=12;
int Gled=11;
/* Voice commands set by the user. */
const char playCommand[] = "play";
const char stopCommand[] = "stop";
const char yellowCommand[] = "yellow";
const char greenCommand[] = "green";
const char redCommand[] = "red";
void setup()
{
pinMode(13,OUTPUT);
pinMode(12,OUTPUT);
pinMode(11,OUTPUT);
/* Start Communication. */
OneSheeld.begin();
/* Error Commands handiling. */
VoiceRecognition.setOnError(error);
VoiceRecognition.start();
}
void loop ()
{
/* Check if new command received. */
if(VoiceRecognition.isNewCommandReceived())
{
/* Compare the play command. */
if(!strcmp(playCommand
,VoiceRecognition.
getLastCommand())) {
digitalWrite(13,HIGH);
digitalWrite(12,HIGH);
digitalWrite(11,HIGH);
}
/* Compare the pause command. */
else if (!strcmp(stopCommand
,VoiceRecognition.
getLastCommand())) {
digitalWrite(13,LOW);
digitalWrite(12,LOW);
digitalWrite(11,LOW);
}
/* Compare the stop command. */
else if (!strcmp(yellowCommand
,VoiceRecognition.
getLastCommand())) {
digitalWrite(13,LOW);
digitalWrite(12,HIGH);
digitalWrite(11,LOW);
}
/* Compare the next command. */
else if (!strcmp(greenCommand
,VoiceRecognition.
getLastCommand())) {
digitalWrite(13,LOW);
digitalWrite(11,HIGH);
digitalWrite(12,LOW);
}
else if (!strcmp(redCommand
,VoiceRecognition.
getLastCommand())) {
digitalWrite(12,LOW);
digitalWrite(13,HIGH);
digitalWrite(11,LOW);
}
}
/* тут должна быть та часть кода на ассемблере
asm volatile(
*/
);
}
/* Error checking function. */
void error(byte errorData)
{
/* Switch on error and print it on the terminal. */
switch(errorData)
{
case NETWORK_TIMEOUT_ERROR: Terminal.println("Network timeout");break;
case NETWORK_ERROR: Terminal.println("Network Error");break;
case AUDIO_ERROR: Terminal.println("Audio error");break;
case SERVER_ERROR: Terminal.println("No Server");break;
case SPEECH_TIMEOUT_ERROR: Terminal.println("Speech timeout");break;
case NO_MATCH_ERROR: Terminal.println("No match");break;
case RECOGNIZER_BUSY_ERROR: Terminal.println("Busy");break;
}
}
I2RlZmluZSBDVVNUT01fU0VUVElOR1MKI2RlZmluZSBJTkNMVURFX1ZPSUNFX1JFQ09HTklaRVJfU0hJRUxECiNkZWZpbmUgSU5DTFVERV9NVVNJQ19QTEFZRVJfU0hJRUxECiNkZWZpbmUgSU5DTFVERV9URVJNSU5BTF9TSElFTEQKLyogSW5jbHVkZSAxU2hlZWxkIGxpYnJhcnkuICovCiNpbmNsdWRlIDxPbmVTaGVlbGQuaD4KaW50IFJsZWQ9MTM7CmludCBZbGVkPTEyOwppbnQgR2xlZD0xMTsKCi8qIFZvaWNlIGNvbW1hbmRzIHNldCBieSB0aGUgdXNlci4gKi8KY29uc3QgY2hhciBwbGF5Q29tbWFuZFtdID0gInBsYXkiOwpjb25zdCBjaGFyIHN0b3BDb21tYW5kW10gPSAic3RvcCI7CmNvbnN0IGNoYXIgeWVsbG93Q29tbWFuZFtdID0gInllbGxvdyI7CmNvbnN0IGNoYXIgZ3JlZW5Db21tYW5kW10gPSAiZ3JlZW4iOwpjb25zdCBjaGFyIHJlZENvbW1hbmRbXSA9ICJyZWQiOwoKdm9pZCBzZXR1cCgpCnsKICBwaW5Nb2RlKDEzLE9VVFBVVCk7CiAgcGluTW9kZSgxMixPVVRQVVQpOwogIHBpbk1vZGUoMTEsT1VUUFVUKTsKICAvKiBTdGFydCBDb21tdW5pY2F0aW9uLiAqLwogIE9uZVNoZWVsZC5iZWdpbigpOwogIC8qIEVycm9yIENvbW1hbmRzIGhhbmRpbGluZy4gKi8KICBWb2ljZVJlY29nbml0aW9uLnNldE9uRXJyb3IoZXJyb3IpOwogIAogIFZvaWNlUmVjb2duaXRpb24uc3RhcnQoKTsKfQoKdm9pZCBsb29wICgpIAp7CiAgLyogQ2hlY2sgaWYgbmV3IGNvbW1hbmQgcmVjZWl2ZWQuICovCiAgaWYoVm9pY2VSZWNvZ25pdGlvbi5pc05ld0NvbW1hbmRSZWNlaXZlZCgpKQogIHsKICAgIC8qIENvbXBhcmUgdGhlIHBsYXkgY29tbWFuZC4gKi8KICAgIGlmKCFzdHJjbXAocGxheUNvbW1hbmQsVm9pY2VSZWNvZ25pdGlvbi5nZXRMYXN0Q29tbWFuZCgpKSkKICAgIHsKICAgICAgZGlnaXRhbFdyaXRlKDEzLEhJR0gpOwogICAgICBkaWdpdGFsV3JpdGUoMTIsSElHSCk7CiAgICAgIGRpZ2l0YWxXcml0ZSgxMSxISUdIKTsKICAgIH0KICAgIC8qIENvbXBhcmUgdGhlIHBhdXNlIGNvbW1hbmQuICovCiAgICBlbHNlIGlmICghc3RyY21wKHN0b3BDb21tYW5kLFZvaWNlUmVjb2duaXRpb24uZ2V0TGFzdENvbW1hbmQoKSkpCiAgICB7CiAgICAgICBkaWdpdGFsV3JpdGUoMTMsTE9XKTsKICAgICAgZGlnaXRhbFdyaXRlKDEyLExPVyk7CiAgICAgIGRpZ2l0YWxXcml0ZSgxMSxMT1cpOwogICAgfQogICAgLyogQ29tcGFyZSB0aGUgc3RvcCBjb21tYW5kLiAqLwogICAgZWxzZSBpZiAoIXN0cmNtcCh5ZWxsb3dDb21tYW5kLFZvaWNlUmVjb2duaXRpb24uZ2V0TGFzdENvbW1hbmQoKSkpCiAgICB7CiAgICAgICBkaWdpdGFsV3JpdGUoMTMsTE9XKTsKICAgICAgZGlnaXRhbFdyaXRlKDEyLEhJR0gpOwogICAgICAgZGlnaXRhbFdyaXRlKDExLExPVyk7CiAgICB9CiAgICAvKiBDb21wYXJlIHRoZSBuZXh0IGNvbW1hbmQuICovCiAgICBlbHNlIGlmICghc3RyY21wKGdyZWVuQ29tbWFuZCxWb2ljZVJlY29nbml0aW9uLmdldExhc3RDb21tYW5kKCkpKQogICAgewogICAgICBkaWdpdGFsV3JpdGUoMTMsTE9XKTsKICAgICAgZGlnaXRhbFdyaXRlKDExLEhJR0gpOwogICAgICBkaWdpdGFsV3JpdGUoMTIsTE9XKTsKICAgICAgIAogICAgfQogICAgZWxzZSBpZiAoIXN0cmNtcChyZWRDb21tYW5kLFZvaWNlUmVjb2duaXRpb24uZ2V0TGFzdENvbW1hbmQoKSkpCiAgICB7CiAgICAgIAogICAgICBkaWdpdGFsV3JpdGUoMTIsTE9XKTsKICAgICAgZGlnaXRhbFdyaXRlKDEzLEhJR0gpOwogICAgICAgZGlnaXRhbFdyaXRlKDExLExPVyk7CiAgICB9CiAgfQogLyog0YLRg9GCINC00L7Qu9C20L3QsCDQsdGL0YLRjCDRgtCwINGH0LDRgdGC0Ywg0LrQvtC00LAg0L3QsCDQsNGB0YHQtdC80LHQu9C10YDQtQogIGFzbSB2b2xhdGlsZSgKICAqLwogICk7Cn0KCi8qIEVycm9yIGNoZWNraW5nIGZ1bmN0aW9uLiAqLwp2b2lkIGVycm9yKGJ5dGUgZXJyb3JEYXRhKQp7CiAgLyogU3dpdGNoIG9uIGVycm9yIGFuZCBwcmludCBpdCBvbiB0aGUgdGVybWluYWwuICovCiAgc3dpdGNoKGVycm9yRGF0YSkKICB7CiAgICBjYXNlIE5FVFdPUktfVElNRU9VVF9FUlJPUjogVGVybWluYWwucHJpbnRsbigiTmV0d29yayB0aW1lb3V0Iik7YnJlYWs7CiAgICBjYXNlIE5FVFdPUktfRVJST1I6IFRlcm1pbmFsLnByaW50bG4oIk5ldHdvcmsgRXJyb3IiKTticmVhazsKICAgIGNhc2UgQVVESU9fRVJST1I6IFRlcm1pbmFsLnByaW50bG4oIkF1ZGlvIGVycm9yIik7YnJlYWs7CiAgICBjYXNlIFNFUlZFUl9FUlJPUjogVGVybWluYWwucHJpbnRsbigiTm8gU2VydmVyIik7YnJlYWs7CiAgICBjYXNlIFNQRUVDSF9USU1FT1VUX0VSUk9SOiBUZXJtaW5hbC5wcmludGxuKCJTcGVlY2ggdGltZW91dCIpO2JyZWFrOwogICAgY2FzZSBOT19NQVRDSF9FUlJPUjogVGVybWluYWwucHJpbnRsbigiTm8gbWF0Y2giKTticmVhazsKICAgIGNhc2UgUkVDT0dOSVpFUl9CVVNZX0VSUk9SOiBUZXJtaW5hbC5wcmludGxuKCJCdXN5Iik7YnJlYWs7CiAgfQp9Cg==