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

📄 testmode.java

📁 Java Op Processor java vhdl processor
💻 JAVA
字号:
package oebb;/***	TestMode.java: test modus for OEBB.**	Author: Martin Schoeberl (martin.schoeberl@chello.at)**/import util.*;import joprt.*;import com.jopdesign.sys.Const;import com.jopdesign.sys.Native;public class TestMode {/***	test main.*/	public static void doit() {		//		//	start Display and Keyboard thread.		//		new Display(1, 5000);		RtThread.startMission();		Display.clear();		flushSerial();		serVal = 0;		outVal = 0;		Display.write(0, "BG263 Pruefmodus");		Display.write(20, "Software V ");		Display.intVal(31, Main.VER_MAJ);		Display.write(32, ".");		Display.intVal(33, Main.VER_MIN);		Display.write(40, "ID: ");		Display.intVal(44, Flash.getId());		for (int i=0; i<20; ++i) {			Timer.wd();			RtThread.sleepMs(100);		}		Display.clear();		forever();	}	// value for relais, dtr	private static int outVal;	private static void setOutputs() {		if (outVal==0) {			outVal = 2;		// relais a		} else if (outVal==2) {			outVal = 4;		// relais b		} else if (outVal==4) {			outVal = 8;		// modem dtr		} else {			outVal = 0;		// all off		}	}	// test keyboard	private static void testKeyboard() {		int val;		val = Keyboard.rd();		if (val != -1) {			if (val==Keyboard.UP) {				Display.write(40, 'A');				Display.write(41, 'U');				Display.write(42, 'F');			} else if (val==Keyboard.DOWN) {				Display.write(40, 'A');				Display.write(41, 'B');				Display.write(42, ' ');			} else if (val==Keyboard.E) {				Display.write(40, 'E');				Display.write(41, ' ');				Display.write(42, ' ');			} else if (val==Keyboard.B) {				Display.write(40, 'B');				Display.write(41, ' ');				Display.write(42, ' ');			} else if (val==Keyboard.C) {				Display.write(40, 'C');				Display.write(41, ' ');				Display.write(42, ' ');			} else if (val==Keyboard.BLACK) {				Display.write(40, 'S');				Display.write(41, ' ');				Display.write(42, ' ');			} else {				val = Keyboard.num(val);				if (val!=-1) {					Display.write(40, ' ');					Display.write(41, ' ');					Display.write(42, ' ');					Display.intVal(40, val);				}			}		}	}	// read all characters from serial buffer	private static void flushSerial() {		int i;		for (i=0; i<10; ++i) {			RtThread.sleepMs(100);			Timer.wd();			while ((Native.rd(Const.IO_STATUS) & Const.MSK_UA_RDRF)!=0) {				Native.rd(Const.IO_UART);			}			while ((Native.rd(Const.IO_STATUS2) & Const.MSK_UA_RDRF)!=0) {				Native.rd(Const.IO_UART2);			}			while ((Native.rd(Const.IO_STATUS3) & Const.MSK_UA_RDRF)!=0) {				Native.rd(Const.IO_UART3);			}		}	}	private static int serVal;	private static void serialSend() {		++serVal;		if (serVal==10) serVal = 0;		if ((Native.rd(Const.IO_STATUS) & Const.MSK_UA_TDRE)!=0) {			Native.wr('0'+serVal, Const.IO_UART);		}		if ((Native.rd(Const.IO_STATUS2) & Const.MSK_UA_TDRE)!=0) {			Native.wr('a'+serVal, Const.IO_UART2);		}		if ((Native.rd(Const.IO_STATUS3) & Const.MSK_UA_TDRE)!=0) {			Native.wr('A'+serVal, Const.IO_UART3);		}	}	private static void serialRcv() {		int val;		if ((Native.rd(Const.IO_STATUS) & Const.MSK_UA_RDRF)!=0) {			val = Native.rd(Const.IO_UART);			if (val != '0'+serVal) {				Display.write(0, "Serv.: Falsches Z.");				while ((Native.rd(Const.IO_STATUS) & Const.MSK_UA_RDRF)!=0) {					Native.rd(Const.IO_UART);				}			} else {				Display.write(0, "Ser.: OK          ");			}		} else {			Display.write(0, "Serv.: Kein Zeich.");		}		if ((Native.rd(Const.IO_STATUS2) & Const.MSK_UA_RDRF)!=0) {			val = Native.rd(Const.IO_UART2);			if (val != 'a'+serVal) {				Display.write(20, "Modem: Falsches Z.");				while ((Native.rd(Const.IO_STATUS2) & Const.MSK_UA_RDRF)!=0) {					Native.rd(Const.IO_UART2);				}			} else {				Display.write(20, "Modem: OK         ");			}		} else {			Display.write(20, "Modem: Kein Zeich.");		}		if ((Native.rd(Const.IO_STATUS3) & Const.MSK_UA_RDRF)!=0) {			val = Native.rd(Const.IO_UART3);			if (val != 'A'+serVal) {				Display.write(43, "GPS: Falsches Z.");				while ((Native.rd(Const.IO_STATUS3) & Const.MSK_UA_RDRF)!=0) {					Native.rd(Const.IO_UART3);				}			} else {				Display.write(43, "GPS: OK         ");			}		} else {			Display.write(43, "GPS: Kein Zeich.");		}	}	private static void forever() {		int val;		//		//	just do the WD blink with lowest priority		//	=> if the other threads take to long (*3) there will be a reset		//		for (;;) {			Timer.wd();			setOutputs();			// 1s loop			for (int i=0; i<50; ++i) {				serialSend();				RtThread.sleepMs(20);				serialRcv();				testKeyboard();				val = Native.rd(Const.IO_BG+1);	// check input pin				Native.wr(val | (outVal ^ 8), Const.IO_BG+1);	// and set led with value, invert DTR			}		}	}}

⌨️ 快捷键说明

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