亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

串口指令解碼方法

文檔序號:6640658閱讀:3214來源:國知局
串口指令解碼方法
【專利摘要】本發(fā)明涉及通訊【技術(shù)領(lǐng)域】,特別涉及一種串口指令解碼方法,包括如下步驟:根據(jù)命令的個數(shù)m以及單個命令的最大長度n建立二維字節(jié)型數(shù)組arrCmdValue[m][n],同時建立一維整數(shù)型數(shù)組arrCmdSize[m]用于保存每條指令的長度,建立一維布爾型數(shù)組arrCmdFlag[m];將數(shù)組arrCmdFlag[m]初始化為“真值”;讀取串口數(shù)據(jù)并進行比較,同時根據(jù)比較結(jié)果相應地修改數(shù)組arrCmdFlag[m]的值;對滿足要求的命令進行解析并執(zhí)行。本方法運算次數(shù)少,增加識別速度、準確性,該解碼步驟僅在接收方進行,無需事先約定格式協(xié)議,對于任意串口數(shù)據(jù),都能可靠解碼。
【專利說明】串口指令解碼方法

【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及通訊【技術(shù)領(lǐng)域】,特別設(shè)及一種串口指令解碼方法。

【背景技術(shù)】
[0002] 串行通訊是工控場合比較常用的經(jīng)濟、有效的數(shù)據(jù)傳輸方法,比如RS232, RS422 或RS485。由于該些硬件協(xié)議是面向字節(jié)型的,一次收發(fā)的基本單元都是8位數(shù)據(jù).為了 能夠一次性傳輸一條8位的命令W及超過8位長度的數(shù)據(jù),常采用的方法是通信雙方事先 約定一套通信協(xié)議。系統(tǒng)采用數(shù)據(jù)打包方式進行傳輸,將數(shù)據(jù)編輯成帖格式;定長的或變長 的,發(fā)送和接收方按照約定的格式協(xié)議進行編帖和解帖。帖中包含了多個組成部分。簡單 的帖格式包括帖頭域、數(shù)據(jù)域W及校驗和,包括該個帖的帖首、帖結(jié)束、帖類型、地址、數(shù)據(jù)、 錯誤冗余等,該些部分并不全是必需的。不同設(shè)備的通信格式與數(shù)據(jù)各不相同,如何提取有 效的數(shù)據(jù)帖并進行校驗和解碼是獲取數(shù)據(jù)的重點之一;同時,現(xiàn)有技術(shù)中需要發(fā)送方和接 收方事先約定格式協(xié)議,該樣就缺乏通用性。


【發(fā)明內(nèi)容】

[0003] 本發(fā)明的目的在于提供一種串口指令解碼方法,直接進行可靠正確的解碼,無需 約定格式協(xié)議。
[0004] 為實現(xiàn)W上目的,本發(fā)明采用的技術(shù)方案為:一種串口指令解碼方法,包括 如下步驟;(A)根據(jù)命令的個數(shù)mW及單個命令的最大長度n建立二維字節(jié)型數(shù)組 arrCmdValue虹][n],同時建立一維整數(shù)型數(shù)組arrCmdSize虹]用于保存每條指令的 長度,建立一維布爾型數(shù)組arrCmdFlag虹];炬)將數(shù)組arrCmdFlag虹]初始化為"真 值";(C)讀取串口數(shù)據(jù)并與數(shù)組arrCmdValue虹][n]的第一列進行逐行比較,若串口數(shù) 據(jù)與數(shù)組arrCmdValue虹][n]的第一列數(shù)據(jù)完全不同,返回步驟C,若串口數(shù)據(jù)與數(shù)組 arrCmdValue虹][n]的第一列數(shù)據(jù)部分相同或完全相同,進入步驟D ;值)數(shù)據(jù)不同的行X, 對應的arrCmdFlag[x]置為"假值";數(shù)據(jù)相同的行y,若arrCmdSize[y]的值為1,則命令 解析完畢執(zhí)行相應命令,否則進入步驟E ;巧)讀取串口數(shù)據(jù)并與數(shù)組arrCmdValue虹][n] 的后續(xù)列中arrCmdFlag虹]為"真值"的行進行逐行比較,若后續(xù)列為第(n+1)列,返回步 驟B,否則,若串口數(shù)據(jù)與數(shù)組arrCmdValue虹][n]的該列數(shù)據(jù)完全不同,返回步驟B,若串 口數(shù)據(jù)與數(shù)組arrCmdValue虹][n]的該列數(shù)據(jù)部分相同或完全相同,進入步驟F;(巧數(shù) 據(jù)不同的行X,對應的arrCmdFlag[x]置為"假值";數(shù)據(jù)相同的行y,若arrCmdSize[y]的 值等于對應列數(shù),則命令解析完畢執(zhí)行相應命令,否則重復步驟E ;其中,arrCmdValue[i] [0]、a;rrCmdValue[i][l]、--?、a;rrCmdValue[i][n-l]構(gòu)成數(shù)組 arrCmdValue虹][n]的第 (i+1)行,arrCmdValue[0] [j]、arrCmdValue[1] [j]、…、arrCmdValue虹-1] [j]構(gòu)成數(shù)組 arrCmdValue 虹][n]的第(j+1)列。
[0005] 與現(xiàn)有技術(shù)相比,本發(fā)明存在W下技術(shù)效果;通過設(shè)置數(shù)組arrCmdFlag虹]來排 除不符合要求的指令,減少運算次數(shù),增加識別速度;同時,設(shè)置數(shù)組arrCmdSize虹]判定 是否解析指令,避免某些執(zhí)行的誤執(zhí)行,增加識別的準確性,該解碼步驟僅在接收方進行, 無需事先約定格式協(xié)議,對于任意串口數(shù)據(jù),都能可靠解碼。

【具體實施方式】
[0006] 下面對本發(fā)明做進一步詳細敘述。
[0007] 一種串口指令解碼方法,包括如下步驟;(A)根據(jù)命令的個數(shù)m W及單個命 令的最大長度n建立二維字節(jié)型數(shù)組arrCmdValue虹][n],同時建立一維整數(shù)型數(shù)組 arrCmdSize虹]用于保存每條指令的長度,建立一維布爾型數(shù)組arrCmdFlag虹]。為了清楚 地描述該步驟,假設(shè)現(xiàn)在有500條指令,單個指令的最大長度為100,命令表如下:
[0008] (表 1)
[0009]

【權(quán)利要求】
1. 一種串口指令解碼方法,包括如下步驟: (A) 根據(jù)命令的個數(shù)m以及單個命令的最大長度n建立二維字節(jié)型數(shù)組 arrCmdValue[m] [n],同時建立一維整數(shù)型數(shù)組arrCmdSize [m]用于保存每條指令的長度, 建立一維布爾型數(shù)組arrCmdFlag[m]; (B) 將數(shù)組arrCmdFlag[m]初始化為"真值"; (C) 讀取串口數(shù)據(jù)并與數(shù)組arrCmdValue[m][n]的第一列進行逐行比較, 若串口數(shù)據(jù)與數(shù)組arrCmdValue[m] [n]的第一列數(shù)據(jù)完全不同,返回步驟C, 若串口數(shù)據(jù)與數(shù)組arrCmdValueDn] [n]的第一列數(shù)據(jù)部分相同或完全相同,進入步驟 D ; (D) 數(shù)據(jù)不同的行X,對應的arrCmdFlag[x]置為"假值";數(shù)據(jù)相同的行y,若 arrCmdSize [y]的值為1,則命令解析完畢執(zhí)行相應命令,否則進入步驟E; (E) 讀取串口數(shù)據(jù)并與數(shù)組arrCmdValue[m] [n]的后續(xù)列中arrCmdFlag[m]為"真值" 的行進行逐行比較,若后續(xù)列為第(n+1)列,返回步驟B,否則, 若串口數(shù)據(jù)與數(shù)組arrCmdValue[m] [n]的該列數(shù)據(jù)完全不同,返回步驟B, 若串口數(shù)據(jù)與數(shù)組arrCmdValueDn] [n]的該列數(shù)據(jù)部分相同或完全相同,進入步驟F ; (F) 數(shù)據(jù)不同的行X,對應的arrCmdFlag[x]置為"假值";數(shù)據(jù)相同的行y,若 arrCmdSize [y]的值等于對應列數(shù),則命令解析完畢執(zhí)行相應命令,否則重復步驟E ; 其中,arrCmdValue[i] [0]、arrCmdValue[i] [1]、…、arrCmdValue[i] [n_l]構(gòu)成數(shù) 組 arrCmdValue[m] [n]的第(i+1)行,arrCmdValue[0] [j]、arrCmdValue[1] [j]、…、 arrCmdValue[m-l][j]構(gòu)成數(shù)組 arrCmdValue[m][n]的第(j+1)列。
【文檔編號】G06F13/42GK104503942SQ201410842438
【公開日】2015年4月8日 申請日期:2014年12月30日 優(yōu)先權(quán)日:2014年12月30日
【發(fā)明者】曹明潤, 徐勇, 汪升 申請人:合肥金星機電科技發(fā)展有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1