⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 logic.java

📁 Java Op Processor java vhdl processor
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
				Display.write("Betriebsbereit", "Strecke ", Status.strNr, "");			} else {				Display.write("Betriebsbereit", "","");							}			if (Status.strNr<=0 && Status.selectStr) {				enterStrNr();			}			if (!loop()) return;		}				if (Flash.getIp()!=0) {			// that's a ZLB Strecke			Status.state = Status.CONNECT;		} else {			Status.esMode = true;			Status.state = Status.ES_RDY;		}			}	/**	 * Strecke nicht eindeutig => eingeben	 */	private void enterStrNr() {				int nr=-1;				while (nr<=0) {			Display.write("Strecke eingeben","Strecke:","");			Led.shortBeep();			nr = getNumber(8, 3);			if (nr>0) {				int cnt = Flash.getCnt();				int i;				for (i=0; i<cnt; ++i) {					if (nr==Flash.getStrNr(i)) {						Flash.loadStr(nr);						if (Flash.getIp()==0) {							Flash.esStr();						}						break;					}				}				if (i==cnt) {					Display.write("Streckennummer","ung黮tig","(Quitt. [E])");					Led.shortBeep();					waitEnterOnly();					nr = -1;				}			}		}		Status.strNr = nr;	}	private void queryDownload() {		int tim = Timer.getSec()+DL_TIMEOUT;System.out.println("Check download server");				// Isn't Flash.java a strange point for communication start!		if (!Flash.startComm(DL_STRNR)) {			System.out.println("kein Download Server");			Status.state = Status.INIT;			return;		}		Display.write("Verbindungsaufbau", "Download check", "(Bitte warten)");				// wait for ip link established		for (;;) {			if (ipLink.getIpAddress()!=0) {				break;			}			if (Timer.secTimeout(tim)) {System.out.println("Link timeout");				break;			}			loop();		}				Display.write("Download check", "", "");		Display.ipVal(40, Comm.dst_ip);		// CONN is sent in check()		// Here we wait for the reply		for (;;) {			if (Status.connOk) {				if (Status.download) {					// go the normal way to download					Status.state = Status.FDL_CONN;					return;				} else {					break;				}			}			if (Timer.secTimeout(tim)) {System.out.println("Download server connect timeout");				break;			}			loop();		}		// we fall through when there is no download		// or a connection timeout		// disconnect and wait for GPS		Status.connOk = false;		connSent = false;		Status.commErr = 0;  // ignore it		ipLink.disconnect();		Comm.dst_ip = 0;		Status.state = Status.INIT;	}			private void startConn() {		Display.write("Verbindungsaufbau", "", "");				// Isn't Flash.java a strange point for communication start!		Flash.startComm(Status.strNr);				// wait for ip link established		while (loop()) {			int cnt = ipLink.getConnCount();			if (cnt!=0) {				Display.write(20, "Versuch ", cnt);						}			if (ipLink.getIpAddress()!=0) {				break;			}		}				Display.write("Verbinden zu", "", "");		Display.ipVal(40, Comm.dst_ip);		// CONN is sent in check()		// Here we wait for the reply		while (loop()) {			if (Status.connOk) {				Status.state = Status.FDL_CONN;				break;			}		}	}	/**	 * returns false if cancelled by pressing 'C'	 *	 */	private boolean verschub() {		int tim;		Status.von = -1;		Comm.verschub(Status.strNr, Status.melNr);		// wait for replay		while (loop()) {			if (Status.von != -1) {				break;			}		}		if ((Status.von)==0 && (Status.bis)==0) {			return true;		}		// Status.state change in loop()		if (Status.state!=Status.FDL_CONN || Status.dispMenu) return true;		tim = Timer.getTimeoutSec(5);		Display.write("Verschub erlaubt", "", "");		while (loop()) {						Flash.Point p = Flash.getPoint(Status.von);			if (p!=null) {				Display.write(20, p.verschubVon);			}			p = Flash.getPoint(Status.bis);			if (p!=null) {				Display.write(40, p.verschubBis);			}			if (Status.von==0 && Status.bis==0) {				break;			}			if (Timer.timeout(tim)) {				Comm.verschub(Status.strNr, Status.melNr);				tim = Timer.getTimeoutSec(5);			}			int val = Keyboard.rd();			if (val==Keyboard.C) {				Status.von=0;				Status.bis=0;				return false;			} else if (val==Keyboard.B) {				Keyboard.unread(val);				loop();				return true;			}			// Status.state change in loop()			if (Status.state!=Status.FDL_CONN || Status.dispMenu) return true;		}		return true;	}	private void anmelden() {		int nr, val, tim;// System.out.println("Anmelden");		// load default strings for Verschub		Flash.loadStrNames(Status.strNr, 0, 0);		boolean askVerschub = verschub();		if (Status.state!=Status.FDL_CONN || Status.dispMenu) return;		val = 0;		Status.art = 0;		nr = 0;		tim = Timer.getTimeoutSec(5);		// Strecke is known!!!		while (loop()) {			if (askVerschub && Timer.timeout(tim)) {				askVerschub = verschub();				// Status.state change in verschub()				if (Status.state!=Status.FDL_CONN || Status.dispMenu) return;				tim = Timer.getTimeoutSec(5);			}			Flash.Point p = Flash.getPoint(Status.melNr);			if (p==null || !(p.anmelden)) {				Display.write("Anmelden bei", "dieser Position", "nicht m鰃lich");							} else {				Display.write("Anmelden", "Strecke ", Status.strNr, "Zug: 1, Nf: 2");				val = Keyboard.rd();				if (val==Keyboard.B) {					Keyboard.unread(val);					return;				} else if (val==Keyboard.C) {					return;				}				val = Keyboard.num(val);				if (val>=1 && val <=2) {					nr = zugnummer(val);					if (nr == -1) return;					break;				}							}			// check for going back to 'Bereit'			if (Gps.changeToBereit) {				reset();			}		}		// Status.state change in loop()		if (Status.state!=Status.FDL_CONN || Status.dispMenu) return;		// also return on a comm error		if (!loop()) return;		Status.zugNr = nr;		Status.art = val;		if (val==1) {			Display.write("StreckenNr: ", Status.strNr, "ZugNr: ",Status.zugNr ,					"(Anmelden mit [E])");		} else {			Display.write("StreckenNr: ", Status.strNr, "Nebenfahrt: N", Status.zugNr,					"(Anmelden mit [E])");		}		while (loop()) {			val = Keyboard.rd();			if (val==Keyboard.B) {				Keyboard.unread(val);				continue;			}			if (val==Keyboard.E) {				Display.write("Anmelden", "", "(bitte warten)");				if (Status.state!=Status.FDL_CONN) return;				// send anmelden				Comm.anmelden(Status.art, nr, Status.strNr, Status.melNr);				// and wait for a reply of ANM				// and a ANMOK				while (loop()) {					if (Status.anmOk) {						Status.state = Status.ANM_OK;						Status.melNrStart = Status.melNr;						Status.melNrZiel = Status.melNr;						break;					} else if (Status.state == Status.ABGEMELDET) {						abmelden();					}				}				return;			} else if (val==Keyboard.C) {				return;			}		}	}	private int zugnummer(int val) {// System.out.println("Zugnummer");		if (val==1) {			Display.write("", "ZugNr:","");			return getNumber(7, 5);		} else if (val==2) {			Display.write("", "Nebenfahrt:","");			return getNumber(12, 5);		} else {			return 0;	// no number fuer Verschub		}	}		private void commError() {// System.out.println("Comm Error");		// In ES mode or when checking the download		// server we just ignore the communication error		if (Status.esMode || Status.state == Status.DL_CHECK) {			Status.commErr = 0;System.out.println("comm err ignored");			return;		}		if (Status.doCommAlarm) {			int nr = Status.commErr;			Led.shortBeep();			Led.startBlinking();			if (nr==2) {				Display.write("FDL Msg Fehler", "Paket zu kurz", "");			} else if (nr==3) {				Display.write("FDL Msg Fehler", "falsches CMD", "");			} else if (nr==4) {				Display.write("FDL Msg Fehler", "falsche bgid", "");			} else {				Display.write("FDL Rechner", "antwortet nicht", "(FDL verst鋘digen)");			}			// Display.intVal(40, Status.commErr);					}		Status.connOk = false;		connSent = false;		// clear error		Status.commErr = 0;		// clear melNrSent, has to be resend		Status.melNrSent = 0;		if (Status.doCommAlarm) {			for (;;) {				loop();				//				//	we got another communication error during wait for Enter				//		just reset our vars and let check()/Comm do the reconnect				//				if (Status.commErr!=0) {					connSent = false;					// clear error					Status.commErr = 0;					// clear melNrSent, has to be resend					Status.melNrSent = 0;				}				if (Keyboard.rd()==Keyboard.E) break;				if (Status.connOk) break;			}			Led.stopBlinking();					}		// keep Status even if not connected/*		Status.state = Status.INIT;		Status.strNr = 0;		Status.melNr = 0;		Status.melNrSent = 0;*/	}	/**	*	Handle the alarms.	*/	private void alarm() {Dbg.wr("Alarm ");Dbg.intVal(alarmType);Dbg.lf();		if (alarmType==Cmd.ALARM_UEBERF) {			Display.write("", "ZIEL 蹷ERFAHREN", "");		} else if (alarmType==Cmd.ALARM_FAEHRT) {			Display.write("KEINE", "FAHRERLAUBNIS", "");		} else if (alarmType==Cmd.ALARM_RICHTUNG) {			Display.write("Falsche", "Richtung", "");		} else {			Display.write("Alarm", "Nummer", alarmType, "");		}		if (Status.esMode) {			setGpsData();			tmpStr.append("Alarm: ");			tmpStr.append(alarmType);			tmpStr.append("\n");			Flash.log(tmpStr);		}		Led.alarm();		if (Status.connOk) {			Comm.alarm(Status.strNr, Status.melNr, alarmType);					}		for (;;) {			// only NOTHAL overwrites an Alarm			if (Status.state == Status.NOTHALT) return;			// wait for Enter to quit Alarm			if (waitEnter()) break;		}		Led.alarmOff();		if (Status.connOk) {			Comm.alarm(Status.strNr, Status.melNr, 0);					}		//		//	update state with stateAfterQuit only if		//	state did not change since alarm		//		if (Status.state==Status.ALARM) {			Status.state = stateAfterQuit;			if (Status.state==Status.ZIEL) {				Status.state = Status.ANM_OK;			}		}	}	private void erlaubnis() {// Dbg.wr("Erlaubnis\n");		checkMove = false;		Flash.Point p = Flash.getPoint(Status.melNrZiel);		Display.write("Fahrerlaubnis", p.stationLine1, p.stationLine2);/* 2005-08-19: wird nicht mehr verwendet		if (Status.sendFerlQuit) {			Led.startBlinking();			int state = Status.state;			boolean warned = false;			while (loop()) {				int val = Keyboard.rd();				if (val==Keyboard.E) {					break;				}				// some State has changed!				// dont wait anymore				if (state!=Status.state) {					Led.stopBeeping();					Led.stopBlinking();					return;				}				if (!warned && Gps.speed>Gps.MIN_SPEED) {					Display.write("Fahrerlaubnis", "mit Enter best鋞igen", "");					Led.startBeeping();					warned = true;				}			}			Comm.simpleCmd(Cmd.FERL_QUIT);			Status.sendFerlQuit = false;			Led.stopBeeping();			Led.stopBlinking();		}*/	}	private void ziel() {		Flash.Point p = Flash.getPoint(Status.melNr);		if (Status.esMode) {			Display.write("Ziel erreicht:", p.stationLine1, "(HP-Ausw. Pfeilt.)");			setGpsData();			tmpStr.append("Ziel erreicht: ");			tmpStr.append(Status.melNr);			tmpStr.append("\n");			Flash.log(tmpStr);			if (waitAnyKey()) {				Status.state = Status.ES_RDY;							}		} else {			Display.write("Ziel erreicht:", p.stationLine1, p.stationLine2);		}	}	private void widerruf() {// System.out.println("Widerruf");		Display.write("Fahrtwiderruf", "ZugNr: ", Status.zugNr,					"(Quitt. mit [E])");		Led.startBlinking();		// wait for Enter		while (loop()) {			if (Keyboard.rd()==Keyboard.E) {				Comm.simpleCmd(Cmd.FWR_QUIT);				Display.write("Fahrtwiderruf OK", "", "");				Status.state = Status.ANM_OK;				Led.stopBlinking();				return;			}		}	}	private void nothalt() {// System.out.println("Nothalt");		Display.write("", "NOTHALT", "");		Led.alarm();		// wait for Enter		for(;;) {			loop();			if (Keyboard.rd()==Keyboard.E) {				Comm.simpleCmd(Cmd.NOT_QUIT);				Led.alarmOff();				Status.state = Status.NOTHALT_OK;				return;			}		}	}	private void abmelden() {// System.out.println("Abmelden");		Display.write("Abmelden", "", "(bitte warten)");		restart();	}	private void restart() {		if (Status.esMode) {			setGpsData();			tmpStr.append("Neustart: ");			tmpStr.append(Status.melNr);			tmpStr.append("\n");			Flash.log(tmpStr);		}		reset();	}		private void deakt() {				Display.write("Deaktiviert", "", "Aktivieren mit [E]");		setGpsData();		tmpStr.append("Deaktiviert: ");		tmpStr.append(Status.melNr);		tmpStr.append("\n");		Flash.log(tmpStr);		initVals();		waitEnterOnly();		reset();			}		/**	 * reset() is without Logging in ES mode	 *	 */	private void reset() {		// wait some time to send outstanding messages		// and reply		int tim = Timer.getTimeoutSec(4);		while (!Timer.timeout(tim)) {			loop();		}		// wait for reset		Main.reset = true;		for (;;) {			loop();		}			}	private void ankunft() {				int tim;// System.out.println("AnkVerl");		if (Status.melNr<=0 || Status.melNrStart<=0 || Status.melNrZiel<=0 ||				Status.direction == Gps.DIR_UNKNOWN) {			Display.write("Bei dieser Position", "keine Meldung", "m鰃lich!");			waitEnter(5);			return;		}		Flash.Point p = Flash.getPoint(Status.melNr);		if (p==null) {			Display.write("Bei dieser Position", "keine Meldung", "m鰃lich!");			waitEnter(5);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -