2012-06-08 24 views
12

Opracowuję sterownik urządzenia i chcę wiedzieć, jak obliczyć sumę kontrolną ramki.Jak obliczyć sumę kontrolną

Objaśnienie:

  1. ekspresji w postaci [0-9] i [A-F].

  2. Znaki rozpoczynające się od znaku po [STX] i do [ETB] lub [ETX] (w tym [ETB] lub [ETX]) są dodawane w postaci binarnej.

  3. Dwucyfrowe liczby, które reprezentują najmniej znaczące 8 bitów w kodzie heksadecymalnym , są konwertowane na znaki ASCII [0-9] i [A-F].

  4. Najbardziej znacząca cyfra jest zapisana w CHK1, a najmniej znacząca cyfra to w CHK2.

ja nie otrzymuję powyżej 3 i 4 pkt.

można podać kod przykładowy dla C#.

Proszę, pomóż mi.

+0

ja jestem zamieszanie w tym, co jest ostateczna ans. to 4 cyfry lub 2 cyfry. i nie otrzymuję tego, co zrobię po sumie wszystkich bajtów. –

+0

to próbka rama: 2Q 1 | 2^1 |||| 20011001153000 i chcę wiedzieć, co jest wartością CHK1 i CHK2 i jestem nowy w tym tak im zupełnie puste o tym, jak oblicz sumę kontrolną. –

+0

Tak jak mówiliśmy na czacie, musimy wiedzieć, jakiego rodzaju algorytmu sumy kontrolnej instrument oczekuje od Ciebie. Czy to CRC, Fletcher, czy coś innego? – Collin

Odpowiedz

12

końcu dostałem odpowiedź, tutaj jest kod do obliczania sumy kontrolnej:

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, przeczytaj Que. Chcę wartość sumy kontrolnej danego ciągu, ale twoje ans. zwracanie wartości logicznej. –

Powiązane problemy