From 239d515fcceb1a3b7702f82d71608761dcbea040 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Je=CC=81re=CC=81mie=20DUCASTEL?= Date: Sun, 24 May 2020 13:23:49 +0200 Subject: [PATCH] WIP on sense_morse changement d'usage des directions : - haut = point - bas = trait - gauche = corriger - droite = valider / espace --- sense_morse.py | 54 +++++++++++++++++++++++++++++++++++--------------- 1 file changed, 38 insertions(+), 16 deletions(-) diff --git a/sense_morse.py b/sense_morse.py index b765d56..7854b90 100644 --- a/sense_morse.py +++ b/sense_morse.py @@ -34,33 +34,22 @@ class MorseSenseHatKeyer: def __init__(self): self.sense = SenseHat() - # self.sense.stick.direction_up = pushed_up - # self.sense.stick.direction_down = pushed_down + self.sense.stick.direction_up = self.pushed_up + self.sense.stick.direction_down = self.pushed_down self.sense.stick.direction_left = self.pushed_left self.sense.stick.direction_right = self.pushed_right self.sense.stick.direction_any = self.refresh self.message_ascii = '' self.current_morse_char = '' - self.sense.show_message("morse ready") def pushed_left(self, event): - if event.action != ACTION_RELEASED: - self.show_dot() - self.current_morse_char += '.' - self.show_char() - - def pushed_right(self, event): - if event.action != ACTION_RELEASED: - self.show_dash() - self.current_morse_char += '-' - self.show_char() - - def pushed_down(self, event): + """ correction """ # correction if event.action != ACTION_RELEASED: self.current_morse_char = '' - def pushed_up(self, event): + def pushed_right(self, event): + """ validation """ # selon le cas : validation de la lettre, du mot etc if event.action != ACTION_RELEASED: if self.current_morse_char == '': # pas de lettre en cours, validation du mot, et affichage @@ -69,6 +58,21 @@ class MorseSenseHatKeyer: self.message_ascii += morse_talk.decode(self.current_morse_char) self.current_morse_char = '' + def pushed_down(self, event): + """ ajout trait """ + if event.action != ACTION_RELEASED: + self.show_dash() + self.current_morse_char += '-' + self.show_char() + + def pushed_up(self, event): + """ ajout point """ + if event.action != ACTION_RELEASED: + self.show_dot() + self.current_morse_char += '.' + self.show_char() + + def show_dot(self, duration=0.1): self.sense.clear() for x in range(3, 5): @@ -92,10 +96,28 @@ class MorseSenseHatKeyer: self.sense.clear() self.sense.show_letter(char) + def add_dot(self): + pass + + def add_dash(self): + pass + + def reset_char(self): + """ annule le caractère courant """ + pass + + def validate_char(self): + """ valide la lettre et ajoute un espace """ + pass + + def show_message(self): + """ affiche le message courant """ + if __name__ == "__main__": try: keyer = MorseSenseHatKeyer() + keyer.sense.show_message("morse://") # waiting for jostick events and directing them to keyer pause() except (KeyboardInterrupt, SystemExit) as err: