# -*- coding: utf-8 -*- """ Created on Tue Jul 7 20:18:33 2026 @author: df8lh """ # -*- coding: utf-8 -*- """ E1800 / PIO1200 Steuerung – Teensy Version Komplettes CMD/READ Python Programm Mit Rücklesen von Gerät, Gruppe und Einstellnummer """ # Gespeichert unter E1800 Python Ein und Auslesen Code 14 import serial import time # Serielle Verbindung ser = serial.Serial("COM4", 115200, timeout=1) time.sleep(2) def send(cmd): ser.write((cmd + "\n").encode()) ser.flush() time.sleep(0.1) antwort = ser.readline().decode().strip() return antwort if antwort else "(keine Antwort)" print("E1800 Steuerung – CMD/READ Version (Teensy)") print("--------------------------------------------------------") print("Befehle:") print("ein / aus") print("freq 1234567") print("filter 1-6") print("mod A1A / F1B / A3E / USB / OSB / F3E ...") print("agc squelch,automatik,hand") print("regelzeit kurz,normal") print("frequenzscann ...") print("empfängerwahl") print("ant 1 2 div") print("abstimmbreite 1 2") print("tty ein aus nor inv") print("schwelle stopp nach oben nach unten") print("zeichenlage nor inv") print("empfängertest") print("urladen") print("suchlauf") print("clr") print("") print("READ (liefert Gerät/Gruppe/Nummer zurück)") print("ende") print("--------------------------------------------------------\n") while True: eingabe = input("Eingabe: ").strip() # EIN if eingabe == "ein": print(send("CMD 31 16 3")) # AUS elif eingabe == "aus": print(send("CMD 31 16 1")) # FREQUENZ elif eingabe.startswith("freq "): teile = eingabe.split() f = teile[1].zfill(7) print("Frequenz:", f) dek = 7 for z in f: print(send(f"CMD 31 {dek} {z}")) dek -= 1 # FILTER elif eingabe.startswith("filter"): mapping = { "filter 1": "CMD 31 17 0", "filter 2": "CMD 31 17 1", "filter 3": "CMD 31 17 2", "filter 4": "CMD 31 17 3", "filter 5": "CMD 31 17 10", "filter 6": "CMD 31 17 11" } print(send(mapping.get(eingabe, "ERR"))) # MODULATION elif eingabe.startswith("mod"): mapping = { "mod A1A": "CMD 31 18 0", "mod F1B": "CMD 31 18 2", "mod A3E": "CMD 31 18 8", "mod F7B(1)": "CMD 31 18 9", "mod F7B(2)": "CMD 31 18 10", "mod J3E(breit)": "CMD 31 18 11", "mod USB": "CMD 31 18 12", "mod OSB": "CMD 31 18 13", "mod F3E": "CMD 31 18 4" } print(send(mapping.get(eingabe, "ERR"))) # AGC elif eingabe.startswith("agc"): mapping = { "agc squelch": "CMD 31 24 0", "agc automatik": "CMD 31 24 8", "agc hand": "CMD 31 24 12" } print(send(mapping.get(eingabe, "ERR"))) # REGELZEIT elif eingabe.startswith("regelzeit"): mapping = { "regelzeit kurz": "CMD 31 27 0", "regelzeit normal": "CMD 31 27 4" } print(send(mapping.get(eingabe, "ERR"))) # FREQUENZSCANN elif eingabe.startswith("frequenzscann"): mapping = { "frequenzscann stop": "CMD 31 12 0", "frequenzscann 1no": "CMD 31 12 1", "frequenzscann 2no": "CMD 31 12 2", "frequenzscann 3no": "CMD 31 12 3", "frequenzscann 4no": "CMD 31 12 4", "frequenzscann 1nu": "CMD 31 12 9", "frequenzscann 2nu": "CMD 31 12 10", "frequenzscann 3nu": "CMD 31 12 11", "frequenzscann 4nu": "CMD 31 12 12" } print(send(mapping.get(eingabe, "ERR"))) # EMPFÄNGERWAHL elif eingabe.startswith("empfängerwahl"): mapping = { "empfängerwahl einschalten": "CMD 31 13 1", "empfängerwahl sperren": "CMD 31 13 2", "empfängerwahl aus": "CMD 31 13 0" } print(send(mapping.get(eingabe, "ERR"))) # ANT elif eingabe.startswith("ant"): mapping = { "ant 2": "CMD 31 19 0", "ant 1": "CMD 31 19 1", "ant div": "CMD 31 19 3" } print(send(mapping.get(eingabe, "ERR"))) # ABSTIMMBREITE elif eingabe.startswith("abstimmbreite"): mapping = { "abstimmbreite 1": "CMD 31 20 5", "abstimmbreite 2": "CMD 31 20 6", "abstimmbreite 3": "CMD 31 20 7", "abstimmbreite 4": "CMD 31 20 8", "abstimmbreite 5": "CMD 31 20 8" } print(send(mapping.get(eingabe, "ERR"))) # TTY elif eingabe.startswith("tty"): mapping = { "tty ein": "CMD 31 21 1", "tty aus": "CMD 31 21 2", "tty nor": "CMD 31 21 3", "tty inv": "CMD 31 21 8" } print(send(mapping.get(eingabe, "ERR"))) # SCHWELLE elif eingabe.startswith("schwelle"): mapping = { "schwelle stopp": "CMD 31 22 1", "schwelle nach oben": "CMD 31 22 2", "schwelle nach unten": "CMD 31 22 3" } print(send(mapping.get(eingabe, "ERR"))) # ZEICHENLAGE elif eingabe.startswith("zeichenlage"): mapping = { "zeichenlage nor": "CMD 31 29 4", "zeichenlage inv": "CMD 31 29 12" } print(send(mapping.get(eingabe, "ERR"))) # EMPFÄNGERTST elif eingabe == "empfängertest": print(send("CMD 31 40 0")) # URLADEN elif eingabe == "urladen": print(send("CMD 31 41 0")) # SUCHLAUF elif eingabe == "suchlauf": print(send("CMD 31 41 1")) # CLR elif eingabe == "clr": print(send("CMD 31 42 0")) # READ elif eingabe.startswith("read"): teile = eingabe.split() if len(teile) != 4: print("Format: read ") continue befehl = f"READ {teile[1]} {teile[2]} {teile[3]}" antwort = send(befehl) print("Rückmeldung:", antwort) # ENDE elif eingabe == "ende": break else: print("Unbekannter Befehl")