TSA-demo/TSA_mecha/finalflow-mqtt-dev-local.py [223:346]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                set_color("off")
                                time.sleep(0.2)
                                set_color("purple")
                                time.sleep(0.2)
                                set_color("off")
                            if langcode == 'es_US':
                                mqtt_publish('{"message": "Análisis ...", "presence": "request" }')
                                synthesize_speech("<speak> <lang xml:lang='en-ES'>Análisis ...</lang> <break time='0.2s'/></speak>",'ssml')
                            else:
                                mqtt_publish('{"message": "Scanning ...", "presence": "request" }')
                                synthesize_speech('Scanning','text')
                            photocapt = photo_capture()
                            photo='/home/pi/TSA/TSA-demo/pic.jpg'
                            print("start image reco")
                            label_count=detect_labels_local_file(photo)
                            print("Labels detected: " + str(label_count))
                            dispose = ''
                            for item in label_count:
                                print(item)
                                print("item['id']: ", item['id']['S'])
                                dispose= dispose + item['id']['S'] + ', '
                            print("end image reco")
                            print('dispose: ', dispose)
                            if dispose == '':
                                set_color("green")
                                time.sleep(0.6)
                                set_color("off")
                                if langcode == 'es_US':
                                    mqtt_publish('{"message": "No he identificado ningún artículo para desechar.\\n Diríjase a la puerta", "presence": "request" }')
                                    synthesize_speech("<speak> <lang xml:lang='en-ES'>No he identificado ningún artículo para desechar, diríjase a la puerta</lang> </speak>",'ssml')
                                else:
                                    mqtt_publish('{"message": "I have not identified any item to dispose.", "presence": "request" }')
                                    synthesize_speech('I have not identified any item to dispose. Please proceed to the gate','text')
                                checkAgentontheright()
                            else:
                                set_color("red")
                                time.sleep(0.4)
                                set_color("off")
                                if langcode == 'es_US':
                                    dispose_es = translatelang(dispose,'es')
                                    mqtt_publish('{"message": "Alquile sus\\n %s\\n en la papelera y diríjase a la puerta", "presence": "request" }' %(dispose))
                                    synthesize_speech("<speak> <lang xml:lang='en-ES'>Alquile sus %s en la papelera y diríjase a la puerta</lang> </speak>" %(dispose_es),'ssml')
                                else:
                                    mqtt_publish('{"message": "Place your\\n %s\\n in the bin.", "presence": "request" }' %(dispose))
                                    synthesize_speech('please place your %s in the bin and proceed to the gate' %(dispose), 'text')
                            time.sleep(1)
                            try:
                                ppe_count=detect_ppe_local_file(photo)
                                print("PPE detected: " + str(ppe_count[0]))
                                if (len(ppe_count[0]['Persons']) == 1):
                                    print('PPE - Person detected')
                                    try:
                                        print(str((ppe_count[0]['Persons'][0]['BodyParts'][0]['EquipmentDetections'][0]['Type'] == 'FACE_COVER')))
                                        print('PPE - face covered')
                                    except:
                                        print('PPE - face not covered')
                                        if langcode == 'es_US':
                                            synthesize_speech("<speak> <lang xml:lang='en-ES'>Como recordatorio, use una máscara dentro del aeropuerto.</lang> </speak>",'ssml')
                                        else:
                                            synthesize_speech('As a reminder, please wear a mask inside the airport', 'text')
                                    try:
                                        nose = str(ppe_count[0]['Persons'][0]['BodyParts'][0]['EquipmentDetections'][0]['CoversBodyPart']['Value'])
                                        if (nose == 'True'):
                                            print('PPE - mask on nose')
                                        else:
                                            print('PPE not on nose')
                                            if langcode == 'es_US':
                                                synthesize_speech("<speak> <lang xml:lang='en-ES'>Como recordatorio, mantén la máscara en la nariz mientras estés en el aeropuerto.</lang> </speak>",'ssml')
                                            else:
                                                synthesize_speech('As a reminder, please keep your mask on your nose while at the airport','text')
                                    except:
                                        print('nose PPE failed')
                                else:
                                    print('nobody detected for PPE')
                                #print("PPE detected Face: " + str(ppe_count[0]['Persons'][0]['BodyParts'][0]['EquipmentDetections'][0]['Type']))
                                #print("PPE detected on Nose: " + str(ppe_count[0]['Persons'][0]['BodyParts'][0]['EquipmentDetections'][0]['CoversBodyPart']['Value']))
                            except Exception as e:
                                print('ppe exception:', e)
                        if base64_message == 'I am going to reboot.':
                            print('REBOOT REQUESTED')
                            mqtt_publish('{"message": "Rebooting system in 5s", "presence": "request" }')
                            time.sleep(5)
                            os.system('sudo reboot')
                        if base64_message == 'Bye bye.':
                            synthesize_speech('Have a nice day.')
                            mqtt_publish('{"message": "Have a safe flight.", "presence": "request" }')
                            #Wave byebye   
                            time.sleep(10)
                        session_state = decode(response['sessionState'])
                        #print('session_state: ',session_state)
                        dialog_action = session_state['dialogAction']['type']
                        state = session_state['intent']['state']
                        print('dialog action, state: ', dialog_action, state)
                        #if dialog_action == 'Close' and state == 'Fulfilled':
                        #    break
                    except Exception as e:
                        print('An error occured in sensor detected: ',e)
                    try:
                        print("Starting Avadoyouhavequestion_thread")
                        stop_threadsAvadoyouhavequestion = True
                        Avadoyouhavequestion_thread = threading.Thread(target=Avadoyouhavequestion, name='Avadoyouhavequestion', args =(lambda : stop_threadsAvadoyouhavequestion, ))
                    except Exception as e: print('stop Avadoyouhavequestion_thread error: ', e)
                    #messages = json.dumps({"message" : "starting Lex Flow", "lex-recognition-edge": "no", "lex-flow": "start"})
                    #mqtt_publish(messages)
                else:
                    langcode ='en_US'
                    ffpstatus = processCheck()
                    mqtt_publish('{"message": "", "presence": 0 }')
                    print('ffpstatus: ', ffpstatus)
                    #messages = json.dumps({"message" : "Stopping Lex Flow", "lex-recognition-edge": "no", "lex-flow": "stop"})
                    #mqtt_publish(messages)
                    try:
                        print("Starting myNameisAvaServo_thread")
                        stop_threadsName = True
                        myNameisAvaServo_thread = threading.Thread(target=myNameisAvaServo, name='myNameisAvaServo', args =(lambda : stop_threadsName, ))
                    except Exception as e: print('stop myNameisAvaServo_thread error: ', e)
                    try:
                        print("Starting Avadoyouhavequestion_thread")
                        stop_threadsAvadoyouhavequestion = True
                        Avadoyouhavequestion_thread = threading.Thread(target=Avadoyouhavequestion, name='Avadoyouhavequestion', args =(lambda : stop_threadsAvadoyouhavequestion, ))
                    except Exception as e: print('stop Avadoyouhavequestion_thread error: ', e)
                    stop_threads = False
                    if not ffpstatus:
                        print('starting TSA Intro loop')
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



TSA-demo/TSA_mecha/finalflow-mqtt-dev-rasp.py [206:329]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                set_color("off")
                                time.sleep(0.2)
                                set_color("purple")
                                time.sleep(0.2)
                                set_color("off")
                            if langcode == 'es_US':
                                mqtt_publish('{"message": "Análisis ...", "presence": "request" }')
                                synthesize_speech("<speak> <lang xml:lang='en-ES'>Análisis ...</lang> <break time='0.2s'/></speak>",'ssml')
                            else:
                                mqtt_publish('{"message": "Scanning ...", "presence": "request" }')
                                synthesize_speech('Scanning','text')
                            photocapt = photo_capture()
                            photo='/home/pi/TSA/TSA-demo/pic.jpg'
                            print("start image reco")
                            label_count=detect_labels_local_file(photo)
                            print("Labels detected: " + str(label_count))
                            dispose = ''
                            for item in label_count:
                                print(item)
                                print("item['id']: ", item['id']['S'])
                                dispose= dispose + item['id']['S'] + ', '
                            print("end image reco")
                            print('dispose: ', dispose)
                            if dispose == '':
                                set_color("green")
                                time.sleep(0.6)
                                set_color("off")
                                if langcode == 'es_US':
                                    mqtt_publish('{"message": "No he identificado ningún artículo para desechar.\\n Diríjase a la puerta", "presence": "request" }')
                                    synthesize_speech("<speak> <lang xml:lang='en-ES'>No he identificado ningún artículo para desechar, diríjase a la puerta</lang> </speak>",'ssml')
                                else:
                                    mqtt_publish('{"message": "I have not identified any item to dispose.", "presence": "request" }')
                                    synthesize_speech('I have not identified any item to dispose. Please proceed to the gate','text')
                                checkAgentontheright()
                            else:
                                set_color("red")
                                time.sleep(0.4)
                                set_color("off")
                                if langcode == 'es_US':
                                    dispose_es = translatelang(dispose,'es')
                                    mqtt_publish('{"message": "Alquile sus\\n %s\\n en la papelera y diríjase a la puerta", "presence": "request" }' %(dispose))
                                    synthesize_speech("<speak> <lang xml:lang='en-ES'>Alquile sus %s en la papelera y diríjase a la puerta</lang> </speak>" %(dispose_es),'ssml')
                                else:
                                    mqtt_publish('{"message": "Place your\\n %s\\n in the bin.", "presence": "request" }' %(dispose))
                                    synthesize_speech('please place your %s in the bin and proceed to the gate' %(dispose), 'text')
                            time.sleep(1)
                            try:
                                ppe_count=detect_ppe_local_file(photo)
                                print("PPE detected: " + str(ppe_count[0]))
                                if (len(ppe_count[0]['Persons']) == 1):
                                    print('PPE - Person detected')
                                    try:
                                        print(str((ppe_count[0]['Persons'][0]['BodyParts'][0]['EquipmentDetections'][0]['Type'] == 'FACE_COVER')))
                                        print('PPE - face covered')
                                    except:
                                        print('PPE - face not covered')
                                        if langcode == 'es_US':
                                            synthesize_speech("<speak> <lang xml:lang='en-ES'>Como recordatorio, use una máscara dentro del aeropuerto.</lang> </speak>",'ssml')
                                        else:
                                            synthesize_speech('As a reminder, please wear a mask inside the airport', 'text')
                                    try:
                                        nose = str(ppe_count[0]['Persons'][0]['BodyParts'][0]['EquipmentDetections'][0]['CoversBodyPart']['Value'])
                                        if (nose == 'True'):
                                            print('PPE - mask on nose')
                                        else:
                                            print('PPE not on nose')
                                            if langcode == 'es_US':
                                                synthesize_speech("<speak> <lang xml:lang='en-ES'>Como recordatorio, mantén la máscara en la nariz mientras estés en el aeropuerto.</lang> </speak>",'ssml')
                                            else:
                                                synthesize_speech('As a reminder, please keep your mask on your nose while at the airport','text')
                                    except:
                                        print('nose PPE failed')
                                else:
                                    print('nobody detected for PPE')
                                #print("PPE detected Face: " + str(ppe_count[0]['Persons'][0]['BodyParts'][0]['EquipmentDetections'][0]['Type']))
                                #print("PPE detected on Nose: " + str(ppe_count[0]['Persons'][0]['BodyParts'][0]['EquipmentDetections'][0]['CoversBodyPart']['Value']))
                            except Exception as e:
                                print('ppe exception:', e)
                        if base64_message == 'I am going to reboot.':
                            print('REBOOT REQUESTED')
                            mqtt_publish('{"message": "Rebooting system in 5s", "presence": "request" }')
                            time.sleep(5)
                            os.system('sudo reboot')
                        if base64_message == 'Bye bye.':
                            synthesize_speech('Have a nice day.')
                            mqtt_publish('{"message": "Have a safe flight.", "presence": "request" }')
                            #Wave byebye   
                            time.sleep(10)
                        session_state = decode(response['sessionState'])
                        #print('session_state: ',session_state)
                        dialog_action = session_state['dialogAction']['type']
                        state = session_state['intent']['state']
                        print('dialog action, state: ', dialog_action, state)
                        #if dialog_action == 'Close' and state == 'Fulfilled':
                        #    break
                    except Exception as e:
                        print('An error occured in sensor detected: ',e)
                    try:
                        print("Starting Avadoyouhavequestion_thread")
                        stop_threadsAvadoyouhavequestion = True
                        Avadoyouhavequestion_thread = threading.Thread(target=Avadoyouhavequestion, name='Avadoyouhavequestion', args =(lambda : stop_threadsAvadoyouhavequestion, ))
                    except Exception as e: print('stop Avadoyouhavequestion_thread error: ', e)
                    #messages = json.dumps({"message" : "starting Lex Flow", "lex-recognition-edge": "no", "lex-flow": "start"})
                    #mqtt_publish(messages)
                else:
                    langcode ='en_US'
                    ffpstatus = processCheck()
                    mqtt_publish('{"message": "", "presence": 0 }')
                    print('ffpstatus: ', ffpstatus)
                    #messages = json.dumps({"message" : "Stopping Lex Flow", "lex-recognition-edge": "no", "lex-flow": "stop"})
                    #mqtt_publish(messages)
                    try:
                        print("Starting myNameisAvaServo_thread")
                        stop_threadsName = True
                        myNameisAvaServo_thread = threading.Thread(target=myNameisAvaServo, name='myNameisAvaServo', args =(lambda : stop_threadsName, ))
                    except Exception as e: print('stop myNameisAvaServo_thread error: ', e)
                    try:
                        print("Starting Avadoyouhavequestion_thread")
                        stop_threadsAvadoyouhavequestion = True
                        Avadoyouhavequestion_thread = threading.Thread(target=Avadoyouhavequestion, name='Avadoyouhavequestion', args =(lambda : stop_threadsAvadoyouhavequestion, ))
                    except Exception as e: print('stop Avadoyouhavequestion_thread error: ', e)
                    stop_threads = False
                    if not ffpstatus:
                        print('starting TSA Intro loop')
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



