Stap 3: De "magic" achter Transfiguratie drukte besturingselement
Allermeest naar de magie is gewoon goed programmeren. De namen van de klassen worden gekozen om de leesbaarheid van de code van de FiniteStateMachine door om het even wie. We konden hebben gegeven staat voor blik en Edge voor de situatie, maar de code is gewoon moeilijker te begrijpen. Transfiguration.h is gewoon dat hetzelfde idee. Wilt u het Transfiguration.h bestand te downloaden en in uw project-bestanden toe te voegen. Dit is meestal dezelfde map als uw Ino bestand. U zal hebben om te stoppen en herstarten van de Arduino omgeving voordat het u toestaan om het bewerken van het bestand in de Arduino omgeving.
U hoeft te doen de items hieronder is alleen voor degenen die ook geïnteresseerd zijn in wat in het Transfiguration.h-bestand
Pragma eenmaal is gewoon het helpen van de compiler weten alleen gebruik dit bestand eenmaal.
Bevat bovenaan de NeoPixel, CurieIMU, CurieTime en de I2C-functies.
De vector omvatten is speciaal. Het is een verzameling van routines die u toestaan om het houden van een verzameling van dingen. In ons geval het is een verzameling of lengtes, kleuren of kijkt. In principe elke keer zie je vector kun je lezen als een verzameling van Nederlands.
Kleur klasse is echt de software zijde van het houden van de rood-, groen- en blauwheid van de kleuren in het palet.
Kleuren is echt een verzameling van kleuren voor een kijkje. Het heeft een magische functie genaamd sociaaldemocraat die berekent een kleur tussen je laatste kleur en uw huidige kleur na verloop van tijd. De overgangen van de ene kleur naar de andere is dus niet abrupt.
Lengte is gewoon opslaan van het palet van de lengte van de opties.
Lengtes zoals kleuren is een verzameling van lengte en heeft een gedaanteverandering functie die is niet zo ingewikkeld als kleuren.
Een blik heeft zoals je zou verwachten kleuren en lengtes. Dus zelfs al gebruikt de manifestatiecode voor de eindige toestandsmachine slechts één kleur en lengte. Deze code is klaar voor zo veel zoals de Arduino 101 aankan.
#defines zijn slechts een manier van het maken van constanten die geen ruimte op uw Arduino innemen.
Situatie is het algemene idee van een situatie die zich kan voordoen. De belangrijkste functie is hasOccurred de waarde true als de situatie opgetreden zal worden.
Stap, Spin en tijd zijn net speciale versies van de situatie. Sommige gevorderde programmeurs kunnen zich afvragen waarom de situatie, de stap, de Spin, en de tijd worden gedaan op deze manier en het antwoord is simpel leesbaarheid. Graag bespreken verder in een e-mail.
Overgang is een klasse die houdt de huidige look, de volgende look en wat de situatie is opgetreden waardoor de overgang.
updateStepCount en eventCallback kloppen -> stepCount demo, minus sommige seriële Outptut van de CurieIMU.
Eindelijk de gelegenheid klasse. Een verzameling van blikken, een verzameling van situaties en een collectie van overgang regel om uit te gaan van de ene staat naar de andere.
getPeg, setPeg zijn slechts een manier voor het vaststellend een tijdstip waarop iets is ingetreden. We denken aan het als het instellen van een pen in de grond in tijd en dan zien hoe ver uit de buurt van dat peg bent u.
Lus gaat gewoon door de situaties op zoek om te zien als één hebben voorgedaan en vervolgens controleren of de blik overeenkomt met een overgang.
Setup doet alle de setup voor de IMU, de tijd, de draad en de NeoPixel
Verbazingwekkend thats it. 256 coderegels maar echt gewoon uitvoering van ideeën dat elk zinvol is.