2012-06-08 45 views
12

Tôi đang phát triển trình điều khiển thiết bị và tôi muốn biết cách tính tổng kiểm tra khung.Cách tính tổng kiểm tra

Giải thích:

  1. thể hiện bằng ký tự [0-9] và [A-F].

  2. Ký tự bắt đầu từ ký tự sau [STX] và đến [ETB] hoặc [ETX] (bao gồm [ETB] hoặc [ETX]) được thêm vào nhị phân.

  3. Các số có 2 chữ số đại diện cho 8 bit ít quan trọng nhất trong mã thập lục phân, được chuyển thành ký tự ASCII [0-9] và [A-F].

  4. Chữ số quan trọng nhất được lưu trữ trong CHK1 và ít nhất có nghĩa là chữ số trong CHK2.

tôi không lên trên điểm thứ 3 và thứ 4.

bất kỳ ai cũng có thể cung cấp mã mẫu cho C#.

Hãy giúp tôi.

+0

i m nhầm lẫn trong ans thức là gì. nó là 4 chữ số hoặc 2 chữ số. Và tôi không nhận được những gì tôi sẽ làm sau khi tổng của tất cả các byte. –

+0

đây là khung mẫu: 2Q | 1 | 2^1 |||| 20011001153000 và tôi muốn biết giá trị của chk1 và chk2 là gì và tôi mới ở đây nên im hoàn toàn trống về cách tính tổng kiểm tra. –

+0

Như chúng ta đã nói trong trò chuyện, chúng ta cần phải biết loại thuật toán kiểm tra mà công cụ mong đợi bạn sử dụng. Nó là một CRC, Fletcher, hay cái gì khác? – Collin

Trả lời

12

Cuối cùng tôi nhận được câu trả lời, đây là đoạn code để tính checksum:

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

Xin vui lòng đọc Que. Tôi muốn giá trị checksum của chuỗi đã cho nhưng ans của bạn. trả về giá trị boolean. –

Các vấn đề liên quan