data = arduinodata.decode(data) #Empfangene Daten entpacken wallsdata, victimsdata, environmentdata, motorsdata = arduinodata.analyze( data, 'all') #Entpackte Daten analysieren #kameradaten jetzt auch analysieren if environmentdata[floor] == 'black': #Schwarze Platte checken aktueller_raum.set_type(black) aktueller_raum.set_top(wall.Wall()) #OBEN ABRIEGELN aktueller_raum.set_rgt(wall.Wall()) #RECHTS ABRIEGELN aktueller_raum.set_but(wall.Wall()) #UNTEN ABRIEGELN aktueller_raum.set_lft(wall.Wall()) #LINKS ABRIEGELN #befehl zum runterfahren geben #auf bestätigung warten aktueller_raum = history.get_last_tile() continue #rampe? -> rampenbefahrungsmodus #gibts undefinierte räume drumherum? -> erstellen und wände je nach WALLSDATA setzen #wenn keine wand da und unbefahren -> da hinfahren auf stack drauf #irgendwelche opfer hier? -> wände dementsprechend modifizieren/checken und wenn noch nicht gerettet kits abwerfen #checkpoint? -> letzter checkpoint variable aktualisieren #oberste stack aufgabe nehmen, entschlüsseln #genaue fahranweisung an arduino senden #Fotos machen mit ~15 FPS #auf bestätigung warten #Nach Bestätigung fotos stoppen #Objekterkennung starten #passen rotationswerte etc? -> sonst anpassungsbefehl schicken
for i in environmentdata: print(i, environmentdata[i]) for i in motorsdata: print(i, motorsdata[i]) current_tile, tasks = logic.calculate_action(wallsdata, victimsdata, environmentdata, motorsdata, current_tile, tasks) try: task_to_do = tasks.get() print("Took task from stack: ") print(task_to_do) except IndexError: print("Failed to take task from stack") print("Ending log") custom_print.stop() sys.exit() path = path.next_path(current_tile, task_to_do) # todo send these instructions to arduino # todo start taking photos with around 5 frames per second # todo interrupt if victim and if not rescued yet # todo wait for arrival message # todo stop taking photos # todo update wanted rotation # todo update last driven in history module history.add_tile(current_tile) print("Updated last tile in history module: ") print(history.get_last_tile()) # todo update current_tile
#kameradaten jetzt auch analysieren if environmentdata[floor] == 'black': print("Schwarze Platte") aktueller_raum.set_type('black') print("Typ geändert") aktueller_raum.set_top(wall.Wall()) print("OBEN ABGERIEGELT") aktueller_raum.set_rgt(wall.Wall()) print("RECHTS ABGERIEGELT") aktueller_raum.set_but(wall.Wall()) print("UNTEN ABGERIEGELT") aktueller_raum.set_lft(wall.Wall()) print("LINKS ABGERIEGELT") tasks.add(history.get_last_tile()) print("Runterfahren auf den Stack gepackt") print(tasks) print(tasks.all()) #zum fahren springen #rampe? -> rampenbefahrungsmodus #gibts undefinierte räume drumherum? -> erstellen und wände je nach WALLSDATA setzen #wenn keine wand da und unbefahren -> da hinfahren auf stack drauf #irgendwelche opfer hier? -> wände dementsprechend modifizieren/checken und wenn noch nicht gerettet kits abwerfen #checkpoint? -> letzter checkpoint variable aktualisieren try: task_to_do = tasks.get() #Probieren eine Aufgabe zu nehmen except: sys.stdout = orig_stdout