Étape 10 : Firmware - Agent Imp électrique et dispositif
Toutes mes excuses pour la réutilisation suivante du texte de mon précédent electric imp instructable - les exigences sont les mêmes. Juste vous évitant de naviguer un autre lien !
Afin d’obtenir votre imp pour travailler, il doit se connecter à votre réseau sans fil. Imp électrique fournit un outil qui fait la configuration optiquement. Le processus est appelé BlinkUp et des https://electricimp.com/docs/gettingstarted/1-blinkup/ ici détaillées Une fois le BlinkUp terminé, votre imp apparaîtra sur votre IDE en vertu de nouveaux appareils. Si vous n’avez pas utilisé un diablotin électrique avant, je suggère que vous essayez d’abord l’exemple Hello World sur le site de Imp électrique pour obtenir le blocage de la PMI. Il y a aussi un excellent guide de l’imp sur instructables écrit par
Le firmware pour l’imp est attaché à cette étape comme RewardSystemDeviceCode.nut
Le code de l’agent est jointe à RewardSystemAgentCode.nut
Interaction de code du firmware et Agent
Votre Agent a une URL spécifique à elle. Lorsqu’un message HTTP est envoyé à cette URL, votre code de l’Agent en cours d’exécution dans le nuage Imp vérifie la validité de la demande en comparant la clé API entrant (n’importe quelle touche vous composent - plus de bits le rendent plus difficile à deviner) avec la clé API stockés dans la mémoire de l’Agent (idée clé API de http://forums.electricimp.com/discussion/comment/8281#Comment_8281). Si la correspondance de la clé, le message est vérifiée pour déterminer si la demande est dans l’API pour ce système.
Les événements qui sont passées de l’Agent au firmware de l’appareil Imp, sont passés au fil de la communication sécurisée électrique imp canal entre la PMI et le serveur basé Agent. L’Imp « reçoit » cet événement à travers les fonctions de agent.on définies dans cette version du micrologiciel
- agent.on ("addGoalStep", fonction (valeur) {}) ;
- agent.on ("buttonPressed", fonction (valeur) {}) ;
L’API pour ce soft :
{demande : buttonPressed} - utilisé pour le diagnostic et pour se reposer les niveaux de l’objectif
{demande : persistValues} - stocke les valeurs pour la communication SendHub défini par le client App
{demande : addGoalStep} - incrémente le niveau actuel vers le but, selon la valeur de l’entrée. Dans les cas, nous gérons les étapes selon la pondération suivante (où super A est 100 %) :
Si (valeur == « superA »)
goalLevel += 2 ;
else if (value == « A »)
goalLevel += 1 ;
else if (value == « B »)
goalLevel += 0,5 ;
else if (value == « C »)
goalLevel += 0,25 ;
else if (value == « restartGoal »)