index — ti25-glauchau-code @ 9310e74950cb91ac2b8c3ca6a6fe6c4254689fbc

Meine Lösungen (oder auch nicht) für die Programmieraufgaben in der TI25 an der Staatlichen Studienakademie Glauchau

oop/2026-04-29/morsecode/client.py (view raw)

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
import time
from morsedecode import MorseDecoder

MORSE = {
    "A": ".,-",
    "B": "-,.,.,.",
    "C": "-,.,-,.",
    "D": "-,.,.",
    "E": ".",
    "F": ".,.,-.",
    "G": "-,-,.",
    "H": ".,.,.,.",
    "I": ".,.",
    "J": ".,-,-,-",
    "K": "-,.,-",
    "L": ".,-,.,.",
    "M": "-,-",
    "N": "-,.",
    "O": "-,-,-",
    "P": ".,-,-,.",
    "Q": "-,-,.,-",
    "R": ".,-,.",
    "S": ".,.,.",
    "T": "-",
    "U": ".,.,-",
    "V": ".,.,.,-",
    "W": ".,-,-",
    "X": "-,.,.,-",
    "Y": "-,.,-,-",
    "Z": "-,-,.,.",
    " ": " ",
}

TAPS = {
    ".": "self.tap(1*self.unit)",
    "-": "self.tap(3*self.unit)",
    ",": "time.sleep(1*self.unit)",
    ";": "time.sleep(3*self.unit)",
    " ": "time.sleep(7*self.unit)",
}


class Encoder:
    def __init__(self, unit=0.1):
        self.unit = unit

    def tap(self, seconds):
        d.signal_on()
        time.sleep(seconds)
        d.signal_off()

    def encode(self, string: str):
        encoded = ""
        for char in string:
            encoded += MORSE[char.upper()]
            encoded += ";"  # separates characters

        print(encoded)
        return encoded

    def send(self, string: str):
        encoded = self.encode(string)
        for char in encoded:
            eval(TAPS[char])


d = MorseDecoder(unit=0.1)
e = Encoder(unit=0.1)
e.send(input())
d.flush()