2012-06-08 28 views
12

मैं उपकरण चालक विकसित कर रहा हूं और मैं जानना चाहता हूं कि फ्रेम के चेकसम की गणना कैसे करें।चेकसम की गणना कैसे करें

स्पष्टीकरण:

  1. वर्ण [0-9] और [एक-एफ] द्वारा व्यक्त।

  2. [एसटीएक्स] के बाद चरित्र से शुरू होने वाले वर्ण और [ईटीबी] या [ईटीएक्स] ([ईटीबी] या [ईटीएक्स] सहित) बाइनरी में जोड़े गए हैं।

  3. 2-अंकों की संख्या, जो हेक्साडेसिमल कोड में कम से कम 8 बिट्स का प्रतिनिधित्व करती हैं, को ASCII वर्ण [0-9] और [ए-एफ] में परिवर्तित कर दिया जाता है।

  4. सबसे महत्वपूर्ण अंक CHK1 में संग्रहीत है और कम से कम महत्वपूर्ण CHK2 में अंक है।

मैं 3 और 4 अंक ऊपर नहीं मिल रहा है।

कोई भी सी # के लिए नमूना कोड प्रदान कर सकता है।

कृपया मेरी मदद करें।

+0

मैं हूँ अंतिम ans है क्या में भ्रम की स्थिति। यह 4 अंक या 2 अंक है। और मुझे यह नहीं मिल रहा है कि मैं सभी बाइट के योग के बाद क्या करूँगा। –

+0

इस नमूने फ्रेम है: | 1 | प्रश्न 2 2^1 |||| 20011001153000 और मुझे पता chk1 और chk2 का मूल्य क्या है चाहते हैं और मैं इस में नया हूँ तो कैसे के बारे में करने के लिए पूरी तरह से खाली im चेकसम की गणना करें। –

+0

जैसा कि हमने चैट में बात की थी, हमें यह जानने की जरूरत है कि किस प्रकार का चेकसम एल्गोरिदम उपकरण आपको उपयोग करने की उम्मीद कर रहा है। क्या यह एक सीआरसी, फ्लेचर, या कुछ और है? – Collin

उत्तर

12

अंत में मैं इस सवाल का जवाब मिल गया है, यहाँ की गणना चेकमस के लिए कोड है:

private string CalculateChecksum(string dataToCalculate) 
{ 
    byte[] byteToCalculate = Encoding.ASCII.GetBytes(dataToCalculate); 
    int checksum = 0; 
    foreach (byte chData in byteToCalculate) 
    { 
     checksum += chData; 
    } 
    checksum &= 0xff; 
    return checksum.ToString("X2"); 
} 
-2
private bool CheckChecksum(string data) 
{ 
    bool isValid =false 

    byte[] byteToCalculate = Encoding.ASCII.GetBytes(dataToCalculate); 
    int checkSum = 0; 
    for (int i=i i<byteToCalculate.Length;i++) 
    { 
     checkSum += byteToCalculate[i]; 
    } 
    checksum &= 0xff; 

    if (checksum == byteToCalculate[ChecksumPlace] 
    { 
    return true 
    } 
    else 
    { 
    return false 
    } 
} 
+0

Pls, क्यू पढ़ें। मैं दिए गए स्ट्रिंग के चेकसम मूल्य चाहता हूं लेकिन आपका उत्तर। बुलियन मूल्य लौट रहा है। –