WIP on sense_morse

changement d'usage des directions :
- haut = point
- bas = trait
- gauche = corriger
- droite = valider / espace
This commit is contained in:
Jérémie DUCASTEL
2020-05-24 13:23:49 +02:00
parent c02d69229f
commit 239d515fcc

View File

@ -34,33 +34,22 @@ class MorseSenseHatKeyer:
def __init__(self): def __init__(self):
self.sense = SenseHat() self.sense = SenseHat()
# self.sense.stick.direction_up = pushed_up self.sense.stick.direction_up = self.pushed_up
# self.sense.stick.direction_down = pushed_down self.sense.stick.direction_down = self.pushed_down
self.sense.stick.direction_left = self.pushed_left self.sense.stick.direction_left = self.pushed_left
self.sense.stick.direction_right = self.pushed_right self.sense.stick.direction_right = self.pushed_right
self.sense.stick.direction_any = self.refresh self.sense.stick.direction_any = self.refresh
self.message_ascii = '' self.message_ascii = ''
self.current_morse_char = '' self.current_morse_char = ''
self.sense.show_message("morse ready")
def pushed_left(self, event): def pushed_left(self, event):
if event.action != ACTION_RELEASED: """ correction """
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: if event.action != ACTION_RELEASED:
self.current_morse_char = '' 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 # selon le cas : validation de la lettre, du mot etc
if event.action != ACTION_RELEASED: if event.action != ACTION_RELEASED:
if self.current_morse_char == '': # pas de lettre en cours, validation du mot, et affichage 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.message_ascii += morse_talk.decode(self.current_morse_char)
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): def show_dot(self, duration=0.1):
self.sense.clear() self.sense.clear()
for x in range(3, 5): for x in range(3, 5):
@ -92,10 +96,28 @@ class MorseSenseHatKeyer:
self.sense.clear() self.sense.clear()
self.sense.show_letter(char) 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__": if __name__ == "__main__":
try: try:
keyer = MorseSenseHatKeyer() keyer = MorseSenseHatKeyer()
keyer.sense.show_message("morse://")
# waiting for jostick events and directing them to keyer # waiting for jostick events and directing them to keyer
pause() pause()
except (KeyboardInterrupt, SystemExit) as err: except (KeyboardInterrupt, SystemExit) as err: