WIP on sense_morse
changement d'usage des directions : - haut = point - bas = trait - gauche = corriger - droite = valider / espace
This commit is contained in:
@ -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:
|
||||
|
Reference in New Issue
Block a user