import serial, time def send(s,bitzeit,ser): # Leitung auf Null fuer steigende Flanke ser.setRTS(0) time.sleep(bitzeit) # Bytes senden for i in range(len(s)): b = ord(s[i]) # Startbit ser.setRTS(1) time.sleep(bitzeit) # Datenbits for j in range(8): if b >= 128: ser.setRTS(1) else: ser.setRTS(0) b = (b*2)%256 time.sleep(bitzeit) # Stoppbit ser.setRTS(0) time.sleep(bitzeit) def receive(bitzeit,ser): s = '' b = 0 alt = ser.getCTS() neu = ser.getCTS() while b != ord('#'): # '#' ist Ende-Zeichen # auf steigende Flanke warten while alt or (not neu): alt = neu neu = ser.getCTS() time.sleep(0) # Bits empfangen time.sleep(bitzeit*1.5) b = 0 for i in range(8): b = b*2 if ser.getCTS() == 1: b = b+1 time.sleep(bitzeit) # mitten im Stoppbit s = s + chr(b) print(s)