Paso 4: Flujo de trabajo y módulos de código
El archivo binario está parado actualmente en poco menos de 35K de tamaño. El código no está optimizado en la actualidad por lo que debe ser posible obtener el binario bajo 32K con un poco de trabajo; por supuesto depende de la plataforma y del compilador.
Lo siguiente da una descripción de la fuente de los módulos de código para el proyecto. Las limitaciones de tiempo significan que el código no es comentado así como generalmente me gustaría pero esperemos que con la documentación en este instructable los módulos deben ser bastante fáciles de seguir.
Común
Dictionary.c
- una clase de utilidad auxiliar que controla una lista enlazada ordenada de pares nombre/valor.
Cifrado de
SHA1.c
HMACSHA1.c
- Utiliza para crear un hash de la solicitud de OAuth y luego encriptarlos con el consumidor y acceso Token secreto.
- Yo no puedo tomar el crédito para estos módulos; proceden en gran parte inalteradas de la AVR Crypto Library (http://www.das-labor.org/wiki/Crypto-avr-lib).
Base64.c
- Base64 codificar y decodificar.
Controladores
easybutton.c
- Controlador para el botón fácil modificado de grapas.
nokia5110.c
- Controlador de LCD gráfico de Nokia 5100 (SPI).
wiznet5100.c
- Controlador del módulo de red de W5110 de WIZnet (SPI).
Protocolos de
Transporte
UDP.c
TCP.c
- El módulo de WIZnet se encarga de estos protocolos de capa de dos transporte por lo que técnicamente estos también caen bajo los módulos de controlador pero han sido separados para mayor claridad.
Aplicación
http.c
formData.c
- Métodos de cliente HTTP para realizar peticiones GET y POST a un servidor web.
- Métodos de servidor HTTP para aceptar llamadas entrantes de GET y POST.
DHCP.c
- Obtener una dirección IP, máscara de subred, gateway y DNS server IP desde el servidor DHCP de la red.
DNS.c
- Resolver una determinada URL a una dirección IP correspondiente.
SNTP.c
- OAuth exige una fecha y hora exacta; Este módulo pide la hora desde un servidor de protocolo Simple de tiempo de red.
Servidor Web
WebServer.c
- Pide a un agente de escucha para HTTP GET y POST.
- Permite establecer el OAuth consumidores clave, consumidores, el Token de acceso y acceso Token secreto.
Twitter
Twitter.c
- Implementación de la API de Twitter (actualización de estado en la actualidad sólo se utiliza).
- La mayor parte del trabajo pesado es manejada por el módulo OAuth.
OAuth.c
- El módulo de la base del marco de Twitter.
- Generar un identificador único para la solicitud (nonce).
- Generar la fecha y hora de la solicitud.
- Generar la firma para la petición de OAuth.
- Calcular un hash de la base de firma (SHA1).
- Firmar el hash con el consumidor y acceso Token secreto (HMAC-SHA1).
- Enviar la solicitud al servidor web (HTTP GET o POST).