Disons que l’on veut rajouter une fonctionnalité set_display_timeout() à un KPZ101. Cette fonction pourrait prendre en paramètre un entier indiquant le nombre de seconde avant que l’écran du KPZ s’éteigne. Mais il est plus judicieux de configurer ce comportement dans le fichier de configuration yaml associé.

Ajoutons donc: disp_timeout: 100 dans le fichier kpz101.yaml

Pour faire comprendre à notre programme qu’un nouveau champ est disponible, il faut rajouter dans la classe KPZ101Config() disp_timeout: int = 50.

class KPZ101Config(BaseModel):
	# ...
 
	# name ----- type - default
	disp_timeout: int = 50

Tip

Il est important d’indiquer le type pour que mon programme puisse automatiquement convertir les valeurs du fichier yaml en des valeurs manipulable en python.

Pour plus d’info sur ce que l’on vient de faire, voir pydantic

Il faut maintenant implémenter notre fonction set_disp_timeout():

class KPZ101():
	# ...
 
	def set_disp_timeout(self) -> None:
		#              func  param1                 param2
		self.dev.write(0x00, self.conf.disp_timeout, 0x00)
 
		# Les valeurs ne sont ici que représentative !

Pour savoir quelle valeur donner à func param1 et param2, il faut aller voir la documentation APT. Si des données sont à transmettre en plus, il faut utiliser la fonction write_with_data de la classe Device

Si vous avez été jusque là, que vous avez implémenté votre fonction, et que vous pensez qu’elle peut être utile à d’autres personnes n’hésitez pas à faire une Pull-request de vos changements.