package metrobotics; /** * @author Pablo Munoz * */ public class GuiState extends Thread { long time1, time2; boolean checkTime; GuiState(){ time2 = System.currentTimeMillis() + GUIConstants.STATE_UPDATE_INTERVAL; Gui.setGUIState(GUIConstants.STATE_INIT); } public void run(){ while(Gui.getGUIState() != GUIConstants.STATE_QUIT){ switch(Gui.getGUIState()){ case GUIConstants.STATE_INIT: if(Gui.debug){ System.out.println("GUISTATE INIT"); } Gui.serverComm.init(); Gui.setGUIState(GUIConstants.STATE_ACK); break; case GUIConstants.STATE_ACK: if(Gui.debug){ System.out.println("GUISTATE ACK"); } if(Gui.serverComm.ack()){ Gui.setGUIState(GUIConstants.STATE_GUI_WAIT); //Gui.serverComm.writeStream("IDENT"); } else Gui.setGUIState(GUIConstants.STATE_INIT); break; case GUIConstants.STATE_GUI_WAIT: // if(Gui.debug){ // System.out.println("GUISTATE WAIT"); // } Gui.serverComm.check4Msg(); break; } time1 = System.currentTimeMillis(); if(time1 > time2 + GUIConstants.STATE_UPDATE_INTERVAL) checkTime = true; if(checkTime){ time2 = System.currentTimeMillis(); Gui.serverComm.askPose(-1); checkTime = false; } try { Thread.sleep(GUIConstants.STATE_UPDATE_SLEEP_TIME); // This sleep time should come also from the configuration file. } catch (InterruptedException e) { e.printStackTrace(); return; } } } }