Étape 6: Une note sur la précision de chronométrage
Comme mentionné, la synchronisation entre la transmission d’allumage/extinction des impulsions est très importante. Le script TransmitRF.py utilise la fonction time.sleep() de python pour accumuler les formes d’onde avec des intervalles d’impulsion correcte, mais il est à noter que cette fonction n’est pas tout à fait exacte. La durée pour laquelle elle provoque le script d’attendre avant d’exécuter l’opération suivante peut dépendre de la charge du processeur à cette donnée de l’instant. C’est une autre raison pourquoi TransmitRF.py envoie chaque code plusieurs fois - juste au cas où la fonction time.sleep() n’est pas en mesure de construire correctement une instance donnée du code.
Je n’ai personnellement jamais eu de problèmes avec time.sleep() quand il s’agit d’envoyer les codes. Cependant, je sais que mon time.sleep() a tendance à avoir une erreur d’environ 0.1ms. J’ai déterminé cela en utilisant le script SleepTest.py ci-joint, qui peut être utilisé pour donner une estimation du degré de précision fonction time.sleep() de l’IP est. Pour mon particuliers prises télécommandées, les plus brefs délais, que j’ai dû implémenter était 0.45ms. Comme je le disais, je n’ai pas eu de problèmes avec des sockets non recevable, donc il semble que 0,45 ± 0.1ms est assez bon.
Il existe d’autres méthodes pour veiller à ce que le retard est plus précis ; par exemple, vous pourriez utiliser une puce dédiée de PIC pour générer les codes, mais des choses comme ça déborde le cadre de ce didacticiel.