kopia lustrzana https://github.com/projecthorus/horus-gui
				
				
				
			Move horusudp to horusdemodlib repo
							rodzic
							
								
									b36856c2a1
								
							
						
					
					
						commit
						57a0cb5400
					
				|  | @ -1 +1 @@ | |||
| __version__ = "0.1.4" | ||||
| __version__ = "0.1.5" | ||||
|  |  | |||
|  | @ -35,6 +35,7 @@ from .horusudp import send_payload_summary | |||
| from horusdemodlib.demod import HorusLib, Mode | ||||
| from horusdemodlib.decoder import decode_packet, parse_ukhas_string | ||||
| from horusdemodlib.payloads import * | ||||
| from horusdemodlib.horusudp import send_payload_summary | ||||
| from . import __version__ | ||||
| 
 | ||||
| # Setup Logging | ||||
|  |  | |||
|  | @ -1,92 +0,0 @@ | |||
| #!/usr/bin/env python | ||||
| # | ||||
| #   Horus Telemetry GUI - Horus UDP | ||||
| # | ||||
| #   Mark Jessop <vk5qi@rfhead.net> | ||||
| # | ||||
| import datetime | ||||
| import json | ||||
| import logging | ||||
| import socket | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| def send_payload_summary(telemetry, port=55672, comment="Horus GUI"): | ||||
|     """ Send a payload summary message into the network via UDP broadcast. | ||||
| 
 | ||||
|     Args: | ||||
|     telemetry (dict): Telemetry dictionary to send. | ||||
|     port (int): UDP port to send to. | ||||
| 
 | ||||
|     """ | ||||
| 
 | ||||
|     try: | ||||
|         # Do a few checks before sending. | ||||
|         if telemetry["latitude"] == 0.0 and telemetry["longitude"] == 0.0: | ||||
|             logging.error("Horus UDP - Zero Latitude/Longitude, not sending.") | ||||
|             return | ||||
| 
 | ||||
|         packet = { | ||||
|             "type": "PAYLOAD_SUMMARY", | ||||
|             "callsign": telemetry["callsign"], | ||||
|             "latitude": telemetry["latitude"], | ||||
|             "longitude": telemetry["longitude"], | ||||
|             "altitude": telemetry["altitude"], | ||||
|             "speed": -1, | ||||
|             "heading": -1, | ||||
|             "time": telemetry["time"], | ||||
|             "comment": comment, | ||||
|             "temp": -1, | ||||
|             "sats": -1, | ||||
|             "batt_voltage": -1, | ||||
|         } | ||||
| 
 | ||||
|         if 'snr' in telemetry: | ||||
|             packet['snr'] = telemetry['snr'] | ||||
| 
 | ||||
|         # Set up our UDP socket | ||||
|         _s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) | ||||
|         _s.settimeout(1) | ||||
|         # Set up socket for broadcast, and allow re-use of the address | ||||
|         _s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) | ||||
|         _s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) | ||||
|         # Under OSX we also need to set SO_REUSEPORT to 1 | ||||
|         try: | ||||
|             _s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1) | ||||
|         except: | ||||
|             pass | ||||
| 
 | ||||
|         try: | ||||
|             _s.sendto(json.dumps(packet).encode("ascii"), ("<broadcast>", port)) | ||||
|         # Catch any socket errors, that may occur when attempting to send to a broadcast address | ||||
|         # when there is no network connected. In this case, re-try and send to localhost instead. | ||||
|         except socket.error as e: | ||||
|             logging.debug( | ||||
|                 "Horus UDP - Send to broadcast address failed, sending to localhost instead." | ||||
|             ) | ||||
|             _s.sendto(json.dumps(packet).encode("ascii"), ("127.0.0.1", port)) | ||||
| 
 | ||||
|         _s.close() | ||||
| 
 | ||||
|     except Exception as e: | ||||
|         logging.error("Horus UDP - Error sending Payload Summary: %s" % str(e)) | ||||
| 
 | ||||
| 
 | ||||
| if __name__ == "__main__": | ||||
|     # Test script for the above functions | ||||
|     from horusdemodlib.decoder import parse_ukhas_string | ||||
|     from horusdemodlib.checksums import ukhas_crc | ||||
|     # Setup Logging | ||||
|     logging.basicConfig( | ||||
|         format="%(asctime)s %(levelname)s: %(message)s", level=logging.INFO | ||||
|     ) | ||||
| 
 | ||||
|     sentence = "$$TESTING,1,01:02:03,-34.0,138.0,1000" | ||||
|     crc = ukhas_crc(sentence[2:].encode("ascii")) | ||||
|     sentence = sentence + "*" + crc | ||||
|     print("Sentence: " + sentence) | ||||
| 
 | ||||
|     _decoded = parse_ukhas_string(sentence) | ||||
|     print(_decoded) | ||||
| 
 | ||||
|     send_payload_summary(_decoded) | ||||
|  | @ -1,6 +1,6 @@ | |||
| [tool.poetry] | ||||
| name = "horusgui" | ||||
| version = "0.1.4" | ||||
| version = "0.1.5" | ||||
| description = "" | ||||
| authors = ["Mark Jessop <vk5qi@rfhead.net>"] | ||||
| 
 | ||||
|  |  | |||
		Ładowanie…
	
		Reference in New Issue
	
	 Mark Jessop
						Mark Jessop