C#快速modbus CRC驗證使用
CRC驗證想必大家都很熟悉,在使用CRC驗證的時候,往往需要自己重新造輪子。最近在C#寫上位機使用CRC的時候,發(fā)現(xiàn)了一個很好用的dll組件,HslCommunication
HslCommunication是國內的工程師個人獨立開發(fā)完成的,覆蓋的面非常廣,我就不展開說了,詳細的內容可以去官網(wǎng)自行閱讀。這里可以提到的是,HslCommunication支持的CRC是CRC-16/MODBUS,支持的.net fra版本是4.5.1,所以在寫代碼的時候要選擇合適的框架。
http://www.hslcommunication.cn
順便提一嘴,modbus使用的CRC驗證是特有的,事實上CRC驗證的方案是非常多的,在使用之前要確定自己要使用的是哪一種。如果你使用的設備沒有明確地提出使用的CRC校驗方案是哪一種,而你自己又無法自定義的話(是可以自定義的),你可以在此網(wǎng)站中快速的測試你所使用的設備提供的代碼段來匹配正確的CRC驗證方法。
而調用此組件也是十分簡單的,在官網(wǎng)下載安裝包后,直接安裝到你的項目文件中去,再通過應用選取,再調用命名空間即可。
using HslCommunication.Serial;
而使用的方法也很簡單,只需要將你要驗證的內容放到函數(shù)的接口中即可:
生成:
byte[] shengcheng = HslCommunication.Serial.SoftCRC16.CRC16(data);//多項式碼為默認xA001時或者你不知道時(這一點可以在上文提到的在線CRC測試網(wǎng)站中得到驗證)
data為你校驗的對象,shengcheng是帶校驗的數(shù)據(jù)幀。
但你知道多項式碼時:
byte[] result = HslCommunication.Serial.SoftCRC16.CRC16(data, 多項式碼高, 多項式碼低);
校驗你接受的數(shù)據(jù)幀是否完整:.
bool result = HslCommunication.Serial.SoftCRC16.CheckCRC16(data, 多項式碼高, 多項式碼低);
以上為本文的全部內容,如果幫到你了非常榮幸,有什么疑問或者本文有什么問題可以在本文下留言,我們交流討論~