Stap 3: Code de client
De client wordt gecodeerd in NodeJS. Als u wilt overslaan van dit deel, en bouwen enkel de exacte dezelfde demo routine, zoals we hebben gedaan, kunt u de code op de GitHub-repository downloaden: https://github.com/hermanbanken/thomas-bot. Bij het bouwen van uw eigen logica deze repository bevat mogelijk ook handige voorbeelden.
Het platform
Aangezien de server zal worden geschreven in Meteor, versnellen van de ontwikkeling, moet de Edison verbinden met de DDP-api van de server. DDP is als een REST api, maar is JSON alleen, en reactief op de client worden bijgewerkt wanneer de gegevens op de server worden gewijzigd.
Het ingangspunt van de client is main.js. Er zullen we eerst geverifieerd door de server en vervolgens uitvoeren van sommige routine of wachten op instructies. Als u de code hebt gekopieerd, moet u de hostnaam of het IP-adres van de server aanpassen.
Verscheidene afzonderlijke functies wordt verwezen in main.js: de logica voor de versnellingsmeter (accel.js), de touch sensor (touch.js), een optioneel lcd (lcd.js) en de flex-sensor (flex.js) zijn alle splitsen uit naar verschillende bestanden.
Installatie
Deze scripts en pakketten installeren op beide planken Edison door het bewegen van de code er met behulp van de XDK of scp. Vonden wij dat soms de XDK doet de afhankelijkheden correct op uw ontwikkelingsmachine niet gecompileerd, dus je zou moet de bronnen worden overschreven en uitvoeren 'npm install' op de Edison zelf. Dit was speciaal het geval voor verschillende bluetooth bibliotheken die hebben we geprobeerd.
Behandeling van DDP
Een belangrijk onderdeel van de buddy is dat het het kind moet voor het uitvoeren van oefeningen kunt ontvangen. Hiervoor hebben we een "collection", een plek om documenten te publiceren gedefinieerd. Met behulp van DDP abonneren we op nieuwe berichten in dit postvak in collectie:
Op de server: Meteor.publish ("userInbox", function {return Inbox.find ({userId: this.userId});})
Zo bevat de inbox hieronder alleen berichten voor de ingelogde gebruiker.
DDP.Subscribe ('userInbox', []);
var taskObserver = ddp.observe("inbox");
taskObserver.added = function(id) {}
var bericht = ddp.collections.inbox[id];
console.log ("Doe iets met", bericht);
}