Coverage for aisdb/receiver.py: 75%
4 statements
« prev ^ index » next coverage.py v7.3.1, created at 2023-09-30 04:13 +0000
« prev ^ index » next coverage.py v7.3.1, created at 2023-09-30 04:13 +0000
1import os
2from aisdb.aisdb import receiver as _receiver
5def start_receiver(sqlite_dbpath=os.path.abspath("./ais_rx.db"),
6 postgres_connection_string=None,
7 connect_addr="aisdb.meridian.cs.dal.ca:9920",
8 tcp_listen_addr=None,
9 udp_listen_addr=None,
10 multicast_addr=None,
11 multicast_rebroadcast=None,
12 tcp_output_addr=None,
13 udp_output_addr=None,
14 stdout=False):
15 '''
16 Receive raw AIS data from an upstream UDP data source, parse the data into
17 JSON format, and create a websocket listener to send parsed results downstream.
18 If dbpath is given, parsed data will be stored in an SQLite database.
21 args:
22 sqlite_dbpath (Option<str>)
23 If given, raw messages will be parsed and stored in an SQLite database at this location
24 postgres_connection_string (Option<String>)
25 Postgres database connection string
26 connect_addr (Option<str>)
27 Optionally forward upstream TCP/TLS host to udp_listen_addr
28 tcp_listen_addr (str)
29 if not None, a thread will be spawned to forward TCP connections to
30 incoming UDP port ``udp_listen_addr``
31 udp_listen_addr (str)
32 UDP port to listen for incoming AIS data streams e.g. "0.0.0.0:9921" or "[::]:9921"
33 multicast_addr (str)
34 Raw UDP messages will be parsed and then routed to TCP socket listeners via this channel.
35 multicast_rebroadcast (Option<str>)
36 Optionally pass a UDP rebroadcast address where raw data will be filtered
37 and rebroadcasted to this channel for e.g. forwarding to downstream
38 networks
39 tcp_output_addr (str)
40 TCP port to listen for websocket clients to send parsed data in JSON format
41 stdout (bool)
42 If True, raw input will be copied to stdout
43 '''
45 _receiver(sqlite_dbpath,
46 postgres_connection_string,
47 connect_addr,
48 tcp_listen_addr,
49 udp_listen_addr,
50 multicast_addr,
51 multicast_rebroadcast,
52 tcp_output_addr,
53 udp_output_addr,
54 dynamic_msg_bufsize=128,
55 static_msg_bufsize=64,
56 tee=stdout)