#!/usr/bin/env python3
#
# Script to emulate an instrument sending UDP packets to RIC.
#
# If you would like to test the complete path from the aircraft, but the
# instrument is unavailable, use this script.
#
# Change the ip and ports and message ID (they need to match what is in the
# <inst>.ini file). Change the content of the message to whatever is useful
# to you.
# Then run it to write a message to the specified port, which should be sent
# via ric_switch to the proxy on the ground.
#
# This script can also be a reference for instrument code in Python.
import socket
import time
def main():
udp_id = "INSTID" # Instrument ID
# To send from the aircraft to the ground
udp_send_port = 32106 # Get these ports from
udp_read_port = 32107 # http://wiki.eol.ucar.edu/sew/Aircraft/UDP-Data.
udp_ip = "192.168.84.2" # The IP address of the aircraft server
# To send from the ground to the aircraft
udp_send_port = 32107 # Note these are the reverse of above
udp_read_port = 32106
udp_ip = "127.0.0.1"
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
sock.bind(("0.0.0.0", udp_read_port))
while(1):
buffer = "%s,%s,39.2348,-105.2398,1506.5,1506.4,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0 .0,25.34\r\n" % (udp_id, time.strftime("%Y%m%dT%H%M%S",time.gmtime()))
print(buffer)
if sock:
bytes = sock.sendto(buffer.encode('utf-8'), (udp_ip, udp_send_port))
#print(bytes)
time.sleep(1)
if __name__ == "__main__":
main()