Elektriska Imp WiFi framsteg Display (10 / 12 steg)
Steg 10: Firmware - elektriska Imp Agent och enhet
Ber om ursäkt för följande återanvändning av text från min tidigare electric imp instructable - kraven är desamma. Bara att spara dig från att bläddra en annan länk!
För att få din imp att arbeta, måste ansluta till det trådlösa nätverket. Elektriska Imp finns ett verktyg som gör konfigurationen optiskt. Processen kallas BlinkUp och är närmare här https://electricimp.com/docs/gettingstarted/1-blinkup/ När BlinkUp är klar, visas ditt imp på din IDE under nya enheter. Om du inte har använt en elektrisk Imp innan, föreslår jag att du prova först i Hello World exempel på webbplatsen för elektriska Imp att få kläm på den integrerade havspolitiken. Det finns också en stor guide om försöksläkemedlet på instructables skriven av
Firmware för den integrerade havspolitiken är kopplad till detta steg som RewardSystemDeviceCode.nut
Koden för agenten bifogas som RewardSystemAgentCode.nut
Firmware och Agent kod samspel
Ditt ombud har en URL som är specifika för det. När ett HTTP-meddelande skickas till denna URL, din Agent kod som körs i molnet Imp kontrollerar giltigheten av begäran genom att jämföra inkommande API-nyckel (valfri tangent du gör upp - fler bitar gör det svårare att gissa) med API-nyckel lagras i minnet av Agent (API-nyckel idé från http://forums.electricimp.com/discussion/comment/8281#Comment_8281). Om nyckelns match, meddelandet är markerat för att avgöra om begäran är i API för detta system.
Händelser som få passerat från Agent enhet Imp firmware, skickas över den elektriska imp säker kommunikationen kanal mellan den integrerade havspolitiken och server baserad Agent. Försöksläkemedlet "tar emot" denna händelse genom agent.on uppgifter som anges i enheten firmware
- agent.on ("addGoalStep", funktion (värde) {});
- agent.on ("buttonPressed", funktion (värde) {});
API för denna app:
{begäran: buttonPressed} - används för diagnostik och att vila målnivåer
{förfrågan: persistValues} - lagrar värden för SendHub kommunikation definieras av klienten App
{förfrågan: addGoalStep} - öka den nuvarande nivån mot mål beroende på input värde. I argument vi hantera stegen enligt följande vägning (där super A är 100%):
om (värde == "superA")
goalLevel += 2.
annars om (värde == "A")
goalLevel + = 1;
annars om (värde == "B")
goalLevel += 0,5;
annars om (värde == "C")
goalLevel += 0,25;
annars om (värde == "restartGoal")