2017-09-04 79 views
-1

嗨香港專業教育學院在網上搜索,並在這裏,並認爲唯一的解決辦法是問某人既熟悉LUA和C#...C#CRC8位LUA功能

我有一個CRC的8位代碼片段基本上我需要Lua ... 即時通訊新的Lua,但已設法編寫一些代碼來解決問題,但有一個新版本,需要對每條消息的8位CRC校驗...

我不得不穀歌什麼CRC檢查是如何完成的,我認爲我已經理解了這個概念......我完全無法知道如何在Lua中編寫腳本......我找到了一段c#代碼,它說這是一個簡單的通用8位crc計算,我想如果這是在我可以適應它,但似乎沒有直接轉換設施在網絡上的任何地方...

我注意到你們之前曾幫助過類似的問題,並希望你現在可以幫助我......我必須簽署一份保密協議來閱讀它,因此不會發布代碼,並且對細節略微保密......但是如果我發佈這個非特定的通用8位CRC計算例程,也許有人可以爲我轉換它或在Lua中編寫類似的腳本?爲了我的目的,我只需要「解碼」一個十六進制字節的字符串(很確定我剛剛做了這個!),並告訴接收方CRC校驗的結果應該是什麼...

所以我有一個字符串像十六進制的: 3F 12 34 22 22 09(完全由和無意義例如)

,我需要一個8 BI CRC校驗結果添加到 下面是一般的8位校驗(希望有意義!) C#code我找到了:

private byte calcCRC8(ref byte[] data, int bytes) 
{ 
    byte crc = 0xff; 
    byte poly = 0x85; 
    int i, j; 

    for (i = 0; i < bytes; i++) 
    { 
     crc ^= data[i]; 
     for (j = 0; j < 8; j++) 
     { 
      if ((crc & 0x80) == 0x80) 
      { 
       crc = (byte)((crc << 1)^poly); 
      } 
      else 
      { 
       crc = (byte)(crc << 1); 
      } 
     }    
    } 
    return crc; 
} 

任何援助將大爲讚賞,

薩姆

+0

https://www.lua.org/pil/contents.html – Fildor

+1

你知道你的多項式嗎?你有沒有正確CRC值的數據例子?什麼是'3F 12 34 22 22 09'的正確CRC? –

+0

這不是代碼翻譯服務。要麼學習Lua要麼付錢給誰。 – Piglet

回答

1

誰正在請求的8位CRC必須需要特定 8位CRC。在擔心語言之前,先做一步,確保你知道如何計算正確的CRC。文檔是否提供CRC參數,如多項式,位排序,初始值,最終xor?文檔是否提供了示例消息和相應的CRC?

+0

儘管我可以聯繫協議的開發者並且詢問他們,但它並沒有特別說明,在這個例子中,我猜測「字節多義」這一行是多項式(我沒有完全掌握什麼多項式是btw:s)不確定線「字節crc」是什麼?也許初始值?可悲的是,沒有「工作示例」,因爲它是...感謝您的幫助到目前爲止,我會聯繫開發人員(他們不是特別精通我的代碼,我覺得...沒有冒犯他們! –

+0

@SamYoué - 向開發人員詢問字符串「HELLO」的正確CRC是什麼。推導算法的多項式和其他參數就足夠了。 –

+0

會不會謝謝你,我會盡快回復你們 –