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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? nmeaparsertest.java

?? 一套j2me的UI界面庫
?? JAVA
字號:
package org.j4me.bluetoothgps;

import j2meunit.framework.*;
import org.j4me.*;

/**
 * Tests the <code>NMEAParser</code> class.  It accepts raw NMEA data coming
 * in from the Bluetooth GPS device.  It then parses it, throws out
 * corrupt data, and takes the parsed sentences and deconstructs them.
 * 
 * @see org.j4me.bluetoothgps.NMEAParser
 */
public class NMEAParserTest
	extends J4METestCase
{
	public NMEAParserTest ()
	{
		super();
	}
	
	public NMEAParserTest (String name, TestMethod method)
	{
		super( name, method );
	}
	
	public Test suite ()
	{
		TestSuite suite = new TestSuite();
		
		suite.addTest(new NMEAParserTest("testByteArrayFinds", new TestMethod() 
				{ public void run(TestCase tc) {((NMEAParserTest) tc).testByteArrayFinds(); } }));
		suite.addTest(new NMEAParserTest("testParseCorruptSentence", new TestMethod() 
				{ public void run(TestCase tc) {((NMEAParserTest) tc).testParseCorruptSentence(); } }));
		suite.addTest(new NMEAParserTest("testThrowAwaySentence", new TestMethod() 
				{ public void run(TestCase tc) {((NMEAParserTest) tc).testThrowAwaySentence(); } }));
		suite.addTest(new NMEAParserTest("testGPRMC", new TestMethod() 
				{ public void run(TestCase tc) {((NMEAParserTest) tc).testGPRMC(); } }));
		suite.addTest(new NMEAParserTest("testGPGGA", new TestMethod() 
				{ public void run(TestCase tc) {((NMEAParserTest) tc).testGPGGA(); } }));
		suite.addTest(new NMEAParserTest("testGPGSA", new TestMethod() 
				{ public void run(TestCase tc) {((NMEAParserTest) tc).testGPGSA(); } }));
		suite.addTest(new NMEAParserTest("testBatchData", new TestMethod() 
				{ public void run(TestCase tc) {((NMEAParserTest) tc).testBatchData(); } }));
		
		return suite;
	}
	
	/**
	 * Tests the <code>indexOf</code> and <code>lastIndexOf</code> methods.  They
	 * scan a byte array similarly to <code>String.indexOf</code> and
	 * <code>String.lastIndexOf</code>.
	 */
	public void testByteArrayFinds ()
	{
		byte[] array = "abcdefghijklmnopqrstuvwxyz".getBytes();
		byte match = 'z';

		// indexOf().
		int index = NMEAParser.indexOf( array, match, 20, array.length );
		assertEquals("indexOf() should find z last", array.length - 1, index);
		
		index = NMEAParser.indexOf( array, match, 0, array.length - 1 );
		assertEquals("indexOf() should stop before z", -1, index);
		
		// lastIndexOf().
		index = NMEAParser.lastIndexOf( array, match, array.length - 1 );
		assertEquals("lastIndexOf() should find z when starting at the end", array.length - 1, index);
		
		index = NMEAParser.lastIndexOf( array, match, array.length - 2 );
		assertEquals("lastIndexOf() should not find z when starting before it", -1, index);
	}
	
	/**
	 * Tests the parser knows how to identify a corrupt NMEA sentence
	 * (this is common) and throws it away.  Sentences are verified by
	 * their length, starting and ending characters, and by checksums.
	 */
	public void testParseCorruptSentence ()
	{
		// Invalid checksum (should be 16, not 15).
		String sentence = "$GPRMC,190350.000,A,3746.0164,N,12226.1176,W,0.45,210.68,031006,,*15\r\n";
		byte[] input = sentence.getBytes();
		
		NMEAParser parser = new NMEAParser();
		int parsedSentences = parser.parse( input, input.length );
		assertEquals("Invalid checksum should have been discarded", NMEAParser.TYPE_NONE, parsedSentences);

		
		// No opening "$" character provided.
		sentence = "GPGGA,190353.000,3746.0164,N,12226.1176,W,1,08,1.0,67.5,M,-25.3,M,,0000*56\r\n";
		input = sentence.getBytes();
		
		parser = new NMEAParser();
		parsedSentences = parser.parse( input, input.length );
		assertEquals("No opening '$' should have been discarded", NMEAParser.TYPE_NONE, parsedSentences);

		
		// Partial sentence.
		sentence = "1171,W,1,08,1.0,68.8,M,-25.3,M,,0000*5C\r\n";
		input = sentence.getBytes();
		
		parser = new NMEAParser();
		parsedSentences = parser.parse( input, input.length );
		assertEquals("Partial sentence should have been discarded", NMEAParser.TYPE_NONE, parsedSentences);

		
		// Two sentences merged together.
		sentence = "$GPGGA,063606.000,3746.0183,N,12226.1274,W,1,05,2.1,55.1,3,23,16,13,27,25,,,,,,,,4.1,2.1,3.6*37\r\n";
		input = sentence.getBytes();
		
		parser = new NMEAParser();
		parsedSentences = parser.parse( input, input.length );
		assertEquals("Merged sentences should have been discarded", NMEAParser.TYPE_NONE, parsedSentences);
	}

	/**
	 * Tests that sentences which provide no useful JSR 179 data are
	 * discarded.
	 */
	public void testThrowAwaySentence ()
	{
		// A legitimate NMEA sentence we don't care about.
		String sentence = "$GPGSV,3,2,09,19,32,069,27,10,25,288,25,03,14,043,30,23,12,143,16*70\r\n";
		byte[] input = sentence.getBytes();

		NMEAParser parser = new NMEAParser();
		int parsedSentences = parser.parse( input, input.length );
		assertEquals("NMEA sentence should have been discarded", NMEAParser.TYPE_NONE, parsedSentences);

		
		// A legitimate propritary SiRF sentence.
		//   It does not contain the standard checksum of NMEA sentences
		//   which makes the test a bit trickier.
		sentence = "$PSRFTXT,Baud rate: 38400  System clock: 1058.797MHz\r\n";
		input = sentence.getBytes();

		parser = new NMEAParser();
		parsedSentences = parser.parse( input, input.length );
		assertEquals("SiRF sentence should have been discarded", NMEAParser.TYPE_NONE, parsedSentences);
	}
	
	/**
	 * Tests a valid $GPRMC sentence is properly parsed.  This sentence
	 * provides latitude, longitude, and speed.
	 */
	public void testGPRMC ()
	{
		String sentence = "$GPRMC,063605.000,A,3746.0188,N,12226.1276,W,0.40,130.67,140207,,*10\r\n";
		byte[] input = sentence.getBytes();

		NMEAParser parser = new NMEAParser();
		int parsedSentences = parser.parse( input, input.length );
		assertEquals("GPRMC sentence should have been parsed", NMEAParser.TYPE_GPRMC, parsedSentences);

		GPSRecord record = parser.getRecordBuffer();
		assertEquals("GPRMC latitude", "3746.0188", record.lattitude);
		assertEquals("GPRMC latitude direction", 'N', record.lattitudeDirection);
		assertEquals("GPRMC longitude", "12226.1276", record.longitude);
		assertEquals("GPRMC longitude direction", 'W', record.longitudeDirection);
		assertEquals("GPRMC speed", "0.40", record.speed);
		assertEquals("GPRMC course", "130.67", record.course);
	}
	
	/**
	 * Tests a valid $GPGGA sentence is properly parsed.  This sentence
	 * provides altitude.
	 */
	public void testGPGGA ()
	{
		String sentence = "$GPGGA,063606.000,3746.0183,N,12226.1274,W,1,05,2.1,55.1,M,-25.3,M,,0000*5C\r\n";
		byte[] input = sentence.getBytes();

		NMEAParser parser = new NMEAParser();
		int parsedSentences = parser.parse( input, input.length );
		assertEquals("GPGGA sentence should have been parsed", NMEAParser.TYPE_GPGGA, parsedSentences);

		GPSRecord record = parser.getRecordBuffer();
		assertEquals("GPGGA altitude", "55.1", record.altitude);
	}
	
	/**
	 * Tests a valid $GPGSA sentence is properly parsed.  This sentence
	 * provides horizontal and veritical accuracy.
	 */
	public void testGPGSA ()
	{
		String sentence = "$GPGSA,A,3,23,16,13,27,25,,,,,,,,4.1,2.1,3.6*37\r\n";
		byte[] input = sentence.getBytes();

		NMEAParser parser = new NMEAParser();
		int parsedSentences = parser.parse( input, input.length );
		assertEquals("GPGSA sentence should have been parsed", NMEAParser.TYPE_GPGSA, parsedSentences);

		GPSRecord record = parser.getRecordBuffer();
		assertEquals("GPGSA horizontal accuracy", "2.1", record.hdop);
		assertEquals("GPGSA vertical accuracy", "3.6", record.vdop);
	}

	/**
	 * Tests a mix of incoming sentences to make sure the outcome is
	 * correct.  The sentences contain all of the above tests and tie
	 * them together. 
	 */
	public void testBatchData ()
	{
		// GPGSV and PSRFTXT sentences should be discarded.
		// First GPRMC should be ovewritten.
		// Last GPRMC has checksum error (should not be "EE") so should be discarded.
		String sentences =
			"$GPGSV,3,1,11,23,67,353,35,20,58,177,26,16,44,074,34,13,41,308,29*76\r\n" +
			"$GPGSV,3,2,11,25,36,049,,27,25,246,32,04,16,292,,01,14,093,*70\r\n" +
			"$GPGSV,3,3,11,31,05,054,,03,02,128,,08,00,236,*4A\r\n" +
			"$GPRMC,063559.998,A,3746.0171,N,12226.1277,W,0.50,149.79,140207,,*15\r\n" +
			"$PSRFTXT,Version:GSW3.1.1TO_3.1.00.07-C23P1.00\r\n" +
			"$PSRFTXT,Version2:F-GPS-03-0510032\r\n" +
			"$PSRFTXT,WAAS Enable\r\n" +
			"$PSRFTXT,TOW:  282973\r\n" +
			"$PSRFTXT,WK:   1414\r\n" +
			"$PSRFTXT,POS:  -2707674 -4260780 3885049\r\n" +
			"$PSRFTXT,CLK:  94976\r\n" +
			"$PSRFTXT,CHNL: 12\r\n" +
			"$PSRFTXT,Baud rate: 38400  System clock: 1058.797MHz\r\n" +
			"$GPGGA,063601.002,3746.0171,N,12226.1278,W,1,05,2.1,59.7,M,-25.3,M,,0000*52\r\n" +
			"$GPGSA,A,3,23,16,13,27,,,,,,,,,6.0,2.8,5.3*39\r\n" +
			"$GPRMC,063601.002,A,3746.0171,N,12226.1278,W,0.47,305.20,140207,,*1E\r\n" +
			"$PSRFTXT,Version:GSW3.1.1TO_3.1.00.07-C23P1.00\r\n" +
			"$GPRMC,063601.002,A,3745.1313,N,12226.6666,W,0.47,305.20,140207,,*EE\r\n";
		byte[] input = sentences.getBytes();

		NMEAParser parser = new NMEAParser();
		int parsedSentences = NMEAParser.TYPE_NONE;
		
		// Loop through the sentences in chunks to
		// make sure they are assembled properly.
		for ( int i = 0; i < input.length; i += 35 )
		{
			// Get the end position.
			int j = i + 35;
			if ( j >= input.length ) j = input.length - 1;
			
			// Chop out our chunk.
			int size = j - i;
			byte[] chunk = new byte[size];
			System.arraycopy( input, i, chunk, 0, size );
			
			// Parse the chunk.
			parsedSentences |= parser.parse( chunk, size );
		}

		assertEquals("All sentences should have been parsed", NMEAParser.ALL_TYPES_MASK, parsedSentences);

		// Verify the contents are correct.
		GPSRecord record = parser.getRecordBuffer();
		assertEquals("GPRMC latitude", "3746.0171", record.lattitude);
		assertEquals("GPRMC latitude direction", 'N', record.lattitudeDirection);
		assertEquals("GPRMC longitude", "12226.1278", record.longitude);
		assertEquals("GPRMC longitude direction", 'W', record.longitudeDirection);
		assertEquals("GPRMC speed", "0.47", record.speed);
		assertEquals("GPRMC course", "305.20", record.course);
		assertEquals("GPGGA altitude", "59.7", record.altitude);
		assertEquals("GPGSA horizontal accuracy", "2.8", record.hdop);
		assertEquals("GPGSA vertical accuracy", "5.3", record.vdop);
	}
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲私人影院在线观看| 制服丝袜亚洲色图| 又紧又大又爽精品一区二区| 国产精品乱人伦一区二区| 26uuu亚洲综合色欧美 | 亚洲天堂久久久久久久| 国产精品国产精品国产专区不蜜| 国产亚洲欧美激情| 亚洲国产成人午夜在线一区| 欧美一区二区三区视频免费| 91麻豆精品国产综合久久久久久 | 亚洲精品国产精品乱码不99| 最新日韩在线视频| 亚洲成人免费电影| 看片网站欧美日韩| 美腿丝袜亚洲综合| 成人永久看片免费视频天堂| 色中色一区二区| 欧美大片日本大片免费观看| 欧美伦理视频网站| 国产精品久久久久婷婷二区次| 亚洲免费观看高清完整版在线观看熊| 一区二区三区国产精华| 一区二区三区欧美日| 日本va欧美va精品| 国产剧情一区二区| 欧美图区在线视频| 国产精品免费aⅴ片在线观看| 综合久久久久久| 国产大片一区二区| 欧美大片在线观看一区二区| 国产精品久久久久一区| 狠狠色狠狠色综合系列| 在线免费不卡视频| 亚洲三级在线免费观看| 国产成人精品免费看| 精品美女在线观看| 午夜精品久久久| 91热门视频在线观看| 国产亚洲婷婷免费| 韩国av一区二区三区四区| 久久在线观看免费| 成人av电影在线观看| 亚洲美女视频一区| 在线免费观看日本欧美| 奇米精品一区二区三区四区| 欧美成人video| 成人av资源在线| 亚洲午夜av在线| 久久午夜羞羞影院免费观看| 国产成人亚洲精品青草天美| 亚洲日本在线a| 精品国产免费人成在线观看| 92精品国产成人观看免费| 亚洲一区二区三区不卡国产欧美| 日韩欧美一区中文| 成人美女视频在线观看18| 香蕉乱码成人久久天堂爱免费| 日韩欧美一区在线| 91久久精品日日躁夜夜躁欧美| 免费在线视频一区| 亚洲v中文字幕| 亚洲美女在线国产| 精品久久久久一区| 欧美视频完全免费看| 成人精品电影在线观看| 奇米在线7777在线精品| 亚洲国产cao| 亚洲一区在线观看免费观看电影高清| 精品成人佐山爱一区二区| 欧美日韩免费一区二区三区视频| 国产乱码精品一区二区三区忘忧草| 亚洲成人一二三| 亚洲尤物视频在线| 一区二区三区在线播| 中文字幕一区av| 国产精品灌醉下药二区| 2020日本不卡一区二区视频| 日韩欧美在线影院| 精品国产精品网麻豆系列| 日韩欧美电影一区| 日韩色在线观看| 2021国产精品久久精品| 国产欧美一区二区精品久导航 | 久久99精品久久久久久久久久久久 | 中文字幕一区二区三区不卡| 中文字幕不卡三区| 亚洲免费观看视频| 亚洲成a天堂v人片| 青青草国产成人av片免费| 日韩精品一二三| 午夜久久福利影院| 国产一区欧美二区| 91女人视频在线观看| 欧美一卡在线观看| 国产婷婷一区二区| 亚洲丶国产丶欧美一区二区三区| 午夜国产不卡在线观看视频| 国产一区二区三区四区五区美女| 91在线云播放| 欧美大度的电影原声| 亚洲蜜臀av乱码久久精品| 人妖欧美一区二区| 一本高清dvd不卡在线观看 | 久久66热偷产精品| 99精品久久久久久| 亚洲精品一区在线观看| 亚洲国产视频一区二区| 国产风韵犹存在线视精品| 欧美精品tushy高清| 国产欧美日韩另类视频免费观看| 亚洲免费高清视频在线| 风间由美一区二区三区在线观看 | 国产综合色在线视频区| 欧美日韩精品免费| 国产精品国产a级| 玉足女爽爽91| 日韩精品三区四区| 欧美日韩亚洲综合在线 | 欧美午夜精品久久久久久孕妇| wwwwxxxxx欧美| 精品在线视频一区| 日韩视频在线你懂得| 亚洲国产精品久久人人爱| 91同城在线观看| 亚洲蜜臀av乱码久久精品蜜桃| 国产一区欧美日韩| 中文字幕乱码一区二区免费| 国产自产2019最新不卡| 欧美成人艳星乳罩| 黄网站免费久久| 久久久91精品国产一区二区三区| 国产一区二区免费视频| 欧美激情一区在线| 欧洲av在线精品| 日日夜夜精品视频天天综合网| 91精品国产欧美一区二区18| 美女视频一区二区三区| 久久综合精品国产一区二区三区 | 欧美激情一区在线| 懂色一区二区三区免费观看| 亚洲欧美另类久久久精品| 欧美乱妇15p| 国产精品77777| 亚洲免费观看高清在线观看| 欧美一区永久视频免费观看| 亚洲综合免费观看高清在线观看| 亚洲色图制服丝袜| 色综合天天综合网天天看片| 一区二区欧美精品| 久久久亚洲综合| 欧美日韩精品久久久| 国产福利视频一区二区三区| 亚洲精品乱码久久久久久久久 | 成人av网站在线观看免费| 日韩理论片在线| 久久久久久一二三区| 欧美日本韩国一区| 91电影在线观看| 成人免费视频免费观看| 国产在线精品免费| 日本va欧美va欧美va精品| 国产精品视频一二| 欧美老肥妇做.爰bbww视频| 99视频在线观看一区三区| 国产一区二区三区不卡在线观看| 亚洲国产精品久久人人爱| 亚洲欧美另类小说| 国产精品久久久久久久久免费相片| 日韩美女主播在线视频一区二区三区| 91黄色免费观看| 91在线视频观看| 日本乱人伦aⅴ精品| 一本色道久久综合狠狠躁的推荐| av在线不卡电影| 97久久精品人人澡人人爽| 91视视频在线观看入口直接观看www| www.激情成人| 一本一本久久a久久精品综合麻豆| 色综合天天综合网国产成人综合天 | 26uuu亚洲综合色| 日本一区二区成人| 亚洲男同性恋视频| 免费人成精品欧美精品 | 久久精品国产精品青草| 亚洲最大的成人av| 亚洲乱码中文字幕| 中文字幕五月欧美| 亚洲欧美日韩在线不卡| 亚洲伦理在线精品| 亚洲国产一区二区a毛片| 三级久久三级久久| 黄色精品一二区| 99久久99久久免费精品蜜臀| 91麻豆国产在线观看| 欧美日本韩国一区二区三区视频| 91精品麻豆日日躁夜夜躁| 久久久青草青青国产亚洲免观| 国产精品免费av| 午夜精品福利一区二区蜜股av|