udp_client.py
Go to the documentation of this file.
1 #!/usr/bin/python
2 
3 import argparse
4 import socket
5 import math
6 import json
7 from time import sleep
8 from ipaddress import ip_address
9 
10 parser = argparse.ArgumentParser(description="Send UDP test data.")
11 # For testing multicast, try IPv4 address 239.0.0.1 or IPv6 address ff02::1
12 parser.add_argument("--address", default="127.0.0.1", help="UDP address")
13 parser.add_argument("--port", default=9870, type=int, help="UDP port")
14 args = parser.parse_args()
15 
16 addr = ip_address(args.address)
17 print(f"Opening IPv{addr.version} UDP socket for address {addr} on port {args.port}...")
18 family = socket.AF_INET6 if addr.version == 6 else socket.AF_INET
19 sock = socket.socket(family, socket.SOCK_DGRAM) # UDP
20 time = 0.0
21 
22 while True:
23  sleep(0.05)
24  time += 0.05
25 
26  data = {
27  "timestamp": time,
28  "test_data": {
29  "cos": math.cos(time),
30  "sin": math.sin(time)
31  }
32  }
33  sock.sendto( json.dumps(data).encode(), (args.address, args.port) )
34 
35  test_str = "{ \
36  \"1252\": { \
37  \"timestamp\": { \
38  \"microsecond\": 0 \
39  }, \
40  \"value\": { \
41  \"current\": { \
42  \"ampere\": null \
43  }, \
44  \"voltage\": { \
45  \"volt\": 24.852617263793945 \
46  }\
47  }\
48  } }"
49 
50  sock.sendto( test_str.encode("utf-8"), (args.address, args.port) )
print
void print(std::FILE *f, const text_style &ts, const S &format_str, const Args &... args)
Definition: color.h:497


plotjuggler
Author(s): Davide Faconti
autogenerated on Mon May 26 2025 02:22:38