Étape 2: Spécifier et concevoir le nouveau PyMata API et journaliste méthode Interfaces
À l’aide de l’interface publique de Stepper.h comme un guide, nous pouvons commencer à concevoir le moteur pas à pas de PyMata API et interfaces méthode journaliste.
Tout d’abord, nous avons besoin d’une méthode qui demandera à la bibliothèque de série pour instancier un objet de moteur. Nous allons appeler cette méthode, stepper_config, et semblable aux constructeurs de la bibliothèque de moteurs pas à pas, nous permettrons à l’appelant de spécifier le nombre de pas par tour, ainsi que de fournir une liste des broches de la commande du moteur. Cette liste, à la discrétion des appelants, contiendra 2 valeurs de broche pour un moteur à 2 conducteurs ou 4 pour un moteur à 4 conducteurs.
Voici la signature de la méthode de API stepper_config.
Se référant à Stepper.h, la bibliothèque fournit des méthodes distinctes pour régler la vitesse du moteur et de déplacer le moteur un certain nombre d’étapes.
Notre interface de PyMata devront faire la même chose, mais nous allons prendre une décision de conception et de combiner ces deux opérations en une seule méthode.
On nommera cette méthode stepper_step et sa signature API est indiqué ci-dessous.
Il faut aussi fournir une méthode pour permettre à l’utilisateur de demander la version bibliothèque de moteur pas à pas. En raison de la nature asynchrone de Firmata rapport, nous aurons besoin de fournir des méthodes distinctes pour envoyer la demande de la version à l’Arduino et pour récupérer la réponse. Ces deux méthodes font partie de l’API publique.
La méthode de demande a la signature API suivante :
Avant d’aborder la dernière méthode de l’API, nous devons spécifier la signature de la méthode de journaliste qui traite les données envoyées par l’Arduino au client. Ces données sont sous forme de deux octets de 7 bits qui doivent être rassemblés pour former le numéro de version de bibliothèque qui est stocké par le client.
La valeur retournée par l’Arduino dans le message de stepper_version_response va être stockée en interne par PyMata. Pour récupérer la valeur, l’utilisateur appelle la méthode de l’API get_stepper_version. Pour permettre le transfert de données Arduino et les délais de traitement, un paramètre de temps d’attente maximum est spécifié. La valeur par défaut pour ce paramètre est 20 secondes. Si l’Arduino répond avant l’expiration de la durée maximale, la valeur est renvoyée immédiatement et la minuterie est annulée. La signature de cette méthode est :
Une remarque importante
Toutes les méthodes de "commandement" PyMata sont implémentées dans pymata.py. C’est pourquoi lorsque nous le code stepper_config, stepper_step, stepper_request_library_version et get_stepper_version, ils seront tous ajoutés à pymata.py.
Tous les « messages de journaliste » provenant de l’Arduino sont gérées par pymata_command_handler.py. Donc la mise en œuvre de stepper_version_response sera ajouté à ce fichier.