10
10
import logging
11
11
from logging import NullHandler
12
12
from Hologram .Event import Event
13
- from Hologram .Network import NetworkManager
13
+ from Hologram .Network import Network
14
+ from Hologram .Exceptions import NetworkError
14
15
from Hologram .Authentication import *
15
16
16
17
__version__ = '0.9.0'
@@ -21,7 +22,7 @@ def __repr__(self):
21
22
return type (self ).__name__
22
23
23
24
def __init__ (self , credentials , send_host = '' , send_port = 0 ,
24
- receive_host = '' , receive_port = 0 , network = '' ):
25
+ receive_host = '' , receive_port = 0 ):
25
26
26
27
# Logging setup.
27
28
self .logger = logging .getLogger (__name__ )
@@ -33,25 +34,30 @@ def __init__(self, credentials, send_host = '', send_port = 0,
33
34
self .__initialize_host_and_port (send_host , send_port ,
34
35
receive_host , receive_port )
35
36
36
- self .initializeNetwork (network )
37
+ self .initializeNetwork ()
37
38
38
39
def __initialize_host_and_port (self , send_host , send_port , receive_host , receive_port ):
39
40
self .send_host = send_host
40
41
self .send_port = send_port
41
42
self .receive_host = receive_host
42
43
self .receive_port = receive_port
43
44
44
- def initializeNetwork (self , network ):
45
+ def initializeNetwork (self ):
45
46
46
47
self .event = Event ()
47
48
self .__message_buffer = []
48
49
49
- # Network Configuration
50
- self ._networkManager = NetworkManager .NetworkManager (self .event , network )
50
+ self ._network = Network (self .event )
51
+
52
+ try :
53
+ self ._network .autodetect_modem ()
54
+ except NetworkError as e :
55
+ self .logger .info ("No modem found. Loading drivers and retrying" )
56
+ self ._network .load_modem_drivers ()
57
+ self ._network .autodetect_modem ()
51
58
52
59
# This registers the message buffering feature based on network availability.
53
- self .event .subscribe ('network.connected' , self .__clear_payload_buffer )
54
- self .event .subscribe ('network.disconnected' , self ._networkManager .networkDisconnected )
60
+ self .event .subscribe ('cellular.connected' , self .__clear_payload_buffer )
55
61
56
62
# EFFECTS: Adds the given payload to the buffer
57
63
def addPayloadToBuffer (self , payload ):
@@ -60,7 +66,6 @@ def addPayloadToBuffer(self, payload):
60
66
# EFFECTS: Tells the network manager that it is connected and clears all buffered
61
67
# messages by sending them to the cloud.
62
68
def __clear_payload_buffer (self ):
63
- self ._networkManager .networkConnected ()
64
69
for payload in self .__message_buffer :
65
70
66
71
recv = self .sendMessage (payload )
@@ -138,11 +143,19 @@ def event(self):
138
143
def event (self , event ):
139
144
self ._event = event
140
145
141
- @property
142
- def network_type (self ):
143
- return repr (self ._networkManager )
144
-
145
- # Returns the network instance itself.
146
146
@property
147
147
def network (self ):
148
- return self ._networkManager .network
148
+ return self ._network
149
+
150
+ @network .setter
151
+ def network (self , network , modem = None ):
152
+ self .network = network
153
+
154
+ if modem is not None :
155
+ self ._network .modem = modem
156
+ try :
157
+ self ._network .autodetect_modem ()
158
+ except NetworkError as e :
159
+ self .logger .info ("No modem found. Loading drivers and retrying" )
160
+ self ._network .load_modem_drivers ()
161
+ self ._network .autodetect_modem ()
0 commit comments