Main Page
Namespaces
Namespace List
Namespace Members
All
Variables
Classes
Class List
Class Hierarchy
Class Members
All
_
c
d
i
k
l
n
p
r
s
Functions
_
c
d
i
l
p
r
s
Variables
_
c
d
k
n
r
s
Files
File List
src
ntrip_client
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
21
self.
rtcm_parser
=
RTCMParser
(
22
logerr=logerr,
23
logwarn=logwarn,
24
loginfo=loginfo,
25
logdebug=logdebug
26
)
27
self.
nmea_parser
=
NMEAParser
(
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
39
self.
reconnect_attempt_max
= self.
DEFAULT_RECONNECT_ATTEMPT_MAX
40
self.
reconnect_attempt_wait_seconds
= self.
DEFAULT_RECONNECT_ATEMPT_WAIT_SECONDS
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
)
57
elif
self.
_reconnect_attempt_count
>= self.
reconnect_attempt_max
:
58
self.
_reconnect_attempt_count
= 0
59
raise
Exception(
"Reconnect was attempted {} times, but never succeeded"
.format(self.
_reconnect_attempt_count
))
60
elif
connect_success:
61
self.
_reconnect_attempt_count
= 0
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