Datenübertragung über Netzwerk vorbereitet

This commit is contained in:
Thomas Hooge 2025-07-19 07:44:35 +02:00
parent 658806446e
commit 7f0a0f280b
3 changed files with 34 additions and 0 deletions

8
TODO
View File

@ -14,3 +14,11 @@ Aufgaben- und Planungs- und Ideenliste
Rechtecke mit SNR (Signal/Noise)
- Sea wave recorder (siehe Steamrock)
- Datenübertragung über Ethernet
Achtung: Fast Packets
- SeaSmart
NMEA2000 in NMEA0183 gekapselt
- Yacht Devices ASCII Raw Protokoll
https://www.yachtd.com/downloads/ydnr02.pdf
- Actisense?

View File

@ -19,6 +19,11 @@ interface = can0
enabled = false
port = /dev/ttyV1
[network]
enabled = false
address = 127.0.0.1
port = 10110
[bme280]
enabled = false
port = 1

View File

@ -92,6 +92,7 @@ from gi.repository import GLib, Gtk, Gdk, Rsvg
import cairo
import math
import threading
import socket
import can
import serial
import smbus2
@ -256,6 +257,15 @@ def rxd_gps(devname, devspeed):
print(msg.fields)
ser.close()
def rxd_network(address, port):
# WIP Daten über Netzwerk empfangen
# Wir verwenden UDP. Ein verlorenes Paket tut uns nicht weh.
sock = socket.socket()
sock.connect((address, port))
while not shutdown:
time.sleep(0.5)
sock.close()
def datareader(cfg, history):
"""
Daten zu fest definierten Zeitpunkten lesen
@ -669,6 +679,11 @@ if __name__ == "__main__":
if cfg['gps']:
cfg['gps_port'] = config.get('gps', 'port')
cfg['network'] = config.getboolean('network', 'enabled')
if cfg['network']:
cfg['net_addr'] = config.get('network', 'address')
cfg['net_port'] = config.get('network', 'port')
cfg['bme280'] = config.getboolean('bme280', 'enabled')
if cfg['bme280']:
cfg['bme280_port'] = config.getint('bme280', 'port')
@ -696,6 +711,10 @@ if __name__ == "__main__":
print("GPS enabled (local)")
t_rxd_gps = threading.Thread(target=rxd_gps, args=(cfg['gps_port'],))
t_rxd_gps.start()
if cfg['network']:
print("Networking enabled")
t_rxd_net = threading.Thread(target=rxd_network, args=(cfg['net_port'],cfg['net_addr']))
t_rxd_net.start()
if not cfg['simulation']:
if cfg['bme280']:
t_data = threading.Thread(target=datareader, args=(cfg, history))
@ -712,6 +731,8 @@ if __name__ == "__main__":
t_rxd_0183.join()
if cfg['gps']:
t_rxd_gps.join()
if cfg['net']:
t_rxd_net.join()
if not cfg['simulation'] and cfg['bme280']:
t_data.join()
print("Another fine product of the Sirius Cybernetics Corporation.")