Utbildning kompisar: att göra fysisk träning roligare för barn (3 / 4 steg)
Steg 3: Kod klienten
Klienten är kodad i NodeJS. Om du vill hoppa över denna del, och bara bygga exakt samma demo rutin som vi gjorde kan du hämta koden på GitHub databasen: https://github.com/hermanbanken/thomas-bot. När du bygger din egen logik kan här databasen också innehålla praktiska exempel.
Arkitektur
Eftersom servern kommer att skrivas på Meteor, för att påskynda utvecklingen, måste Edison ansluta DDP-API för servern. DDP är som en REST api, men bara är JSON, och uppdaterar reactively på klienten när data på servern ändras.
Startadressen för klienten är main.js. Det kommer vi att först autentiseras för servern och sedan köra någon rutin eller vänta på instruktioner. Om du kopierat koden, kommer att du behöva justera värdnamn eller IP för servern.
Flera separata funktioner refereras i main.js: logiken för accelerometern (accel.js), touch sensor (touch.js), en valfri lcd (lcd.js) och flex sensorn (flex.js) är alla delas ut till olika filer.
Installation
Installera dessa skript och paket på båda Edison styrelser genom att flytta koden på där med hjälp av XDK eller scp. Vi fann att ibland XDK inte kompilera beroenden korrekt på din Utvecklingsmaskin, så kanske du behöver kopiera över källorna och köra "npm installera" på Edison själv. Detta var särskilt fallet för olika bluetooth bibliotek vi försökt.
Hantering av DDP
En viktig del av kompisen är att den kan ta emot barnet behöver för att utföra övningar. För detta definierat vi en "samling", en plats för dokument som ska publiceras. Med hjälp av DDP prenumerera vi på nya meddelanden i Inkorgen samlingen:
På servern: Meteor.publish ("userInbox", function() {return Inbox.find ({userId: this.userId});})
Så innehåller Inkorgen nedan endast meddelanden för den inloggade användaren.
DDP.subscribe ("userInbox", []);
var taskObserver = ddp.observe("inbox");
taskObserver.added = function(id) {
var meddelande = ddp.collections.inbox[id];
Console.log ("Göra något med", meddelande);
}