亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? datagps.java

?? gpsLogger是一個基于手機或PDA的個人移動導航(車載導航)系統中記錄gps信息的小工具
?? JAVA
字號:
import waba.ui.Button;
import waba.ui.Container;
import waba.ui.ControlEvent;
import waba.ui.Edit;
import waba.ui.Event;
import waba.ui.InputDialog;
import waba.ui.MessageBox;
import superwaba.ext.xplat.io.gps.GPS;
import waba.ui.MainWindow;
import waba.ui.*;
import waba.io.*;
//import superwaba.ext.xplat.io.gps.GPS;
import waba.sys.*;
import waba.fx.*;
import waba.io.DataStream;
import waba.io.File;
import waba.io.SerialPort;

public class dataGps extends Container {
	dataCapture dataCapture;
	SerialPort sp;
	private Timer gpsTimer;
	MessageBox mbComPort, mbBluetoothHelp;
	/** Buffer size may be adjusted as needed... */
	public static final int BUF_LEN = 200;
	byte[] buf = new byte[BUF_LEN];
	char[] cbuf = new char[BUF_LEN];
	StringBuffer sb = new StringBuffer(BUF_LEN);
	String[] text = new String[]{"","","","","","","",""};
	String szPortNumber;
	double[] diLocation = new double[2];
	int msgCount;
	int iCounter = 0;
		
	public Time lastFix=new Time(); // Stores the time of lastFix. 
	public double direction = -1.0f; // Stores the direction  
	public double velocity = -1.0f; // Stores the velocity
	public Button btnRestartGps, btnHelp;
	dataGps dataGps;
	
	public dataGps(){//configures for gps data stream entry point...		
		if ((gpsDataLogger.szPlatform.compareTo("Java")==0)||
				(gpsDataLogger.szPlatform.compareTo("Win32")==0)||
				(gpsDataLogger.szPlatform.compareTo("Linux")==0)){
			//...haven't tested this: may work... may not work w/out mods. 
			sp = new SerialPort(SerialPort.USB,9600);
		}else if ((gpsDataLogger.szPlatform.compareTo("PalmOS/SDL")==0)||
				(gpsDataLogger.szPlatform.compareTo("PalmOS")==0)){					
			sp = new SerialPort( SerialPort.BLUETOOTH, 9600);
		}else{//"WindowsCE",or "PocketPC"...what else??
			sp = new SerialPort( gpsDataLogger.iPortNumber, 9600);
		}
		sp.setReadTimeout(100);//...previously set at 2000
		sp.setFlowControl(false);
		text[0]="GPS Initialising";
		gpsTimer = addTimer(1000);
		nextMessage();		
	}	
	public void onStart() {	
		btnHelp = new Button("Bluetooth Help");
		btnHelp.setGap(5);
		add(btnHelp,LEFT+5,BOTTOM-5);
		
		btnRestartGps = new Button( "Reset COM port");
		btnRestartGps.setGap(5);
		add(btnRestartGps,RIGHT-5,BOTTOM-5);
		
		//gpsTimer = addTimer(100);
	}	
	
	public void onPaint(Graphics g){//this prints out the little strings on rePaint...
		g.setForeColor(foreColor);
		g.setBackColor(backColor);
		g.setFont(new Font("SW",Font.BOLD,14));
		g.fillRect(0,0,width,height); // really necessary?
		
		int y = 50;//up and down start for string[0]
		int x = 25;//left to right start for string [0]
		int n = text.length;
		for (int i =0; i < n; i++,y+=fmH)
			g.drawText(text[i], x, y);
	}
	public void processInput(){
		String message;
		if ((message=nextMessage())!=null){			
			String[] sp=Convert.tokenizeString(message,',');			
			if (sp[0].equals("$GPRMC")){
				diLocation[0] = toCoordinate(sp[3], sp[4].charAt(0));//[3] = Lat, [4] = N
				diLocation[1] = toCoordinate(sp[5], sp[6].charAt(0));//[5] = Long, [6] = W				
				
				if (sp[1].length() >= 6){//[1] = time	
					//below converts Greenwich to Local time, with "15" the appropriate value for Alaska
					//lastFix.hour   = (Convert.toInt(sp[1].substring(0, 2)))+ 15;
					lastFix.hour   = (Convert.toInt(sp[1].substring(0, 2)));
					lastFix.minute = Convert.toInt(sp[1].substring(2, 4));
					lastFix.second = Convert.toInt(sp[1].substring(4, 6));
					lastFix.millis = 0;
				}
				gpsDataLogger.szLat = Convert.toString(diLocation[0],4);
				gpsDataLogger.szLong = Convert.toString(diLocation[1],4);
				gpsDataLogger.szLatNs = sp[4];
				gpsDataLogger.szLongEw = sp[6];
				gpsDataLogger.szTime = lastFix.toString();
				//String s = sp[2];
				gpsDataLogger.szValid = sp[2];
				
				
				velocity = Convert.toDouble(sp[7]); //knots
				direction = Convert.toDouble(sp[8]); //degrees
				
				text[0] = "lat: " + diLocation[0];
				text[1] = "lon: " + diLocation[1];
				text[2] = "fix: " + lastFix.toString();
				text[3] = "valid:"+ gpsDataLogger.szValid;
				text[4] = "direction: " + direction;
				text[5] = "speed: " + velocity;
				text[6] = sp[3] + sp[4];
				text[7] = sp[5] + sp[6];
			}
		}else{
			text[0] ="No message " + (msgCount++);
			text[1] = text[2] = text[3] = text[4] = text[5] = "";
		}
		repaint();
		//iRestartFlag = 0;
	}
	public int getPreferredWidth(){
		if (text==null) 
			return FILL;
		int w = 0;
		for (int i =text.length-1; i >= 0; i--)
			w = Math.max(w, fm.getTextWidth(text[i]));
		return w;
	}
	public int getPreferredHeight(){
		return fmH*text.length;
	}	
	// Returns the location array. The latitude is stored in position 0, and the longitude in position 1. 
	public double[] getLocation(){
		return diLocation;
	}
	// Returns the latitude.
	public double getLatitude(){
		return diLocation[0];
	}
	// Returns the longitude.
	public double getLongitude(){
		return diLocation[1];
	}
	private String nextMessage(){
		// put the fields in the stack
		StringBuffer sb=this.sb;
		char []cbuf = this.cbuf;
		byte []buf = this.buf;
		
		int bufCount=0;
		int maxAvailable=0;
		sb.setLength(0);
		while (true){
			int len = 0;
			while (bufCount-- > 0){
				byte b = buf[len];
				if ((b==13 || b==10) && (len > 0 || sb.length() > 0)){ // end of line and buffer not empty?
					// append the last read chars
					if (len > 0)
						sb.append(cbuf,0,len);
					// check here if we need to remove the *. avoid an extra string creation
					len = sb.length();
					if (sb.charAt(len-3) == '*')
						sb.setLength(len-3);
					// return the string
					return sb.toString();
				}
				cbuf[len++] = (char)b;
			}
			if (len > 0)
				sb.append(cbuf,0,len);
			
			// fetch data
			int available=sp.readCheck();
			if (available==0)
				return "0 available";
			if (available!=-1)
				maxAvailable=available;
			else
				sp.readBytes(buf,0,1);
			
			int toRead = (available > BUF_LEN || available == -1) ? BUF_LEN : available;
			bufCount = sp.readBytes(buf,0,toRead);
			if (bufCount==-1)
				return ">negative one"; // nothing read
			if (bufCount==0)
				return "0 read ("+toRead+" to read ("+available+" available ("+maxAvailable+")))";
		}
	}	
	public void restartGps(){
		sp.close();
		if (gpsDataLogger.szPlatform.compareTo("PalmOS/SDL")==0){					
			sp = new SerialPort( SerialPort.BLUETOOTH, 9600);
		}else{
			sp = new SerialPort( gpsDataLogger.iPortNumber, 9600);
		}
		sp.setReadTimeout(100);//...previously set at 2000
		sp.setFlowControl(false);
		text[0]="GPS Initialising";
		text[1] = text[2] = text[3] = text[4] = text[5] = text[6] = text[7] = "";
		gpsTimer = addTimer(1000);
		nextMessage();		
	}	
	public double toCoordinate(String s,char dir){
		double deg = 0;
		int i = s.indexOf('.'); 
		if (i>=0){
			int divider=1;
			int size = s.length();
			for (int d=size-i-1;d > 0;d--)
				divider*=10;
			deg=(double)Convert.toInt(s.substring(0,i-2))+
			((double)Convert.toInt(s.substring(i-2,i))+
					(double)Convert.toInt(s.substring(i+1,size))/divider)/60;
			if (dir == 'S' || dir == 'W')
				deg=-deg;
		}return deg;
	}	
	public void onEvent(Event e){
		int iBytes = 6;
		switch (e.type){
		/*************************************************************************
		 * Below timer event is structured so that if there are 15 iterations 
		 * of less than 5 bytes of data in the bluetooth serial queue, the serial
		 * port is closed. This takes 15 seconds. It's crude, but it works.
		 * 
		 * The processInput() function grabs and parses the NMEA strings into 
		 * the szStrings that are used by the application.
		 *************************************************************************/
		case ControlEvent.TIMER:
			if (sp.isOpen()){
				iBytes = sp.readCheck();
				if (iBytes < 5){
					iCounter++;
					if(iCounter == 15){
						sp.close();
						text[0]="GPS Signal Lost";
						text[1] = text[2] = text[3] = text[4] = text[5] = text[6] = text[7] = "";
						repaint();
						iCounter = 0;
						gpsDataLogger.szValid = "";
						gpsDataLogger.szTime = "";
					}
				}else{
					iCounter = 0;
					processInput();
				}break;}					
		case ControlEvent.PRESSED:
			if (e.target == btnRestartGps){
				InputDialog id = new InputDialog("Reset COM port", " Please enter a different| COM port number, or leave| the current one and press,|    'Restart'. | The default COM port is 8.",Convert.toString(gpsDataLogger.iPortNumber), new String[]{"Restart","Cancel"});
				id.popupBlockingModal();			
				if (id.getPressedButtonIndex()==0){
					String szTemp = id.getValue();
					gpsDataLogger.iPortNumber = Convert.toInt(szTemp);
					restartGps(); }break;			
			}
			else if (e.target == btnHelp){				
				mbBluetoothHelp = new MessageBox("Bluetooth Help","Dell Axim settings are: |1)GPS Program Port = COM3, GPS |hardware port = COM1 2.)Bluetooth |Incoming port = COM7, GARMIN GPS |10 = COM8. For Lap/Desktop, determine |what COM port Bluetooth is using, then | press the button at the lower right and | adjust the COM port accordingly.");	
				mbBluetoothHelp.setUnpopDelay(15000);
				mbBluetoothHelp.popupBlockingModal();	
			}break;
		}
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产综合久久久久久久久久 | 国产成人夜色高潮福利影视| 国产精品一区专区| 在线观看日韩高清av| 久久一区二区三区四区| 亚洲视频在线一区| 久久疯狂做爰流白浆xx| 一本大道久久a久久综合婷婷| 日本黄色一区二区| 一区二区成人在线视频| 精品国产区一区| 伊人夜夜躁av伊人久久| 精品一区二区在线观看| 在线观看免费亚洲| 日韩中文字幕亚洲一区二区va在线| 麻豆成人在线观看| 欧美日韩一区二区三区高清| 国产精品乱人伦一区二区| 毛片av一区二区三区| 欧美在线短视频| 亚洲欧洲精品一区二区精品久久久| 美女诱惑一区二区| 欧美丰满少妇xxxxx高潮对白| 亚洲欧洲精品一区二区三区| 国产麻豆一精品一av一免费 | 久久久久国产精品厨房| 蜜臀av性久久久久av蜜臀妖精| 久久亚洲综合av| 欧美精品一区二区三区高清aⅴ| 国产拍揄自揄精品视频麻豆| 久久99国内精品| 制服丝袜亚洲色图| 日本女优在线视频一区二区| 777xxx欧美| 首页国产丝袜综合| 欧美一级高清片| 丝袜亚洲精品中文字幕一区| 精品视频在线看| 婷婷夜色潮精品综合在线| 精品视频免费看| 亚洲成人精品一区二区| 麻豆91免费看| 精品国产欧美一区二区| 奇米四色…亚洲| 欧美片网站yy| 视频一区二区不卡| 91.麻豆视频| 天堂久久久久va久久久久| 欧美视频一区二区三区四区| 一区二区三区在线视频观看58| 粉嫩在线一区二区三区视频| 日韩精品一区二区三区蜜臀| 久久国产福利国产秒拍| 欧美午夜精品久久久久久超碰| 亚洲老司机在线| 欧美丝袜丝nylons| 午夜不卡av在线| 91精品久久久久久久久99蜜臂| 日韩电影免费一区| 日韩欧美一区二区免费| 乱一区二区av| 久久精品视频在线看| 国产.欧美.日韩| 亚洲人精品午夜| 欧美日韩一级视频| 久久99最新地址| 国产亚洲欧美中文| 91在线云播放| 天天综合色天天综合色h| 欧美电视剧免费观看| 国产成人精品亚洲日本在线桃色| 国产欧美视频一区二区三区| 成人性视频网站| 一区二区三区在线免费观看| 欧美嫩在线观看| 精品一区二区久久久| 国产精品伦理在线| 欧美三电影在线| 精品影视av免费| 亚洲免费视频成人| 欧美日韩高清一区二区不卡| 国产激情视频一区二区在线观看| 国产精品你懂的| 欧美片网站yy| 成人综合在线网站| 亚洲男人的天堂网| 日韩欧美一级二级三级久久久| 成人福利视频在线| 亚洲国产精品自拍| 综合久久综合久久| 日韩一区二区在线观看| 99热精品国产| 奇米色777欧美一区二区| 国产精品午夜在线| 欧美一区二区三区日韩视频| 不卡的av网站| 日韩va欧美va亚洲va久久| 中文字幕一区二区三区在线播放 | 天天综合天天做天天综合| 久久综合资源网| 欧美日韩精品一区二区三区四区 | 91麻豆精品国产自产在线| 成人午夜视频福利| 日本aⅴ精品一区二区三区 | 99这里都是精品| 六月婷婷色综合| 亚洲午夜精品一区二区三区他趣| 久久久久国产精品麻豆ai换脸 | 精品一二线国产| 日韩制服丝袜av| 亚洲狠狠丁香婷婷综合久久久| 国产欧美一区二区三区在线老狼| 欧美色视频一区| 日本道色综合久久| 成人福利视频在线看| 免费在线欧美视频| 日本不卡一区二区三区| 亚洲影视在线观看| 亚洲精品日韩一| 中文字幕亚洲一区二区av在线| 久久九九99视频| 精品国产91亚洲一区二区三区婷婷| 欧美猛男男办公室激情| 91麻豆免费视频| 99国内精品久久| 成人短视频下载| 色偷偷久久一区二区三区| av亚洲精华国产精华| 国产iv一区二区三区| 国产高清久久久久| 国产成人午夜电影网| 国产精品中文字幕欧美| 国产一区二区视频在线| 国产在线播放一区三区四| 久久精品国产免费| 国内精品久久久久影院色| 热久久一区二区| 国产精品12区| 久久久久久久久99精品| 欧洲av在线精品| 在线视频国产一区| 欧美男女性生活在线直播观看| 欧美三级电影在线观看| 欧美一卡二卡三卡| 精品盗摄一区二区三区| 欧美国产精品久久| 成人免费在线视频观看| 一区二区三区在线免费| 午夜精品久久久久久久99水蜜桃 | 一区二区中文视频| 亚洲欧美一区二区三区久本道91 | 欧美在线免费观看视频| 欧美视频在线不卡| 欧美久久一二区| 日韩一级成人av| 国产精品无人区| 一区二区三区国产豹纹内裤在线| 五月婷婷欧美视频| 国产一区在线观看视频| 风间由美性色一区二区三区| 一本到三区不卡视频| 制服丝袜av成人在线看| 欧美变态口味重另类| 国产精品乱人伦一区二区| 欧美性大战久久| 日本丰满少妇一区二区三区| 国产欧美视频一区二区三区| 国产精品理论片在线观看| 亚洲已满18点击进入久久| 蜜桃久久久久久| 不卡免费追剧大全电视剧网站| 欧美性大战久久| 2020国产精品久久精品美国| 亚洲精品亚洲人成人网| 精品一区二区综合| 91福利国产精品| 精品久久久久久久久久久久包黑料| 日本一区二区三区高清不卡| 亚洲精品自拍动漫在线| 国产一区二区影院| 欧美色区777第一页| 国产情人综合久久777777| 亚洲午夜精品在线| 国产成人精品一区二区三区四区| 欧美日韩亚洲国产综合| 中文字幕国产精品一区二区| 午夜精品123| 在线日韩av片| 国产精品你懂的| 精品一区二区三区在线播放视频 | 成人免费观看视频| 成人免费视频一区二区| 制服丝袜国产精品| 一区二区三区在线观看动漫| 国产精品亚洲专一区二区三区| 欧美日韩国产一二三| 亚洲另类色综合网站| 成人开心网精品视频| 欧美精品一区二区在线观看| 同产精品九九九|