Coverage for aisdb/receiver.py: 75%

4 statements  

« 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 

3 

4 

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. 

19 

20 

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 ''' 

44 

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)