Étape 4: Flux de travail et les Modules de Code
Le fichier binaire s’élève actuellement à un peu moins de 35K en taille. Le code n’est pas actuellement optimisé, il devrait être possible d’obtenir le binaire sous 32K avec un peu de travail ; bien sûr cela dépend de la plate-forme et le compilateur.
Ce qui suit donne un aperçu de la source des modules de code pour le projet. Contraintes de temps signifient que le code n’est pas commenté ainsi que je le tiens normalement, mais j’espère que tous les documents dans ce instructable les modules devraient être assez faciles à suivre.
Commune
dictionary.c
- une classe d’assistance qui contrôle une liste chaînée triée de paires nom/valeur.
Cryptage
SHA1.c
HMACSHA1.c
- Utilisé pour créer un hachage de la requête OAuth et de le chiffrer puis avec le Secret de la consommation et les accès jeton Secret.
- Je ne peux pas prendre le crédit pour ces modules ; elles proviennent en grande partie inchangées de l’AVR Crypto Library (http://www.das-labor.org/wiki/Crypto-avr-lib).
base64.c
- Base64 encoder et décoder.
Pilotes
easybutton.c
- Pilote pour la mis à jour le Staples Easy Button.
nokia5110.c
- Pilote Nokia 5100 LCD graphique (SPI).
wiznet5100.c
- Pilote du Module de réseau pour le W5110 WIZnet (SPI).
Protocoles
Transport
UDP.c
TCP.c
- Le module WIZnet prend soin de ces protocoles de couche deux transport donc techniquement elles relèvent également les modules des pilotes, mais ils ont été séparés pour plus de clarté.
Application
http.c
FormData.c
- Méthodes HTTP client pour faire des requêtes GET et POST vers un serveur web.
- Méthodes HTTP server pour accepter les appels entrants de GET et POST.
DHCP.c
- Obtenir une adresse IP et masque de sous-réseau, passerelle IP du serveur DNS du serveur DHCP réseau.
DNS.c
- Résoudre une URL donnée à une adresse IP correspondante.
SNTP.c
- OAuth exige un horodatage précis ; ce module demande à l’heure actuelle d’un serveur Simple Network Time Protocol.
Serveur Web
webserver.c
- Demande à un écouteur HTTP GET et POST.
- Permet de fixation OAuth Consumer Key, Consumer Secret, jeton d’accès et accès jeton Secret.
Twitter
Twitter.c
- Implémentation de l’API Twitter (actuellement uniquement mise à jour de statut est utilisé).
- La plupart du gros du travail est gérée par le module OAuth.
OAuth.c
- Le module de base du cadre de Twitter.
- Générer un identificateur unique pour la demande (valeur unique).
- Générer l’horodatage de la demande.
- Générer la signature de la requête OAuth.
- Calculer un hash de la base de signature (SHA1).
- Signer le hachage à l’aide de la Consumer Secret et jeton accès Secret (HMAC-SHA1).
- Envoyer la demande au serveur web (HTTP GET ou POST).