def istrazuj(self): SB = self.SBSpinBox.value() UZ = self.UZSpinBox.value() # - odredjivanje koncepta na osnovu vrijednosti koje NN vrati if NNlib.neuro(SB, UZ) == 1: koncept = 'zid' else: koncept = 'prazan prostor' # - ucitaj koji je koncept u varijablu sql = "SET @koncept:='%s';" % koncept self.cursor.execute(sql) self.conn.commit() # Dodaj vrijednosti i koordinate u bazu # - ucitavanje trenutnog smjera za izracun koordinata polja ispred self.cursor.execute("SELECT smjer, poljeID FROM stanje;") smjer, t_polje = self.cursor.fetchone() # - izracunaj i spremi vrijednosti polja ispred self.cursor.execute("CALL spremi_polje_ispred(%s)", smjer) # - dodaj vrijednosti polja u okruzenje self.cursor.execute("SELECT poljeID, tezina, d_tezina FROM polje WHERE xkoord = @pi_x AND ykoord = @pi_y") poljeID, tezina, d_tezina= self.cursor.fetchone() self.okruzenje[int(poljeID)] = int(tezina) self.cursor.execute("CALL dodajVezu('%s','veza', '%s', %s);", (t_polje, poljeID, d_tezina)) self.conn.commit() # - ucitaj koordinate polja ispred self.cursor.execute("SELECT @pi_x, @pi_y;") pi_x, pi_y = self.cursor.fetchone() # - spremi t_smjer vrijednost polja ispred self.cursor.execute("UPDATE polje SET t_smjer = (SELECT smjer FROM stanje) WHERE xkoord = %s AND ykoord = %s;", (pi_x, pi_y)) self.conn.commit() self.unesenaVrijednost.setText(("<font color='green'>%s spremljeno na polju (%s, %s)</font>") % (koncept, pi_x, pi_y)) self.promjenaPozicije.setText("<font color='green'>Okrecem se desno 90 stupnjeva</font>") # Skreni 90 stupnjeva na desno; smjeru se dodaje +90, a ako je vece od 250 vraca se na 0 self.cursor.execute("UPDATE stanje SET smjer = IF(smjer < 250, smjer + 90, 0);") self.conn.commit() self.brojac += 1 if self.brojac == 4: self.brojac = 0 self.master_istrazuj()
# U 'okruzenje' se spremaju sva polja okolo robota u tom trenutku da bi se mogalo izracunati sljedece polje na koje ce robot ici. Format: {ID polja: tezina polja} okruzenje = dict() cursor.execute("SELECT d_tezina FROM polje WHERE poljeID = (SELECT poljeID FROM stanje); ") t_tezina = cursor.fetchone() # Petlja za skeniranje okolo sebe, 1 - 4 za svaku stranu for i in range(4): # Skeniraj senzorima polje ispred sebe # - rucni unos vrijednosti senzora print "Unesi vrijednosti za polje ispred" SB = input("SB: ") UZ = input("UZ: ") # - odredjivanje koncepta na osnovu vrijednosti koje NN vrati if NNlib.neuro(SB, UZ) == 1: koncept = 'zid' else: koncept = 'prazan prostor' # - ucitaj koji je koncept u varijablu sql = "SET @koncept:='%s';" % koncept cursor.execute(sql) conn.commit() # Dodaj vrijednosti i koordinate u bazu # - ucitavanje trenutnog smjera za izracun koordinata polja ispred cursor.execute("SELECT smjer, poljeID FROM stanje;") smjer, t_polje = cursor.fetchone() # - izracunaj i spremi vrijednosti polja ispred cursor.execute("CALL spremi_polje_ispred(%s)", smjer)