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

📄 productdata.java

📁 基于Java的地图数据管理软件。使用MySQL数据库管理系统。
💻 JAVA
字号:
package net.aetherial.gis.garmin;

import java.io.*;
import java.util.*;
import javax.comm.*;
import net.aetherial.gis.garmin.*;

public class ProductData
{
	private int productID;
	private float softwareVersion;
	private String about;
	private String[] productCapability;
        private LinkPacketConnection lpc=null;
	public ProductData ()
	{
		byte[] rawBytes = new byte[2];
		rawBytes[0] = 0;
		rawBytes[1] = 0;
                //System.out.println("ProductData.ProductData():1");
		//LinkPacketConnection lpc =null;
               lpc = new LinkPacketConnection ();
                //System.out.println("ProductData.ProductData():2");
		LinkPacket ProductRequest = new LinkPacket (Garmin.PRODUCT_RQST, rawBytes);
                //System.out.println("ProductData.ProductData():3");
		lpc.send (ProductRequest);
                //System.out.println("ProductData.ProductData():lpc.send (ProductRequest);!");
		LinkPacket ProductData = lpc.receive ();

 		LinkPacket productCap = lpc.receive ();

		rawBytes = ProductData.getPacketData ();

		productID = ((int) rawBytes[1] * 256) + ((int) rawBytes[0]);
		softwareVersion = ((float) (((int) rawBytes[3] * 256) + ((int) rawBytes[2]))) / 100;

		ByteArrayOutputStream baos = new ByteArrayOutputStream ();

		for (int i = 4; i < rawBytes.length && rawBytes[i] != (byte) 0; i++)
		{
			baos.write (rawBytes[i]);
		}

		byte[] aboutBytes = baos.toByteArray ();

		try
		{
			about = new String (aboutBytes, 0, aboutBytes.length, "US-ASCII");
		}
		catch (UnsupportedEncodingException e)
		{
			about = new String ("Unknown");
			System.err.println (e);
		}

		byte[] dataBytes = productCap.getPacketData ();
		productCapability = new String[dataBytes.length / 3];

		for (int i = 0; i < dataBytes.length; i += 3)
		{
			int db1, db2;

			if ((int) dataBytes[i+1] < 0)
				db1 = 256 + (int) dataBytes[i+1];
			else
				db1 = (int) dataBytes[i+1];

			if ((int) dataBytes[i+2] < 0)
				db2 = 256 + (int) dataBytes[i+2];
			else
				db2 = (int) dataBytes[i+2];

			int dataField = (db2 * 256) + db1;

			String dataString;

			if (dataField < 10)
				dataString = new String ("00"+dataField);
			else if (dataField < 100)
				dataString = new String ("0"+dataField);
			else
				dataString = new String (""+dataField);

			char c = (char) dataBytes[i];

			productCapability[i / 3] = new String (c+dataString);
		}

		lpc.destroy ();
	}
        public void destroy(){
          lpc.destroy();
          lpc = null;
        }
	public String[] getProductCapabilities ()
	{
		return productCapability;
	}

	public int getProductID ()
	{
		return productID;
	}

	public float getSoftwareVersion ()
	{
		return softwareVersion;
	}

	public String getProductDescription ()
	{
		return about;
	}

	public String[] getProtocols (String prefix)
	{
		int count = 0;

		for (int i = 0; i < productCapability.length; i++)
		{
			if (productCapability[i].startsWith (prefix))
				count++;
		}

		String protocols[] = new String[count];

		count = 0;

		for (int i = 0; i < productCapability.length; i++)
		{
			if (productCapability[i].startsWith (prefix))
			{
				protocols[count] = new String (productCapability[i]);
				count++;
			}
		}

		return protocols;
	}

	public String[] getLinkProtocols ()
	{
		return getProtocols ("L");
	}

	public String[] getPhysicalProtocols ()
	{
		return getProtocols ("P");
	}

	public String[] getApplicationProtocols ()
	{
		return getProtocols ("A");
	}

	public String[] getDataFormats ()
	{
		return getProtocols ("D");
	}
        public void  printAll(){
          String[] str = null;
          System.out.println("ProductCapabilities:");
          str = this.getProductCapabilities();
          this.printArray(str);
          System.out.println("ProductID");
          System.out.println(this.getProductID());
          System.out.println("SoftwareVersion:");
          System.out.println(this.getSoftwareVersion());
          System.out.println("ProductDescription:");
          System.out.println(this.getProductDescription());
          System.out.println("LinkProtocols:");
          str = this.getLinkProtocols();
          this.printArray(str);
          System.out.println("PhysicalProtocols:");
          str = this.getPhysicalProtocols();
          this.printArray(str);
          System.out.println("ApplicationProtocols:");
          str = this.getApplicationProtocols();
          this.printArray(str);
          System.out.println("DataFormats:");
          str = this.getDataFormats();
          this.printArray(str);
          System.out.println("");
        }
        private void printArray(String[] str){
          System.out.println("");
          for(int i =0;i<str.length;i++){
            System.out.print(str[i]+"/");
          }
        }
}

⌨️ 快捷键说明

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