in TSA-demo/TSA_rekognition/iot_sub_reko.py [0:0]
def mqtt_subscribe():
received_count = 0
received_all_event = threading.Event()
# Callback when the subscribed topic receives a message
def on_message_received(topic, payload, dup, qos, retain, **kwargs):
print("Received message from topic '{}': {}".format(topic, payload))
global received_count
received_count = 0
received_count += 1
if received_count == 0:
received_all_event.set()
global aa
try:
print("message: ",json.loads(payload.decode("utf-8"))["lex-request"])
mess = json.loads(payload.decode("utf-8"))["lex-request"]
if (mess == "reboot"):
print("Message detected: " + str(mess))
os.system('sudo reboot')
except Exception as e:
print(e)
try:
print("edge: ",json.loads(payload.decode("utf-8"))["lex-recognition-edge"])
trigg = json.loads(payload.decode("utf-8"))["lex-recognition-edge"]
if (trigg == "yes"):
#photo = photo_capture()
photo='/Users/kedouard/Documents/SA/Labs/TSA bot/TSABot_dev_team_oct12/TSA-demo/TSA_rekognition/samples_img/waterbottle.jpeg'
print("start image reco")
label_count=detect_labels_local_file(photo)
print("Labels detected: " + str(label_count))
print("end image reco")
#label_count=detect_labels_local_file(photo)
#logging.info("label count: ", label_count)
#print("Labels detected: " + str(label_count))
#li = [mess.get('Name') for mess in label_count]
#print(li)
#messages = json.dumps({"message" : li, "lex-recognition-edge": "no"})
#print('messages: ', messages)
#pub = mqtt_connection.publish(topic='lcd-message', payload=messages, qos=mqtt.QoS.AT_LEAST_ONCE)
#print("pub: ", pub)
except Exception as e:
print('error at edge reco level: ',e)
# Subscribe
print("Subscribing to topic '{}'...".format(os.getenv('TOPIC')))
subscribe_future, packet_id = mqtt_connection.subscribe(
topic='lcd-message',
qos=mqtt.QoS.AT_LEAST_ONCE,
callback=on_message_received)
subscribe_result = subscribe_future.result()
print("Subscribed with {}".format(str(subscribe_result['qos'])))
#return "top"
#received_all_event.wait()
print("{} message(s) received.".format(received_count))