Stap 7: Compilatie en Upload, Bibliotheken
Zoals de snaren van het menu op de processor van de EEPROM geheugen wonen, moeten ze eerst er worden geladen. Dit wordt gedaan door een klein programma (streeng.ino) dat moet worden geladen en voordat het compileren en installeren van het programma van de belangrijkste controller (steuerung.ino) gelanceerd. Het streeng-programma, alsmede de controler maken gebruik van de streeng class library, die het mogelijk maakt voor het opslaan en openen van tekenreeksen in EEPROM.
Enkele woorden over de bibliotheken:
Menusysteem
De functionaliteit van het apparaat vereist een gestructureerde gebruikersinterface. Ik ontwikkelde het menusysteem met drie doelstellingen: eenvoud, flexibiliteit en lage geheugen footprint. De menu's zijn hiërarchisch tot 4 niveaus. Menu-items kunnen worden gewijzigd tijdens runtime en het systeem ook biedt functionaliteit voor het invoeren van alfanumerieke en tijd gegevens. (Op/Voer/neer) is vereist voor de invoer slechts drie knoppen. Knop push tijd wordt ook gebruikt voor extra functionaliteit.
Het LCD-scherm toont een kopregel paneel (statusinformatie, tijd, temperatuur, operationele modus en de ketel staat) en 3 lijnen van menu. Afhankelijk van de displaygrootte kunnen dit meer of minder (bijvoorbeeld kop plus 1 lijn voor een kleine 16 x 2 weergave). Menunavigatie heeft geen invloed op het deelvenster voor koptekst. De huidige positie van het menu aan de linkerkant kan worden gezien meest kant en wordt aangegeven door een ' >'. De tekst voor de ingang van het menu is te zien op scherm center. In het geval dat er submenu's voor een menu-item, een ' >' wordt weergegeven aan de linkerzijde. Menu-items zijn geselecteerd door op enter te drukken, omhoog en omlaag navigeert dienovereenkomstig binnen de menustructuur. Duwen Voer voor langere keert terug naar de menu-wortel, duwen 'up' langer één menu navigeert niveau omhoog.
Tekenreeksen worden bewerkt door de waarde onder de gemarkeerde cursor met de cursor op/neer-toetsen te wijzigen. Houden ze langer, wordt de cursor verplaatst. De enter-toets wordt beëindigd bewerken met de nieuwe waarde overgenomen, houden het langer wordt ook beëindigd, maar herstelt u de oorspronkelijke tekenreekswaarde.
De menu-klassebibliotheek voorziet in drie manieren om de tekst van het menu-item op te slaan: 1) programmageheugen, 2) EEPROM, 3) voor beide van de bovenstaande dynamische berekening door een functie verstrekt. Starten van het programma moet de menustructuur worden opgebouwd met behulp van de functie van de post. In dit voorbeeld toe te schrijven aan geheugenbeperkingen wordt EEPROM meestal gebruikt voor opslag (telefoon boeken zijn dynamisch en dus gebruiken dynamische menu item schepping). Menu-items worden geïdentificeerd door een index-nummer (index om te plaatsen in EEPROM of functieargument) en enkele codering van hun positie in de menustructuur (4 hexadecimale cijfers die aangeeft van een niveau van elk). Dus zou 0x1000 betekenen het eerste menu-item op het bovenste niveau, 0x2000 de tweede hoogste niveau menu, terwijl 0x1400 het vierde submenu naar het eerste item van de menuopdracht op hoogste niveau duiden zou. Het indexnummer staat voor een verandering van menutekst tijdens runtime door herhaalde verzoeken aan de ingang functie (bijvoorbeeld On/Off knevel voorzien).
De belangrijkste functie aangeroepen vanuit het gebruikersprogramma is een gebeurtenis-handler, die terugkeert van menu-items geselecteerd en verwerkt alle menunavigatie, update en schuiven weer te geven. Tijdens het wachten voor menu gebeurtenissen, kan de gebeurtenis-handler het aanroepende programma te gebruiken van de processortijd wordt toegewezen via een aangepaste service-routine, die moet worden verstrekt.
Command Line Interface
Een essentieel kenmerk van de gebruikersinterface is de command line interface, waarmee voor de inbreng van de platte tekstopdrachten. Terwijl het wordt gebruikt voor invoer van SMS, kan het ook worden gebruikt en aangepast voor andere opdrachtsyntaxis en doeleinden (bijvoorbeeld input via IP).
In wezen de opdrachtregel wordt geparseerd voor sleutelwoorden (woonachtig in programma ruimte), die worden vervolgens vertaald naar een compacte middencode, die vervolgens eenvoudig syntaxis wordt gecontroleerd. Argumenten zoals tijd en temperatuur informatie worden verwacht in een bepaalde vorm (UU: mm voor tijd, tt.t voor temperatuur). In geval dat een syntaxisfout worden gedetecteerd, wordt een foutbericht weergegeven geproduceerd.
Telefoonlijst
Het telefoonboek ingangen in de telefoonlijst beheert en slaat ze in de controleur EEPROM. De bibliotheek is sterk afhankelijk van de menu-bibliotheek, die functies als de ruggengraat van de menustructuur van het telefoonboek bewerken.
De telefoonboek-bibliotheek maakt een menustructuur met dynamische menu-items, die elk submenu's hebben voor het bewerken en verwijderen. Routines voor het bewerken en verwijderen zijn beschikbaar zijn in de objectbibliotheek van het menu. In het algemeen, telefoonnummers wellicht 16 cijfers en worden opgeslagen in het internationale formaat begint bij het starten van een '+' en de landcode.
Controler
De ketel aan/uit contact wordt beheerd door de controller-software. De bibliotheek schakelt de kachel afhankelijk van de relevante setpoint, die is ofwel handmatig ingestelde (via de menukeuze temperatuur), gebruikt standaardwaarden (Comfort, economie of antivries, die op hun beurt worden ingesteld door het instellingen menu-item) of wordt bepaald door de schema's die door de gebruiker geprogrammeerd. De schema's kunnen worden geprogrammeerd met één minuut tijd resolutie. Maximaal vijf tijdsintervallen met individuele temperatuur kunnen instellingen worden geprogrammeerd.
De bibliotheek ervoor zorgt dat de beheersing van de ketel, om niet uit te voeren van de kachel voor minder dan de pre instelt voor minimale runtime en ook controles voor eventuele storingen, d.w.z. Wanneer de kamertemperatuur niet toeneemt tijdens de werking van de kachel. In het geval dat een storing is opgetreden of de temperatuur (Alert 0) onderschrijdt of overschrijdt (Alert 1) geprogrammeerd basiswaarden, waarschuwing berichten worden verzonden via SMS. Tot slot probeert de controller te verzekeren op alle tijden die de gemeten temperatuur nooit valt onder de antivries-niveau gedefinieerd.
GSM
De GSM-bibliotheek voert de communicatie tussen Freeduino en Modem. De bibliotheek voert basic IO met de modem, biedt een methode voor het verzenden van AT-opdrachten naar de modem en voorziet van de basisfunctionaliteit controleren van inkomende oproepen en beheren van de inkomende SMS-berichten, alsmede het initiëren van uitgaande SMS-berichten.