Använda RPi, Azure och Cortana att automatisera ditt hem! (13 / 15 steg)

Steg 13: Skapa din Windows Phone App del 4: kodning Cortana - logik



Cortanas logik

Nu när Cortana kan höra dig, vi behöver henne att förstå dig. Denna del av guiden går in i 'backend' Cortana och para ihop henne med vår app logik. Vi vill programmera henne så att när hon hör ett av dessa kommandon, hon skickar ett meddelande till vår Azure Service Bus och aktiverar eller inaktiverar lamporna.

Installera röstkommandon

Glöm inte! Detta är ett problem som många människor har när du först använder Cortana, helt enkelt eftersom det är lätt förbises. Låt oss göra det genast att se till att det är gjort och över med.

Placera följande kod i dokumentet MainPage.xaml.cs .

Först, importera rätt referens samtal på toppen av din fil:

använder System.Threading.Tasks;
använder Windows.Media.SpeechRecognition;
använder Windows.Storage;

Sedan koden för att installera vår röst kommandon kan skrivas som en funktion som så:

privat async uppgift InstallVoiceCommandsAsync()
{
var storageFile = väntar StorageFile.GetFileFromApplicationUriAsync (nya Uri("ms-appx:///ControlCommands.xml"));
väntar på VoiceCommandManager.InstallCommandSetsFromStorageFileAsync(storageFile);
}

Inte bekant med asynkrona och Await? Läsa på MSDN dokument här.

Nu när vi har vår funktion, låt oss se till att kalla det! En bra plats att lägga den ligger inom funktionen OnNavigatedTo .

Eftersom våra installera är en asynkron uppgift, kommer att vi behöva vända funktionen OnNavigateTo i en asynkron funktion genom enkel att lägga till följande kod:

skyddade omställning async void OnNavigatedTo (NavigationEventArgs e)

Då kolla vi bara att detta är första gången sidan har varit navigerat till och installera våra röstkommandon:

om (e.NavigationMode == NavigationMode.New)
{
väntar på InstallVoiceCommandsAsync();
}

Stor! Nu kommer våra röstkommandon installera så snart så öppna app för första gången!

Voice Command logik

Nu kommer vi använder vad kommandot den användare talade för att räkna ut vilket kommando att skicka till vår Azure Service Bus. Öppna upp din App.xaml.cs fil och bläddra till strax under funktionen RootFrame_FirstNavigated . Vi kommer att sätta följande funktion under där:

skyddade omställning void OnActivated (IActivatedEventArgs args)
{
Base. OnActivated(args);
om (args. Snäll == ActivationKind.VoiceCommand)
{
var commandArgs = args som VoiceCommandActivatedEventArgs;
om (commandArgs! = null)
{
SpeechRecognitionResult speechRecognitionResult = commandArgs.Result;
var voiceCommandName = speechRecognitionResult.RulePath[0];

växel (voiceCommandName)
{
fallet "DeskLightsOff":
SendSBMessage("0");
bryta;
fallet "DeskLightsOn":
SendSBMessage("1");
bryta;
}
}
}
Window.Current.Activate();
}

Denna funktion kallas varje gång någon använder våra Command Prefix (BACH) när du ger Cortana en instruktion. Även om det kan verka lite förvirrande till en början, är den verkliga viktig del följande kodrader:

växel (voiceCommandName)
{
fallet "DeskLightsOff":
SendSBMessage("0");
bryta;
fallet "DeskLightsOn":
SendSBMessage("1");
bryta;
}

Vi använder en strömbrytare uttalande att hoppa genom olika kommandon i vårt SSML dokument. Vad vi checkar är för strängen för att matcha med våra kommandonamnet från våra kommandot block i ssml doc. När vi vet vad kommandot för vi har fått, kan vi sedan agera därefter genom bränning våra SendSBMessage som skickar ett meddelande till vår Azure Service Bus. För "Av" skickar vi en "0"och "På" vi skickar en "1".

Koden inte fungerar 100%? Oroa dig inte, jag har bifogat både en MainPage.xaml.cs och App.xaml.cs som bör ge dig mer klarhet när följer med.

Se Steg
Relaterade Ämnen

Tutorial: Hur att installera och använda MT-kort för att spela 3ds spel på N3DS/XL V4.5-4.1

för närvarande finns det fyra kort kan stödja 3ds spel, de är gateway 3ds, mt-kort, r4i gold 3ds deluxe edition och 3dslink. Bland dessa kort, var mt-kort speciellt slående för dess multi 3ds ROM stöds. Det var världens första kort att stödja mult 3d...

Automatisk hem övervakningssystem genom att använda arduino (enkel och billig)

Målet med mitt projekt är att uppnå automatisk hem övervakningssystem utan manuell inblandning. I allmänhet andra övervakningssystem är det nödvändigt att power ON TV och kamera mottagare varje gång. Och det måste också alla användardata till vyn som...

Hur man fångar fjärrkontrollskoder genom att använda en Arduino och en IRreceiver

I detta instructable jag kommer att visa dig hur man skriver en liten kod för att fånga fjärrkontrollskoder i hexadecimala och decimala värden.Vi kommer att göra detta med seriell bildskärmen som är inbäddad i Arduino IDE.Detta kommer att introducera...

Använda frys papper och en skrivare att göra ram-stånd konst (och en återanvändbar utskrivbara stämpel)

I detta instructable du lära dig att använda frysen papper och en injet skrivare att göra stämplat inked konst på tyg. Denna teknik fungerar särskilt bra med typografi och ser bra ut i tovigt ramar. Jag hittade detta särskilt tryck på Etsy. Jag fråga...

Använda BitTorrent Sync för att synkronisera dina filer

Låt oss säga att du vill ha snabb fildelning mellan din kontorsdator och din personlig bärbar dator, men du har några frågor om cloud-sharing system. Kanske behöver din filstorlek kräver flexibilitet som ett långa abonnemang inte har råd, eller du är...

Använda en spis butan patron att fylla tändare

jag vet att ljus butan kan vara mycket dyrt medan kaminen butan är billigt. Detta är att visa dig hur man gör en permanent adapter.Vad du behöverButan patronBIC pennaVarmt lim eller epoxiTångVinklade skärEn lättare att fylla och testaSteg 1: rengörin...

Använda en Accelerometer och gyroskop med Arduino

jag köpte nyligen en kombination 3 axlig accelerometer och 2 axis gyroskop från Sparkfun och jag ville lägga upp några av koden jag brukade få det igång. Jag planerar att använda den i en Arduino baserad MIDI-controller som jag kommer att utstationer...

Hur man använder en Ergo bärare att lugna ditt barn att sova

Välkommen!Mitt namn är Jen, och jag är en babywearing duk diapering, amning, sova tillsammans, Hemundervisning mama att fyra fantastiska valpar--Zoe (9), Niko (5), och Vi & Manny (galen två-åriga tvillingarna). Dagar får ganska knasig runt här! När j...

4 kreativa och kusliga Halloween idéer att dekorera ditt hem

4 kreativa och kusliga Halloween idéer att dekorera ditt hemHalloween har anlänt och det dags att dekorera ditt hem för firandet. Men om det har vatten läckage märken kan du använda en eller flera av dessa otroliga idéer för att lägga spookiness Hall...

Att få ditt hem redo för vintern

Hej. Detta är mitt första inlägg på Om du är en lycklig en som mig och bor i ett kallt läge, sedan sist vinter (2014) var en mycket kall upplevelse minst sagt. Efter att ha sett min värme räkning kommer att taket fick jag till uppgift att öka min hem...

Få Siri att styra ditt hem

Jag trodde detta var otroligt cool och beslutat att göra en instructable så du kunde göra det också.Grundtanken med detta instructable är att be siri att stänga av ditt ljus eller flera ljus på samma gång.Utvecklingen är NodeJS (en "smak" av jav...

Fem sätt att skydda ditt hem från ett inbrott som inte kommer att bryta banken

har du kommit hem för att hitta att någon har fått och tagit med dina värdesaker? Eller kanske du bor i en stad där egendomsbrott är på uppgång, så varje gång du kommer hem, du är orolig vad du hittar. Eller kanske du inte tycker om ett inbrott, över...

Använda din iPhone för att skanna koder och Läs Sensor fordonsdata

Med hjälp av en mycket billig (10$!) adapter som du kan använda din iPhone som ett diagnostiskt verktyg för att räkna ut ditt fordons check engine ljus, koder, eller avmarkera Visa sensorer (t.ex. temperatur, syre sensormätningar och fordonets hastig...

Använda QR-koder för att identifiera och spåra dina saker

vem flyttas hus vet vad en otäck sak som skulle kunna vara. Jag för närvarande outprocessing, vilket innebär massor av lådor och packning och andra typer av elände. En av mina problem är denna: Hur vet du om ett visst objekt är? Du har inte packat up...

Hur att sluta använda pappershanddukar, servetter och Baby våtservetter

du vet att du älskar det-disponibla bekvämligheten av en papper som finns till hands när du behöver den. Du vet att det är rent. Det är rätt storlek. Det är absorberande (typ av) och mjuk (inte riktigt), och alltid behändig (tills du kör ut). Okej, s...

Använda Dragino han och mega328p för att bygga en likadan lösning för Arduino Yun

I detta projekt, kommer att vi göra en Arduino Yun både lösning med hjälp av Dragino HE.mega328p och andra komponenter.Här kommer vi bygga en Arduino Yun både solutiom och visar hur man programmerar mega328p via WiFi. och hur till demo kommunikation...

Snabbt och enkelt! Använda bläck och en prägling mapp för att skapa en boktryck titt!

Förutom bilden instruktionerna nedan, har jag också laddade upp en video ovan för dig som föredrar videor kontra bild tutorials ovan.Jag älskar att skapa - jag har sedan jag var liten. Sanningsenligt, jag undrar fortfarande där klistra gick och jag t...

Hur man gör tvål. Använda den som en present eller för att dekorera ditt hem!

Detta Instructable visar dig hur man gör tvål hemma (det gamla, kemiskt sättet!) och hur man kan omvandla det till en underbar julklapp, eller för dekorera ditt hem. Det är mycket billigt men mycket customable!Steg 1: Instrument och ingredienser Oliv...

Använda en borrmaskin för att göra kaffe i den gamla modet sätt

Jag älskar kaffe,... nej jag LIVE kaffe,... ingen I...well på något sätt du får idén, jag är ganska meningslöst utan min tidigt på morgonen varm, mörk, koffein-fyllda dryck. Kalla det ett beroende, jag kalla bara det en saknade elementet i mitt blod....