[Structure] Conseils pour l'implementation d'un protocole sur RS232 ?
Salut,
Je dois implementer, sous windows XP, un protocole de securite a partir des specifications fournies par le constructeur. Mon programme se limite a la communication avec un validateur d'acces (interface supportant scanners retiens, scanners d'empreintes, ...)
La communication se fait par liaison serie RS232 mais je devrais apres la porter sur reseau Ethernet (pour controler plusieurs validateurs d'acces).
Suite a la lecture des 700 pages de specifications et aux tests realises, je peux dire que le protocole n'a plus de secrets pour moi :
Les paquets sont de tailles variables mais l'en-tete contient la longueur du paquet. Bien qu'il semble y avoir un type de paquets qui n'a pas d'en-tete mais dont la taille est fixe. :?
Les paquets de donnees sont relativement petits. (fixons le relatif a 100 octets)
La connexion est un "3 ways handshake" avec echange de paquets de synchronisation et d'acknowledgement.
Avant de me lancer dans l'implementation, j'aimerais savoir par ou commencer et comment structurer le programme :
:fleche: Dois-je utiliser une liaison serie en mode synchrone/asynchrone ? Avec ou sans thread de reception ?
:fleche: La manipulation des paquets via basic_string<unsigned char> est-elle viable ?
:fleche: Cette structure vous semble-t-elle correcte :
- Une classe RS232 responsable des fonctions de lecture/ecriture sur le peripherique serie. (+/- couche physique)
- Une classe STREAM responsable de la recuperation de l'integralite d'un paquet. (+/- couche liaison de donnees)
- Une classe PROTOCOL responsable de l'exctraction/insertion des informations a recevoir/envoyer. (+/- couche application)
Merci de me faire part de vos conseils.
protocol -> stream -> RS232
J'aime bien un découpage en 3 couches:
application (7) -> session (4) -> liaison de données (2)
Lorsqu'on va passer de RS232 à Ethernet, ce sera pour supporter plusieurs connexions.
- Que peut-on faire côté "design" pour limiter les changements à la couche "liaison de données"?
- Et autoriser la gestion de plusieurs sessions à la fois?
Le fantôme threads ou pas traine toujours dans le décors ;-(
- W