Datenübertragung über Netzwerk vorbereitet
This commit is contained in:
		
							parent
							
								
									658806446e
								
							
						
					
					
						commit
						7f0a0f280b
					
				
							
								
								
									
										8
									
								
								TODO
								
								
								
								
							
							
						
						
									
										8
									
								
								TODO
								
								
								
								
							|  | @ -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? | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
							
								
								
									
										21
									
								
								obp60v.py
								
								
								
								
							
							
						
						
									
										21
									
								
								obp60v.py
								
								
								
								
							|  | @ -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.") | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue