मुझे जावा में बाइट सरणी के सीआरसी -16 कार्यान्वयन की गणना करने में समस्याएं आ रही हैं। असल में मैं बाइट्स को एक आरएफआईडी भेजने की कोशिश कर रहा हूं जो एक टैग को लिखना शुरू कर देता है। मैं मैक पर tcpdump कमांड देखकर सरणी के चेकसम मूल्य देख सकता हूं। लेकिन मेरा लक्ष्य इसे अपने आप उत्पन्न करना है। यहां मेरा बाइट सरणी है जो 0xbe, 0xd9:सीआरसी 16 कार्यान्वयन जावा
byte[] bytes = new byte[]{(byte) 0x55,(byte) 0x08,(byte) 0x68, (byte) 0x14,
(byte) 0x93, (byte) 0x01, (byte) 0x00, (byte) 0x00,
(byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x06,
(byte) 0x00, (byte) 0x00, (byte) 0x01, (byte) 0x00,
(byte) 0x13, (byte) 0x50, (byte) 0x00, (byte) 0x00,
(byte) 0x00, (byte) 0x22, (byte) 0x09, (byte) 0x11};
0x55 शीर्षलेख है। जैसा कि दस्तावेज कहता है कि इसे बाहर रखा जाएगा।
जब भी मैं जावा पर इस सरणी को आजमाता हूं (0xbe, 0xd9 के साथ), आरएफआईडी काम करता है। मेरी समस्या उन चेकसम मूल्यों का उत्पादन है। मैंने लगभग पूरे वेब की खोज की लेकिन कोई मौका नहीं। मुझे कोई एल्गोरिदम नहीं मिला जो 0xbe, 0xd9 उत्पन्न करता है।
कोई भी विचार मेरे लिए सबसे ज्यादा स्वागत है। अग्रिम में धन्यवाद।
संपादित करें: here is the protocol कि आरएफआईडी
मुझे नहीं पता कि आपको धन्यवाद कैसे दिया जाए। बहुत सराहना की। लेकिन मैं खुद से पूछने से नहीं रोक सकता, आप उन दोनों के बीच की समस्या के रूप में क्या देखते हैं? –