Skip to content

Commit

Permalink
Merge pull request #12 from SamuelDudley/console_url
Browse files Browse the repository at this point in the history
Console url
  • Loading branch information
SamuelDudley authored Feb 20, 2017
2 parents 1cc1476 + 1c36fcd commit 88a7bbd
Showing 1 changed file with 20 additions and 2 deletions.
22 changes: 20 additions & 2 deletions __init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
from twisted.python import log
from twisted.internet import reactor

import webbrowser # open url's in browser window

class ServerProtocol(WebSocketServerProtocol):

def onConnect(self, request):
Expand Down Expand Up @@ -61,6 +63,7 @@ def __init__(self, mpstate):

self.cesium_settings = mp_settings.MPSettings(
[ ('localwebserver', bool, True),
('openbrowser', bool, True),
('debug', bool, False)])

self.aircraft = {'lat':None, 'lon':None, 'alt_wgs84':None,
Expand All @@ -75,6 +78,10 @@ def __init__(self, mpstate):
self.run_web_server()
self.run_socket_server()

if self.cesium_settings.openbrowser:
self.open_display_in_browser()


def run_socket_server(self):
# log.startLogging(sys.stdout)
self.factory = WebSocketServerFactory(u"ws://0.0.0.0:9000")
Expand All @@ -101,13 +108,24 @@ def run_web_server(self):
self.web_server_thread = threading.Thread(target=cesium_web_server.start_server, kwargs={'debug':self.cesium_settings.debug})
self.web_server_thread.daemon = True
self.web_server_thread.start()

self.mpstate.console.writeln('MAVCesium display loaded at http://127.0.0.1:5000/', fg='white', bg='blue')

def stop_web_server(self):
if self.web_server_thread is not None:
urllib2.urlopen('http://127.0.0.1:5000/exit') # Kill the web server
while self.web_server_thread.isAlive():
time.sleep(0.01) #TODO: handle this better...


def open_display_in_browser(self):
if self.web_server_thread.isAlive():
url = 'http://127.0.0.1:5000/'
try:
browser_controller = webbrowser.get('google-chrome')
browser_controller.open_new_tab(url)
except:
webbrowser.open_new_tab(url)


def send_data(self, data, target = None):
'''push json data to the browser'''
payload = json.dumps(data).encode('utf8')
Expand Down

0 comments on commit 88a7bbd

Please sign in to comment.