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

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

?? sgtin.java

?? 一個開源的rfid middleware 資料
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
package com.refactored_networks.epc.epcnetwork;/** * Copyright 2005 Refactored Networks, LLC   Licensed under the Apache License, Version 2.0 (the "License");   you may not use this file except in compliance with the License.   You may obtain a copy of the License at       http://www.apache.org/licenses/LICENSE-2.0   Unless required by applicable law or agreed to in writing, software   distributed under the License is distributed on an "AS IS" BASIS,   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   See the License for the specific language governing permissions and   limitations under the License. */import java.util.BitSet;import java.util.Properties;import java.util.StringTokenizer;public class SGTIN extends EPC {	protected String sManagerId;	protected String sProductId;	protected String sSerialNum;	protected String sFilter;	protected BitSet bits;	private ParseUtils utils = new ParseUtils();	/**	 * @param inEPC	 * @param iConfig	 * @throws EPCParseException	 */	public SGTIN(BitSet inEPC, Properties iConfig) throws EPCParseException {		super(inEPC, iConfig);		if(inEPC.length() == 64) {			parse64bit(ParseUtils.BitsToBytes(inEPC));		} else if(inEPC.length() == 96) {			parse96bit(ParseUtils.BitsToBytes(inEPC));		}	}		public SGTIN(byte[] inEPC,Properties config) throws EPCParseException {		super(inEPC,config);		if((inEPC[0] & 0xFF) == 48) {			parse96bit(inEPC);		} else if(((inEPC[0]>>6) & 3) == 2) {			parse64bit(inEPC);		} else {			throw new EPCParseException("Binary EPC's header does not correspond to an SGTIN");		}	}	/**	 * @param inEPC	 * @param flags	 * @param iConfig	 * @throws EPCParseException	 */	public SGTIN(String inEPC, int flags, Properties iConfig) throws EPCParseException {		super(inEPC, flags, iConfig);				if((flags & EPC.CANONICAL) != 0) {			parseCanonical(inEPC);		} else if((flags & EPC.NINETYSIXBIT) != 0) {			if((flags & EPC.BINARY) != 0) {				parse96bit(utils.BinaryStringToByteArray(inEPC));			} else if((flags & EPC.DECIMAL) !=0 ) {				parse96bit(utils.DecimalStringToByteArray(inEPC));			} else if((flags & EPC.HEX) != 0) {				parse96bit(utils.HexStringToByteArray(inEPC));			} else throw new EPCParseException("Unable to interpret flags in a meaningful way:" + flags);		} else if((flags & EPC.SIXTYFOURBIT) != 0) {			if((flags & EPC.BINARY) != 0) {				parse64bit(utils.BinaryStringToByteArray(inEPC));			} else if((flags & EPC.DECIMAL) !=0 ) {				parse64bit(utils.DecimalStringToByteArray(inEPC));			} else if((flags & EPC.HEX) != 0) {				parse64bit(utils.HexStringToByteArray(inEPC));			} else throw new EPCParseException("Unable to interpret flags in a meaningful way:" + flags);		}	}		private void parse64bit(byte[] inEPC) throws EPCParseException {		bits = new BitSet(((inEPC.length)*8)+1);		bits.set(0);		int j=0;        	for (int i=((inEPC.length)*8)-1;i>=0; i--) {			if(((inEPC[(inEPC.length-1) - (j/8)])&(1<<(j%8))) > 0) {				bits.set(i+1);			} else {				bits.set(i+1,false);			}			j++;        	}		long lHeader = ParseUtils.BitsToInt(bits.get(1,3),2);		long lFilter = ParseUtils.BitsToInt(bits.get(3,6),3);		long lIndex = ParseUtils.BitsToInt(bits.get(6,20),14);		long lItem = ParseUtils.BitsToInt(bits.get(20,40),20);		long lSerial = ParseUtils.BitsToInt(bits.get(40,65),25);						sSerialNum = Long.toString(lSerial);		sFilter = Long.toString(lFilter);		try {			CompanyPrefixIndexDB indexDB = new CompanyPrefixIndexDB(config);			sManagerId = indexDB.Lookup(Long.toString(lIndex));		} catch(NoSuchIndexException noindex) {			throw new EPCParseException("The index value was not found in " + config.getProperty("method"));		} catch(Exception e) {			throw new EPCParseException(e.getMessage());		}		sProductId = utils.ZeroPad(Long.toString(lItem),(13-sManagerId.length()));	}	private void parse96bit(byte[] inEPC) throws EPCParseException {		bits = new BitSet(((inEPC.length)*8)+1);		bits.set(0);		int j=0;        	for (int i=((inEPC.length)*8)-1;i>=0; i--) {			if(((inEPC[(inEPC.length-1) - (j/8)])&(1<<(j%8))) > 0) {				bits.set(i+1);			} else {				bits.set(i+1,false);			}			j++;        	}		long lHeader = ParseUtils.BitsToInt(bits.get(1,9),8);		if(lHeader != 48) {			throw new EPCParseException("Attempting to parse an EPC with the wrong header value (" + lHeader + ")");		}		long lFilter = ParseUtils.BitsToInt(bits.get(9,12),3);		sFilter = Long.toString(lFilter);		long lPartition = ParseUtils.BitsToInt(bits.get(12,15),3);		long lSerial = ParseUtils.BitsToInt(bits.get(59,97),38);		switch((int) lPartition) {			case 0:				sManagerId = utils.ZeroPad(Long.toString(ParseUtils.BitsToInt(bits.get(15,55),40)),12);				sProductId = utils.ZeroPad(Long.toString(ParseUtils.BitsToInt(bits.get(55,59),4)),1);				break;			case 1:				sManagerId = utils.ZeroPad(Long.toString(ParseUtils.BitsToInt(bits.get(15,52),37)),11);				sProductId = utils.ZeroPad(Long.toString(ParseUtils.BitsToInt(bits.get(52,59),7)),2);				break;			case 2:				sManagerId = utils.ZeroPad(Long.toString(ParseUtils.BitsToInt(bits.get(15,49),34)),10);				sProductId = utils.ZeroPad(Long.toString(ParseUtils.BitsToInt(bits.get(49,59),10)),3);				break;			case 3:				sManagerId = utils.ZeroPad(Long.toString(ParseUtils.BitsToInt(bits.get(15,45),30)),9);				sProductId = utils.ZeroPad(Long.toString(ParseUtils.BitsToInt(bits.get(45,59),14)),4);				break;			case 4:				sManagerId = utils.ZeroPad(Long.toString(ParseUtils.BitsToInt(bits.get(15,42),27)),8);				sProductId = utils.ZeroPad(Long.toString(ParseUtils.BitsToInt(bits.get(42,59),17)),5);				break;			case 5:				sManagerId = utils.ZeroPad(Long.toString(ParseUtils.BitsToInt(bits.get(15,39),24)),7);				sProductId = utils.ZeroPad(Long.toString(ParseUtils.BitsToInt(bits.get(39,59),20)),6);				break;			case 6:				sManagerId = utils.ZeroPad(Long.toString(ParseUtils.BitsToInt(bits.get(15,35),20)),6);				sProductId = utils.ZeroPad(Long.toString(ParseUtils.BitsToInt(bits.get(35,59),24)),7);				break;		       default: 				throw new EPCParseException("partition value invalid (" + lPartition + ")");		}		sSerialNum = Long.toString(lSerial);	}	public void parseCanonical(String inEPC) throws EPCParseException {		// The parser		StringTokenizer st = new StringTokenizer(inEPC, ":.");		// Is there anything to parse?		if(!st.hasMoreTokens()) {			throw new EPCParseException("Parse error. Not enough parse tokens.");		}		// If this isn't a URN, then throw an exception		String sURN = st.nextToken();		if(!sURN.equalsIgnoreCase("urn")) {			throw new EPCParseException("Not a URN. Scheme is " + sURN);		}		// Are there more tokens?		if(!st.hasMoreTokens()) {			throw new EPCParseException("Parse error. Not enough parse tokens.");		}		// Is this an EPC? If not, then throw an exception		String sNID = st.nextToken();		if(!sNID.equalsIgnoreCase("epc")) {			throw new EPCParseException("Not an EPC. NID is " + sNID);		}		// Anything left?		if(!st.hasMoreTokens()) {			throw new EPCParseException("Parse error. Not enough parse tokens.");		}		// Is this an 'id' type of an EPC? If not, throw an exception		// We'll add the other types later....		String sEPCType = st.nextToken();		if(!sEPCType.equalsIgnoreCase("id")) {			throw new EPCParseException("Not a pure identify form of an EPC. Type is " + sEPCType);		}		// Anything left?		if(!st.hasMoreTokens()) {			throw new EPCParseException("Parse error. Not enough parse tokens.");		}		// Finally! Is this a valid EPC type? If so, then save		// that and end since any further parsing is handled by		// the subclass.		String sIdType = st.nextToken();		if(!sIdType.equalsIgnoreCase("sgtin")) {			throw new EPCParseException("Not an SGTIN. Type is " + sIdType);		}		sManagerId = st.nextToken();		if(sManagerId == null) {			throw new EPCParseException("No manager id found");		}		sProductId = st.nextToken();		if(sProductId == null) {			throw new EPCParseException("No product id found");		}		sSerialNum= st.nextToken();		if(sSerialNum == null) {			throw new EPCParseException("No serial number found");		}	}	public String getSubNamespaceName() {		return("sgtin");	}	public String getCanonicalEncoding() {		return("urn:epc:id:sgtin:" + sManagerId + "." + sProductId + "." + sSerialNum);	}	public String getONSEncoding() {		return(sProductId + "." + sManagerId + ".sgtin.id.");	}	public BitSet getBinaryEncodingBitSet(int flags) throws EPCParseException {		if((flags & EPC.NINETYSIXBIT) != 0) {			return(build96bit());		} else if((flags & EPC.SIXTYFOURBIT) != 0 ) {			return(build64bit());		}		return(null);	}	private BitSet build64bit() throws EPCParseException {		BitSet mybits = new BitSet(65);		String sIndex;		mybits.set(0); // the leading bit placeholder		mybits.set(1); // the 64bit header for an SGTIN		mybits.set(2,false);		String bsFilter = utils.ZeroPad(Integer.toString(Integer.parseInt(sFilter),2),3);		for(int i=0;i<bsFilter.length();i++) 			if(bsFilter.charAt(i) == '1') {				mybits.set(i+3);			} else {				mybits.set(i+3,false);			}		try {			CompanyPrefixIndexDB indexDB = new CompanyPrefixIndexDB(config);			sIndex = indexDB.ReverseLookup(sManagerId);		} catch(NoSuchIndexException noindex) {			throw new EPCParseException("The index value was not found in " + config.getProperty("method"));		} catch(Exception e) {			throw new EPCParseException(e.getMessage());		}				String bsIndex = utils.ZeroPad(Integer.toString(Integer.parseInt(sIndex),2),14);		for(int i=0;i<bsIndex.length();i++) 			if(bsIndex.charAt(i) == '1') 				mybits.set(i+6);			else 				mybits.set(i+6,false);		String bsProductId = utils.ZeroPad(Integer.toString(Integer.parseInt(sProductId),2),20);		for(int i=0;i<bsProductId.length();i++) 			if(bsProductId.charAt(i) == '1') 				mybits.set(i+20);			else 				mybits.set(i+20,false);		String bsSerialNum = utils.ZeroPad(Long.toString(Long.parseLong(sSerialNum),2),25);		for(int i=0;i<25;i++) {						if(bsSerialNum.charAt(i) == '1') {				mybits.set(i+40);			} else { 				mybits.set(i+40,false);			}		}		return(mybits);	}	private BitSet build96bit() throws EPCParseException {		BitSet mybits = new BitSet(64);		mybits.set(0);		mybits.set(3);		mybits.set(4);		String bsFilter = utils.ZeroPad(Integer.toString(Integer.parseInt(sFilter),2),3);		for(int i=0;i<bsFilter.length();i++) 			if(bsFilter.charAt(i) == '1') {				mybits.set(i+9);			} else {				mybits.set(i+9,false);			}				String bsPartition;		String bsManagerId;		String bsProductId;		String bsSerialNum;				switch(sManagerId.length()) {		case 6:			System.out.println("sManagerId.length() = 6");			bsPartition = utils.ZeroPad(Integer.toString(6,2),3);			for(int i=0;i<bsPartition.length();i++) 				if(bsPartition.charAt(i) == '1') {					mybits.set(i+12);				} else {					mybits.set(i+12,false);				}			 bsManagerId = utils.ZeroPad(Long.toString(Long.parseLong(sManagerId),2),20);			for(int i=0;i<bsManagerId.length();i++) {				if(bsManagerId.charAt(i) == '1') 					mybits.set(15+i);				else 					mybits.set(15+i,false);			}			 bsProductId = utils.ZeroPad(Long.toString(Long.parseLong(sProductId),2),24);			for(int i=0;i<bsProductId.length();i++) {				if(bsProductId.charAt(i) == '1') 					mybits.set(35+i);				else 					mybits.set(35+i,false);			}			 bsSerialNum = utils.ZeroPad(Long.toString(Long.parseLong(sSerialNum),2),38);			for(int i=0;i<bsSerialNum.length();i++) {				if(bsSerialNum.charAt(i) == '1') 					mybits.set(59+i);				else					mybits.set(59+i,false);			}			break;		case 7:			System.out.println("sManagerId.length() = 7");			bsPartition = utils.ZeroPad(Integer.toString(5,2),3);			for(int i=0;i<bsPartition.length();i++) 				if(bsPartition.charAt(i) == '1') {					mybits.set(i+12);				} else {					mybits.set(i+12,false);				}			 bsManagerId = utils.ZeroPad(Long.toString(Long.parseLong(sManagerId),2),24);			for(int i=0;i<bsManagerId.length();i++) {				if(bsManagerId.charAt(i) == '1') 					mybits.set(15+i);				else 					mybits.set(15+i,false);			}			 bsProductId = utils.ZeroPad(Long.toString(Long.parseLong(sProductId),2),20);			for(int i=0;i<bsProductId.length();i++) {				if(bsProductId.charAt(i) == '1') 					mybits.set(39+i);				else 					mybits.set(39+i,false);			}			 bsSerialNum = utils.ZeroPad(Long.toString(Long.parseLong(sSerialNum),2),38);			for(int i=0;i<bsSerialNum.length();i++) {				if(bsSerialNum.charAt(i) == '1') 					mybits.set(59+i);				else					mybits.set(59+i,false);			}			break;		case 8:			System.out.println("sManagerId.length() = 8");			bsPartition = utils.ZeroPad(Integer.toString(4,2),3);			for(int i=0;i<bsPartition.length();i++) 				if(bsPartition.charAt(i) == '1') {					mybits.set(i+12);				} else {					mybits.set(i+12,false);				}			 bsManagerId = utils.ZeroPad(Long.toString(Long.parseLong(sManagerId),2),27);			for(int i=0;i<bsManagerId.length();i++) {				if(bsManagerId.charAt(i) == '1') 					mybits.set(15+i);				else 					mybits.set(15+i,false);			}			 bsProductId = utils.ZeroPad(Long.toString(Long.parseLong(sProductId),2),17);			for(int i=0;i<bsProductId.length();i++) {				if(bsProductId.charAt(i) == '1') 					mybits.set(42+i);				else 					mybits.set(42+i,false);			}			 bsSerialNum = utils.ZeroPad(Long.toString(Long.parseLong(sSerialNum),2),38);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
26uuu国产日韩综合| 亚洲成av人在线观看| 337p日本欧洲亚洲大胆色噜噜| 欧美日本一区二区| 欧美色图免费看| 欧美三级视频在线观看| 国产欧美一区二区精品婷婷| 日韩精品在线网站| 精品欧美久久久| 久久久久久免费网| 日本一区二区电影| 国产精品久久久久三级| 中文字幕一区av| 亚洲美女视频在线| 亚洲一区二区高清| 日韩黄色一级片| 久久99精品国产麻豆婷婷| 国产成人鲁色资源国产91色综| 国产91在线看| 色狠狠桃花综合| 欧美日韩性生活| 日韩三级视频在线看| 精品久久久久av影院| 欧美国产综合色视频| 亚洲女厕所小便bbb| 亚洲一卡二卡三卡四卡无卡久久| 亚洲一本大道在线| 精品一区二区三区在线播放| 国产很黄免费观看久久| av电影一区二区| 91极品视觉盛宴| 日韩视频123| 中文字幕高清不卡| 一区二区久久久久| 蜜臀av亚洲一区中文字幕| 国产精品自拍av| 91天堂素人约啪| 在线电影一区二区三区| 久久精子c满五个校花| 亚洲男人天堂av网| 免费精品99久久国产综合精品| 国产成人午夜视频| 欧美午夜精品一区二区三区| 精品国产网站在线观看| 亚洲欧美综合色| 亚洲chinese男男1069| 国产一区欧美日韩| 在线一区二区三区做爰视频网站| 精品国产在天天线2019| 国产精品久久久久一区| 日本一区中文字幕| 色综合一区二区| 日韩欧美一区在线| 国产精品久久久久久久岛一牛影视| 亚洲成在线观看| 成人精品免费看| 91精品国产综合久久精品麻豆| 久久久久97国产精华液好用吗| 一区二区国产盗摄色噜噜| 国产精品综合av一区二区国产馆| 欧美丝袜丝交足nylons图片| 久久久久国产成人精品亚洲午夜| 亚洲成人动漫在线观看| av在线不卡观看免费观看| 欧美三区在线视频| 国产人伦精品一区二区| 亚洲在线视频一区| 日韩一级免费观看| 中文字幕佐山爱一区二区免费| 精彩视频一区二区三区| 欧美视频一区二区| ...xxx性欧美| 国产麻豆精品久久一二三| 7777精品伊人久久久大香线蕉的 | 国产精品伦一区二区三级视频| 亚洲成人高清在线| 91视频一区二区| 久久久久久久久蜜桃| 视频精品一区二区| 日本精品视频一区二区| 欧美激情一区二区| 国产一区二区在线观看免费| 欧美伦理视频网站| 夜色激情一区二区| 91色九色蝌蚪| 国产精品初高中害羞小美女文| 国产一区二区影院| 亚洲精品一区二区三区影院| 日韩国产精品久久久| 欧美午夜电影一区| 亚洲黄色av一区| 色哟哟日韩精品| 国产精品人妖ts系列视频| 国产精品中文字幕一区二区三区| 日韩欧美国产精品一区| 日本中文字幕一区二区有限公司| 欧美日韩精品专区| 亚洲国产精品综合小说图片区| 99热99精品| 中文字幕在线不卡| 高清免费成人av| 国产精品色眯眯| 丁香五精品蜜臀久久久久99网站| 久久精品欧美一区二区三区麻豆| 久久91精品国产91久久小草| 日韩精品一区二区三区视频在线观看| 午夜欧美2019年伦理| 欧美日韩亚洲综合| 亚洲国产wwwccc36天堂| 欧美日韩一区二区三区四区| 一区二区三区四区高清精品免费观看| 99精品在线免费| 一区二区三区日韩| 欧美日韩精品欧美日韩精品一综合| 亚洲午夜一区二区三区| 欧美日韩国产经典色站一区二区三区| 亚洲电影在线免费观看| 91麻豆精品91久久久久同性| 美女视频网站久久| 久久噜噜亚洲综合| zzijzzij亚洲日本少妇熟睡| 亚洲激情男女视频| 欧美日韩国产小视频在线观看| 男人的天堂久久精品| 久久久久国产成人精品亚洲午夜| 成人午夜电影久久影院| 亚洲免费av在线| 欧美嫩在线观看| 精品一区二区三区久久| 中文字幕国产一区| 欧美亚洲国产一区二区三区va| 日韩在线一区二区三区| 久久亚洲精品国产精品紫薇| 成人美女视频在线看| 亚洲一区二区高清| 欧美大片顶级少妇| 成人激情av网| 午夜激情一区二区三区| 2023国产精品自拍| 91蜜桃传媒精品久久久一区二区| 亚洲123区在线观看| 久久理论电影网| 欧美又粗又大又爽| 久久99精品久久久| 亚洲人成网站色在线观看 | 一区二区欧美国产| 日韩欧美国产小视频| 99riav久久精品riav| 午夜精品福利久久久| 26uuu久久综合| 欧洲一区二区av| 国产在线精品一区在线观看麻豆| 国产精品麻豆视频| 91精品久久久久久久91蜜桃| 国产宾馆实践打屁股91| 亚洲gay无套男同| 国产亚洲欧美一级| 在线播放中文一区| 99这里都是精品| 美女脱光内衣内裤视频久久影院| 中文字幕中文字幕在线一区 | 一本色道亚洲精品aⅴ| 麻豆成人免费电影| 亚洲欧美日韩精品久久久久| 精品免费国产一区二区三区四区| 色综合天天做天天爱| 国产综合久久久久久鬼色| 亚洲国产成人av好男人在线观看| 国产片一区二区三区| 欧美一区二区在线视频| 99国产精品99久久久久久| 国内精品免费**视频| 五月婷婷综合激情| 亚洲色欲色欲www在线观看| 久久久久88色偷偷免费| 91精品国产综合久久精品图片| 色综合久久中文字幕综合网| 国产麻豆精品在线观看| 视频在线观看国产精品| 亚洲免费在线看| 国产精品不卡一区二区三区| 久久无码av三级| 欧美成人性福生活免费看| 欧美中文字幕不卡| 99久久精品免费观看| 成人毛片在线观看| 国产精品资源站在线| 黑人巨大精品欧美黑白配亚洲| 日产欧产美韩系列久久99| 亚洲高清免费视频| 亚洲综合久久久久| 亚洲免费在线视频| 亚洲欧洲色图综合| 国产精品你懂的| 国产欧美精品一区二区色综合朱莉| 91精品国产91热久久久做人人 | 欧美一区二区观看视频| 欧美日韩高清不卡| 欧美日韩国产电影| 欧美影院午夜播放|