From 5743f99d24efcc0a92fcee16fde6ad457f134c33 Mon Sep 17 00:00:00 2001 From: Peng Li Date: Mon, 25 Jun 2018 19:22:02 +0800 Subject: [PATCH] Add timer for device list --- sztool | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/sztool b/sztool index dc9157a..ba59b45 100755 --- a/sztool +++ b/sztool @@ -6,6 +6,7 @@ import argparse import sys from uuid import getnode as get_mac import ast +import threading MQTT_SERVER = 'mqtt.suanzi.ai' MQTT_PORT = 1883 @@ -18,6 +19,8 @@ def on_connect(client, userdata, flags, rc): payload = {'from':userdata['id'], 'type':'request', 'command':'ssh'} client.publish(userdata['to'], str(payload)) elif userdata['action'] == 'list': + timer = threading.Timer(5, timeout) + timer.start() payload = {'from':userdata['id'], 'type':'request', 'command':'list'} client.publish(userdata['to'], str(payload)) @@ -26,20 +29,24 @@ def on_message(client, userdata, msg): payload = ast.literal_eval(str(msg.payload)) from_id = payload['from'] if payload['type'] == 'response': + print payload['command'] if payload['command'] == 'ssh': port = payload['data'] print 'run "ssh ' + URI + ' -p ' + str(port) + '" to connect to device (%s)' % from_id + client.disconnect() + sys.exit(0) elif payload['command'] == 'list': print payload['from'], payload['data'] - client.disconnect() - sys.exit(0) - - def get_mac_str(): mac = hex(get_mac()) return '{:0>12}'.format(mac[2:-1]) +def timeout(): + print 'timeout' + client.disconnect() + sys.exit(0) + if __name__ == '__main__': parser = argparse.ArgumentParser(description='Choose an avaiable port and run ssh.') -- 2.11.0