計算塊檢查字符(BCC)我與設備通過串行通過SerialPort類.NET的通信和基於第三方設備規範要求,我需要計算「塊校驗字符」。我被告知的唯一信息是它是一個異或操作(XOR),它必須在所有字符上執行。串行通信
所以,如果我有字符串「鮑勃,001」怎麼會一個計算BCC?
計算塊檢查字符(BCC)我與設備通過串行通過SerialPort類.NET的通信和基於第三方設備規範要求,我需要計算「塊校驗字符」。我被告知的唯一信息是它是一個異或操作(XOR),它必須在所有字符上執行。串行通信
所以,如果我有字符串「鮑勃,001」怎麼會一個計算BCC?
最有可能的是基於字符的XOR。你需要讓他們的樣本來驗證,但最校驗通常在0
結束了所以,對於XOR校驗和,你會包:
Bob,001X
,其中X是校驗和當你XOR所有這些字符在一起,你會最有可能獲得0.1
因此,制定出X,在「鮑勃,001」你剛纔XOR所有字符。這就是憑藉這樣的事實N個XOR N是始終爲0,對於任何N.
現在它可能是X將是兩個十六進制字符,如果你要允許有字母數字是。這就是爲什麼您需要樣品數據(所以我們可以解決它)或適當的規格(應該由設備製造商提供)。
什麼是你指的是實際的設備?它可能在網上有信息顯示如何做到這一點。
基於更新:
這是一個阿瑪迪斯招待費PMS設備。他們並不是說它必須在所有字符上執行。不包括STX和ETX。
你需要得到一些樣本數據來證實,但它很可能數據流是這樣的:
Running
Data ChkSum
====== =======
STX 02
B 42 42
o 6f 2d
b 62 4f
, 2c 63
0 30 53
0 30 63
1 31 52
4 52 00
ETX 03
校驗的位置可能會有所不同,而事實上,它的計算方法可能有所不同太儘管這樣做的可能性很小。如果沒有樣本數據或供應商的進一步信息,我認爲不能做更多的事情。粗略搜索互聯網沒有提供技術細節。
這是一款Amadeus Hospitality PMS設備。他們並不是說它必須在所有字符上執行。不包括STX和ETX。 – GONeale 2009-05-21 23:22:08