14.02.2017, 18:44
bin noch nicht ganz so bewandert mit raise, aber so wäre mein Ansatz:
Code:
def send_tcp_command(message):
clientsocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # ok
clientsocket.settimeout(0.1) # ok
# port = get_addon_setting('tcp_port') ###? int()
port = 8089
try:
clientsocket.connect(('localhost', port)) # 127.0.0.1 ok
except:
raise ValueError
clientsocket.send(message) # obc;get;odometer #ok
# time.sleep(0.2)
clientsocket.settimeout(0.2) # auf antwort warten ok
# time.sleep(0.2)
clientsocket.settimeout(0.2) # ok
clientsocket.shutdown(True) # ok
data = clientsocket.recv(50).replace('\n', '') # antwort nicht kleiner 50 nicht weniger 50 ok
# data = clientsocket.recv(50).strip() # strip müsste auch gehen
return data
def get_odometer():
try:
odometer = int(send_tcp_command('obc;get;odometer'))
except ValueError:
odometer = -1
if odometer < 0:
xbmc.executebuiltin('Notification(ERROR:, %s, %d)' % (odometer, time))
return 136000 # Um zu verhindern das er quatsch in die variable schreibt
else:
return odometer # odometer = 236000 #test wird später entfernt
current_odometer = get_odometer()