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) Rechtecke mit SNR (Signal/Noise)
- Sea wave recorder (siehe Steamrock) - 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 enabled = false
port = /dev/ttyV1 port = /dev/ttyV1
[network]
enabled = false
address = 127.0.0.1
port = 10110
[bme280] [bme280]
enabled = false enabled = false
port = 1 port = 1

View File

@ -92,6 +92,7 @@ from gi.repository import GLib, Gtk, Gdk, Rsvg
import cairo import cairo
import math import math
import threading import threading
import socket
import can import can
import serial import serial
import smbus2 import smbus2
@ -256,6 +257,15 @@ def rxd_gps(devname, devspeed):
print(msg.fields) print(msg.fields)
ser.close() 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): def datareader(cfg, history):
""" """
Daten zu fest definierten Zeitpunkten lesen Daten zu fest definierten Zeitpunkten lesen
@ -669,6 +679,11 @@ if __name__ == "__main__":
if cfg['gps']: if cfg['gps']:
cfg['gps_port'] = config.get('gps', 'port') 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') cfg['bme280'] = config.getboolean('bme280', 'enabled')
if cfg['bme280']: if cfg['bme280']:
cfg['bme280_port'] = config.getint('bme280', 'port') cfg['bme280_port'] = config.getint('bme280', 'port')
@ -696,6 +711,10 @@ if __name__ == "__main__":
print("GPS enabled (local)") print("GPS enabled (local)")
t_rxd_gps = threading.Thread(target=rxd_gps, args=(cfg['gps_port'],)) t_rxd_gps = threading.Thread(target=rxd_gps, args=(cfg['gps_port'],))
t_rxd_gps.start() 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 not cfg['simulation']:
if cfg['bme280']: if cfg['bme280']:
t_data = threading.Thread(target=datareader, args=(cfg, history)) t_data = threading.Thread(target=datareader, args=(cfg, history))
@ -712,6 +731,8 @@ if __name__ == "__main__":
t_rxd_0183.join() t_rxd_0183.join()
if cfg['gps']: if cfg['gps']:
t_rxd_gps.join() t_rxd_gps.join()
if cfg['net']:
t_rxd_net.join()
if not cfg['simulation'] and cfg['bme280']: if not cfg['simulation'] and cfg['bme280']:
t_data.join() t_data.join()
print("Another fine product of the Sirius Cybernetics Corporation.") print("Another fine product of the Sirius Cybernetics Corporation.")