我們現(xiàn)在想把貴公司的門(mén)禁控制器接入到我們的軟件里,現(xiàn)在開(kāi)發(fā),遇到0x7F數(shù)據(jù)與通信結(jié)束符相同后導(dǎo)致的通信錯(cuò)亂。我們打電話質(zhì)詢后,了解到有一個(gè)轉(zhuǎn)碼,請(qǐng)?jiān)谶@里提供一下具體怎么轉(zhuǎn)給我們參考一下。謝謝!
您好,很高興能與貴公司合作,感謝使用我們的產(chǎn)品
有關(guān)貴公司的二次開(kāi)發(fā)過(guò)程中遇到的通信0x7F,0x7F是我們作為通信 開(kāi)始 與 通信 結(jié)束標(biāo)志來(lái)使用的,而如果在您的通信中出現(xiàn)這個(gè)內(nèi)容,我們要求要轉(zhuǎn)譯,避免我們當(dāng)結(jié)束符對(duì)待。在您編寫(xiě)代碼遇到這個(gè)時(shí),請(qǐng)參考如下轉(zhuǎn)譯碼:
由于命令中使用了0x7E作為命令的開(kāi)始和結(jié)束標(biāo)志,所以7E這個(gè)字節(jié)就不能出現(xiàn)在命令內(nèi)容中只能出現(xiàn)在命令頭和命令尾。
轉(zhuǎn)譯碼如下:
0x7F 01 = 0x7E
0x7F 02 = 0x7F
轉(zhuǎn)譯碼使用的地方,在命令發(fā)送前對(duì)先對(duì)命令內(nèi)容檢驗(yàn)和計(jì)算,然后再進(jìn)行0x7E和0x7F的數(shù)據(jù)檢查,發(fā)現(xiàn)0x7E或0x7F就進(jìn)行上面的公式轉(zhuǎn)換,再就收到命令后應(yīng)該先按照上面的公式進(jìn)行數(shù)據(jù)反轉(zhuǎn)譯再進(jìn)行校驗(yàn)和檢驗(yàn)。