ntrip_base.py
Go to the documentation of this file.
1 import time
2 import logging
3 
4 from .nmea_parser import NMEAParser
5 from .rtcm_parser import RTCMParser
6 
7 class NTRIPBase:
8 
9  # Public constants
10  DEFAULT_RECONNECT_ATTEMPT_MAX = 10
11  DEFAULT_RECONNECT_ATEMPT_WAIT_SECONDS = 5
12 
13  def __init__(self, logerr=logging.error, logwarn=logging.warning, loginfo=logging.info, logdebug=logging.debug):
14  # Bit of a strange pattern here, but save the log functions so we can be agnostic of ROS
15  self._logerr = logerr
16  self._logwarn = logwarn
17  self._loginfo = loginfo
18  self._logdebug = logdebug
19 
20  # Setup some parsers to parse incoming messages
22  logerr=logerr,
23  logwarn=logwarn,
24  loginfo=loginfo,
25  logdebug=logdebug
26  )
28  logerr=logerr,
29  logwarn=logwarn,
30  loginfo=loginfo,
31  logdebug=logdebug
32  )
33 
34  # Setup some state
35  self._shutdown = False
36  self._connected = False
37 
38  # Public reconnect info
41 
42  def connect(self):
43  raise NotImplementedError("Must override connect")
44 
45  def disconnect(self):
46  raise NotImplementedError("Must override disconnect")
47 
48  def reconnect(self):
49  if self._connected:
50  while not self._shutdown:
51  self._reconnect_attempt_count += 1
52  self.disconnect()
53  connect_success = self.connect()
54  if not connect_success and self._reconnect_attempt_count < self.reconnect_attempt_max:
55  self._logerr('Reconnect failed. Retrying in {} seconds'.format(self._port, self._baudrate, self.reconnect_attempt_wait_seconds))
56  time.sleep(self.reconnect_attempt_wait_seconds)
59  raise Exception("Reconnect was attempted {} times, but never succeeded".format(self._reconnect_attempt_count))
60  elif connect_success:
62  break
63  else:
64  self._logdebug('Reconnect called while not connected, ignoring')
65 
66  def send_nmea(self):
67  raise NotImplementedError("Must override send_nmea")
68 
69  def recv_rtcm(self):
70  raise NotImplementedError("Must override recv_rtcm")
71 
72  def shutdown(self):
73  # Set some state, and then disconnect
74  self._shutdown = True
75  self.disconnect()
ntrip_client.ntrip_base.NTRIPBase
Definition: ntrip_base.py:7
ntrip_client.ntrip_base.NTRIPBase.reconnect
def reconnect(self)
Definition: ntrip_base.py:48
ntrip_client.ntrip_base.NTRIPBase.rtcm_parser
rtcm_parser
Definition: ntrip_base.py:21
ntrip_client.ntrip_base.NTRIPBase.DEFAULT_RECONNECT_ATEMPT_WAIT_SECONDS
int DEFAULT_RECONNECT_ATEMPT_WAIT_SECONDS
Definition: ntrip_base.py:11
ntrip_client.rtcm_parser.RTCMParser
Definition: rtcm_parser.py:42
ntrip_client.ntrip_base.NTRIPBase.__init__
def __init__(self, logerr=logging.error, logwarn=logging.warning, loginfo=logging.info, logdebug=logging.debug)
Definition: ntrip_base.py:13
ntrip_client.ntrip_base.NTRIPBase.disconnect
def disconnect(self)
Definition: ntrip_base.py:45
ntrip_client.ntrip_base.NTRIPBase.recv_rtcm
def recv_rtcm(self)
Definition: ntrip_base.py:69
ntrip_client.ntrip_base.NTRIPBase._connected
_connected
Definition: ntrip_base.py:36
ntrip_client.ntrip_base.NTRIPBase.DEFAULT_RECONNECT_ATTEMPT_MAX
int DEFAULT_RECONNECT_ATTEMPT_MAX
Definition: ntrip_base.py:10
ntrip_client.ntrip_base.NTRIPBase._loginfo
_loginfo
Definition: ntrip_base.py:17
ntrip_client.ntrip_base.NTRIPBase._logerr
_logerr
Definition: ntrip_base.py:15
ntrip_client.ntrip_base.NTRIPBase._reconnect_attempt_count
_reconnect_attempt_count
Definition: ntrip_base.py:58
ntrip_client.ntrip_base.NTRIPBase.send_nmea
def send_nmea(self)
Definition: ntrip_base.py:66
ntrip_client.ntrip_base.NTRIPBase._logwarn
_logwarn
Definition: ntrip_base.py:16
ntrip_client.ntrip_base.NTRIPBase.connect
def connect(self)
Definition: ntrip_base.py:42
ntrip_client.ntrip_base.NTRIPBase.reconnect_attempt_max
reconnect_attempt_max
Definition: ntrip_base.py:39
ntrip_client.ntrip_base.NTRIPBase.nmea_parser
nmea_parser
Definition: ntrip_base.py:27
ntrip_client.ntrip_base.NTRIPBase._shutdown
_shutdown
Definition: ntrip_base.py:35
ntrip_client.nmea_parser.NMEAParser
Definition: nmea_parser.py:8
ntrip_client.ntrip_base.NTRIPBase._logdebug
_logdebug
Definition: ntrip_base.py:18
ntrip_client.ntrip_base.NTRIPBase.shutdown
def shutdown(self)
Definition: ntrip_base.py:72
ntrip_client.ntrip_base.NTRIPBase.reconnect_attempt_wait_seconds
reconnect_attempt_wait_seconds
Definition: ntrip_base.py:40


ntrip_client
Author(s): Parker Hannifin Corp
autogenerated on Sat Dec 21 2024 03:32:07