Module blueye.sdk.diagnostics
View Source
import json
import urllib
import urllib.error
import urllib.request
import http.client
def get_diagnostic_data(ip, name, port=80, post_data=None, method=None):
data = get_website_json(
"http://%s:%d/diagnostics/%s" % (ip, port, name), post_data, method=method
)
return data
def get_website_json(url, post_data=None, method=None):
retries = 0
while retries < 3:
data_json = get_website(url, post_data, method=method)
if data_json is not None:
break
retries += 1
print("No data, retriying")
if data_json is None:
return None
try:
data = json.loads(data_json)
except json.decoder.JSONDecodeError:
print("Could not decode json")
return None
return data
def get_website(url, post_data=None, method=None, decode_utf8=True):
try:
if method is not None:
url = urllib.request.Request(url, method=method)
if post_data is not None:
post_data = urllib.parse.urlencode(post_data).encode("utf-8")
data = urllib.request.urlopen(url, post_data).read()
else:
data = urllib.request.urlopen(url).read()
if decode_utf8:
data = data.decode("utf-8")
except ConnectionRefusedError:
print("Could not connect to server")
return None
except urllib.error.URLError:
print("Could not connect to server")
return None
except http.client.RemoteDisconnected:
print("RemoteDisconnect")
return None
return data
Functions
get_diagnostic_data
def get_diagnostic_data(
ip,
name,
port=80,
post_data=None,
method=None
)
View Source
def get_diagnostic_data(ip, name, port=80, post_data=None, method=None):
data = get_website_json(
"http://%s:%d/diagnostics/%s" % (ip, port, name), post_data, method=method
)
return data
get_website
def get_website(
url,
post_data=None,
method=None,
decode_utf8=True
)
View Source
def get_website(url, post_data=None, method=None, decode_utf8=True):
try:
if method is not None:
url = urllib.request.Request(url, method=method)
if post_data is not None:
post_data = urllib.parse.urlencode(post_data).encode("utf-8")
data = urllib.request.urlopen(url, post_data).read()
else:
data = urllib.request.urlopen(url).read()
if decode_utf8:
data = data.decode("utf-8")
except ConnectionRefusedError:
print("Could not connect to server")
return None
except urllib.error.URLError:
print("Could not connect to server")
return None
except http.client.RemoteDisconnected:
print("RemoteDisconnect")
return None
return data
get_website_json
def get_website_json(
url,
post_data=None,
method=None
)
View Source
def get_website_json(url, post_data=None, method=None):
retries = 0
while retries < 3:
data_json = get_website(url, post_data, method=method)
if data_json is not None:
break
retries += 1
print("No data, retriying")
if data_json is None:
return None
try:
data = json.loads(data_json)
except json.decoder.JSONDecodeError:
print("Could not decode json")
return None
return data