Compare commits

...

4 Commits
main ... dev

Author SHA1 Message Date
Paul 818c4e1ad3 added rfm init error msg 2024-01-29 11:55:11 +01:00
Paul 5e2965d274 readded socat kill 2024-01-09 10:25:14 +01:00
Paul e99a7e2012 moved variables for baudrate and packet_len 2024-01-09 10:21:51 +01:00
Paul 82836a4ea3 readed subprocess import 2024-01-09 10:20:22 +01:00
1 changed files with 11 additions and 5 deletions

16
main.py
View File

@ -1,4 +1,4 @@
import serial, time, threading import serial, time, threading, subprocess
import busio import busio
from digitalio import DigitalInOut, Direction, Pull from digitalio import DigitalInOut, Direction, Pull
@ -9,12 +9,20 @@ import adafruit_rfm9x
CS = DigitalInOut(board.CE1) CS = DigitalInOut(board.CE1)
RESET = DigitalInOut(board.D25) RESET = DigitalInOut(board.D25)
spi = busio.SPI(board.SCK, MOSI=board.MOSI, MISO=board.MISO) spi = busio.SPI(board.SCK, MOSI=board.MOSI, MISO=board.MISO)
try:
rfm = adafruit_rfm69.RFM69(spi, CS, RESET, 868.0)
except RuntimeError as error:
print('RFM69 Error: ', error)
#rfm = adafruit_rfm69.RFM69(spi, CS, RESET, 868.0) #rfm = adafruit_rfm69.RFM69(spi, CS, RESET, 868.0)
rfm = adafruit_rfm9x.RFM9x(spi, CS, RESET, 868.0, baudrate=20000000) #rfm = adafruit_rfm9x.RFM9x(spi, CS, RESET, 868.0, baudrate=20000000)
addr = '/tmp/rfmtty' addr = '/tmp/rfmtty'
addr_client = '/tmp/rfmtty_client' addr_client = '/tmp/rfmtty_client'
baudrate = 115200
packet_len = 251
cmd=['/usr/bin/socat','-d','-d','PTY,link=%s,raw,echo=0' % cmd=['/usr/bin/socat','-d','-d','PTY,link=%s,raw,echo=0' %
addr, 'PTY,link=%s,raw,echo=0' % addr_client] addr, 'PTY,link=%s,raw,echo=0' % addr_client]
socat_proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) socat_proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
@ -46,9 +54,6 @@ def serial_port_writer(ser, rfm):
ser.write(packet) ser.write(packet)
baudrate = 115200
packet_len = 251
reader_thread = threading.Thread(target=serial_port_reader, args=(ser,rfm), daemon=True) reader_thread = threading.Thread(target=serial_port_reader, args=(ser,rfm), daemon=True)
reader_thread.start() reader_thread.start()
writer_thread = threading.Thread(target=serial_port_writer, args=(ser,rfm), daemon=True) writer_thread = threading.Thread(target=serial_port_writer, args=(ser,rfm), daemon=True)
@ -63,6 +68,7 @@ except KeyboardInterrupt:
print("Programm durch Benutzer unterbrochen.") print("Programm durch Benutzer unterbrochen.")
finally: finally:
socat_proc.kill()
ser.close() ser.close()
reader_thread.join() reader_thread.join()
writer_thread.join() writer_thread.join()