Previous Up Next

4  Programmation système

Vous allez programmer le micro-contrôleur en micro-python pour analyser les paquets TCP/IP reçus et en générer d’autres.

4.1  Protocole SLIP

L’utilitaire slattach est configuré pour utiliser le protocole SLIP. Ce protocole permet de marquer la fin des paquets avec l’octet de valeur 0xc0. Si ce caractère est présent dans le paquet lui-même, il est remplacé par les deux caractères 0xdb et 0xdc. Si le caractère d’échappement 0xdb est présent dans le paquet il est remplacé par les deux caractères 0xdb et 0xdd.

4.2  Réception d’un paquet UDP

Pour contrôler les LEDs de la plateforme nous allons nous baser sur les données UDP. Commencez par vérifier que le paquet reçu est un paquet UDP vous concernant :

Si le paquet est le paquet UDP attendu, prenez les octets de données et effectuez l’action correspondante sur les LEDs.

Vous pouvez tester votre programme en utilisant la commande Unix ci-dessous :

echo -en "\xff" | nc -q0 -u <adresse IP plateforme> <port UDP>

4.3  Envoi d’un paquet UDP

Sur réception d’un paquet UDP particulier, par exemple sur un second port UDP, votre plateforme doit renvoyer un paquet UDP sur le même port avec comme données l’état du bouton de la plateforme.

Vous devez donc constituer un paquet IPv4 contenant un paquet UDP contenant les données. Ce paquet doit être envoyé sur le port série en utilisant le protocole SLIP. N’oubliez pas de calculer la somme de contrôle IPv4 et éventuellement la somme de contrôle UDP.

Vous pouvez tester votre programme en utilisant la commande Unix ci-dessous :

nc -u -l -p <port UDP> | od -tx1 -w1

Previous Up Next