Dans le cadre d'un projet modulable, je réalise certains plugins. Certains de ces plugins utilisent des périphériques série et il n'est pas toujours pratique de travailler directement avec le périphérique : l'incapacité de rejouer systématiquement certains jeux de données, la non-possession du matériel, etc. Afin de répondre à cette problématique, j'ai créé une librairie python qui permet de simuler un périphérique série.
1. Le cahier des charges
Voici les besoins que j'avais :
- la librairie doit remplacer la librairie Serial de python. Elle aura les mêmes interfaces et il suffira pour passer de l'une à l'autre de changer la directive d'import ;
- la librairie doit permettre de charger un scénario de mon choix ;
- un scénario doit pouvoir décrire une histoire ;
- un scénario doit pouvoir tourner de manière infinie via une boucle ;
- un scénario doit pouvoir décrire la réponse du périphérique série simulé à des écritures sur le périphérique série ;
- les scénarios doivent pouvoir décrire des données en texte brut ou hexadécimal ;
- les scénarios doivent permettre l'utilisation de délais.
2. Formalisme du fichier décrivant un scénario
J'ai choisi l'utilisation d'un fichier au format json. Ce format est humainement lisible, souple et est très simple à utiliser avec python.
Voici le squelette d'un scénario :
{
"history":...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première