Source code for aisdb.receiver

import os
from aisdb.aisdb import receiver as _receiver


[docs] def start_receiver(sqlite_dbpath=os.path.abspath("./ais_rx.db"), postgres_connection_string=None, connect_addr="aisdb.meridian.cs.dal.ca:9920", tcp_listen_addr=None, udp_listen_addr=None, multicast_addr=None, multicast_rebroadcast=None, tcp_output_addr=None, udp_output_addr=None, stdout=False): ''' Receive raw AIS data from an upstream UDP data source, parse the data into JSON format, and create a websocket listener to send parsed results downstream. If dbpath is given, parsed data will be stored in an SQLite database. args: sqlite_dbpath (Option<str>) If given, raw messages will be parsed and stored in an SQLite database at this location postgres_connection_string (Option<String>) Postgres database connection string connect_addr (Option<str>) Optionally forward upstream TCP/TLS host to udp_listen_addr tcp_listen_addr (str) if not None, a thread will be spawned to forward TCP connections to incoming UDP port ``udp_listen_addr`` udp_listen_addr (str) UDP port to listen for incoming AIS data streams e.g. "0.0.0.0:9921" or "[::]:9921" multicast_addr (str) Raw UDP messages will be parsed and then routed to TCP socket listeners via this channel. multicast_rebroadcast (Option<str>) Optionally pass a UDP rebroadcast address where raw data will be filtered and rebroadcasted to this channel for e.g. forwarding to downstream networks tcp_output_addr (str) TCP port to listen for websocket clients to send parsed data in JSON format stdout (bool) If True, raw input will be copied to stdout ''' _receiver(sqlite_dbpath, postgres_connection_string, connect_addr, tcp_listen_addr, udp_listen_addr, multicast_addr, multicast_rebroadcast, tcp_output_addr, udp_output_addr, dynamic_msg_bufsize=128, static_msg_bufsize=64, tee=stdout)