Stap 4: Workflow en codemodules
Het binaire bestand staat momenteel op amper 35K in grootte. De code is niet momenteel geoptimaliseerd dus het moet mogelijk zijn om het binaire bestand onder 32K met een beetje werken; natuurlijk dat hangt af van het platform en de compiler.
Het volgende geeft een overzicht van de bron codemodules voor het project. Beperkte tijd betekent dat de code is niet zo goed gereageerd zoals ik meestal maar hopelijk met de documentatie in dit instructable de modules vrij makkelijk zitten moeten te volgen.
Gemeenschappelijk
Dictionary.c
- een handig helper-klasse waarmee een gesorteerde gekoppelde lijst van naam/waarde-paren.
Codering
SHA1.c
hmacsha1.c
- Gebruikt om een hash van het OAuth-verzoek te maken en vervolgens coderen met het geheim van de consument en Access Token Secret.
- Ik kan geen krediet nemen voor deze modules; ze komen grotendeels ongewijzigd uit de AVR Crypto Library (http://www.das-labor.org/wiki/Crypto-avr-lib).
base64.c
- Base64 coderen en decoderen.
Stuurprogramma 's
easybutton.c
- Stuurprogramma's voor de gewijzigde Staples Easy Button.
nokia5110.c
- Nokia 5100 grafisch LCD stuurprogramma (SPI).
wiznet5100.c
- WIZnet W5110 netwerk Module stuurprogramma (SPI).
Protocollen
Vervoer
UDP.c
TCP.c
- De WIZnet module ervoor zorgt dat deze twee transportprotocollen laag dus technisch gezien deze vallen ook onder de stuurprogramma-modules, maar ze zijn gescheiden uit voor de duidelijkheid.
Toepassing
http.c
formdata.c
- HTTP client-methoden voor het maken van GET en POST-aanvragen naar een webserver.
- HTTP server-methoden voor het accepteren van binnenkomende oproepen voor GET en POST.
DHCP.c
- Krijg een IP-adres, het subnetmasker, de gateway en de DNS server IP van de DHCP-server van het netwerk.
DNS.c
- Een bepaalde URL omzetten in een corresponderend IP-adres.
SNTP.c
- OAuth vraagt een nauwkeurige timestamp; in deze module wordt de huidige tijd aanvraagt in een Simple Network Time Protocol-server.
Webserver
webserver.c
- Een listener voor HTTP GET en POST vraagt.
- Zorgt voor het instellen van de OAuth consument sleutel, Consumer Secret, Access Token en Access Token Secret.
Twitter
Twitter.c
- Uitvoering van de Twitter API (momenteel alleen statusupdate wordt gebruikt).
- De meeste van het zware werk wordt afgehandeld door de OAuth-module.
OAuth.c
- De kern-module van de Twitter-kader.
- Een unieke id voor de aanvraag (nonce) wordt gegenereerd.
- Het genereren van de tijdstempel voor de aanvraag.
- De basis voor de aanvraag OAuth handtekening te genereren.
- Berekent een hash van de handtekening base (SHA1).
- Meld u de hash met behulp van de consument Secret en Access Token Secret (HMAC-SHA1).
- Verzenden de ondertekende aanvraag naar de webserver (HTTP GET of POST).