freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

多個串口設(shè)備數(shù)據(jù)的連續(xù)采集(存儲版)

2025-06-25 06:17上一頁面

下一頁面
  

【正文】 StringBuilder s = new StringBuilder()。后臺工作者線程獲得下位機(jī)應(yīng)答數(shù)據(jù)后,存儲在 CCommand對象中,不用事件通知 UI線程。 } 36 工控程序設(shè)計 private void timer1_Tick(object sender, EventArgs e) { CCommand cmd = ()。 = 1。 break。 } return false。 128。 mreturn = (float)((m + 1) * ((1), s) * (2, (e 127)))。 } private void btnStop_Click(object sender, EventArgs e) { = false。 (JW2A的 A命令已完成,立即發(fā)送 R命令。 //JW2A要先發(fā) A命令 (nextCmd)。 } } else (JW2A的 + + 命令還未完成 )。 = new byte[] { address }。 } 46 工控程序設(shè)計 protected override bool checkReply(string cmdType, byte[] bRecv) { switch (cmdType) { case A: //尋址命令 if (bRecv[0] == 0x4F amp。 break。 = true。 (LU902M已經(jīng)激活。 } else { = R。本章學(xué)習(xí)完成了鉆機(jī)性能測試系統(tǒng)的數(shù)據(jù)采集部份功能。 } } else (LU902M的 + + 命令還未完成 )。 = 。amp。 = 0x00。amp。 break。 = 2。 zs = (tmp)。amp。 ) //讀數(shù)命令已完成 { nextCmd = (R)。 ()。 127) * 65536 + data[2] * 256 + data[3]。 float mreturn。 bRecv[10] == 0x03) if (bRecv[9] == (bRecv, 0, 9)) return true。 = 。 管理該設(shè)備的類從 CActiveCOMHelper類派生而來,命名為 CJW2A,代碼如下: class CJW2A : CActiveCOMHelper { public CJW2A(string portName, int baudRate, int dataBits, StopBits stopBits) : base(portName, baudRate, dataBits, stopBits) { } public CCommand makeCommand(string mandName) //根據(jù)命令名稱構(gòu)建命令對象 { CCommand mand = new CCommand()。 } private void btnStop_Click(object sender, EventArgs e) //結(jié)束采集 { = false。 //字符串轉(zhuǎn)換為浮點(diǎn)數(shù) } catch { } return f。 break。 33 工控程序設(shè)計 switch (mandName) { case R: //讀數(shù)據(jù)指令 = mandName。//沒有新命令下達(dá),延時防止 CPU占用率過高 } if (sp != null amp。 (20)。//校驗(yàn)位 (bSend, 0, )。 } 29 工控程序設(shè)計 catch { return。 return cmd。 (this)。//默認(rèn) 3000毫秒讀取超時 = new CCommand()。 private CCommand mand。 UI模塊首先查詢前一個命令是否完成( isCompleted是否為 true),若已經(jīng)完成,就設(shè)置下一條命令的名字、內(nèi)容、校驗(yàn)方式、回復(fù)內(nèi)容的規(guī)定長度,交給 CActiveCOMHelper對象去執(zhí)行; CActiveCOMHelper對象執(zhí)行完命令后,把回復(fù)內(nèi)容填好,并將完成標(biāo)志 isCompleted設(shè)置為 true。 CCommand類實(shí)現(xiàn)代碼如下: public class CCommand { public string mandName。 //高 8位在后 return tmp。 n++) //進(jìn)行 8次邏輯移位 { LSB = CrcReg amp。 //附加在字節(jié)數(shù)組末尾 20 工控程序設(shè)計 (3)循環(huán)冗余校驗(yàn)碼的計算 下面的 C代碼將 CRC16校驗(yàn)碼生成功能封裝到 CCheck類的方法中,方法名為 CRC16: class CCheck { //函數(shù)功能: //計算字節(jié)數(shù)組 b中從 offset位置開始的 count個元素的循環(huán)冗余校驗(yàn)碼 //參數(shù): //b:要計算累加和的字節(jié)數(shù)組 //offset:要參與計算校驗(yàn)碼的元素的起始位置 //count:要參與計算校驗(yàn)碼的連續(xù)元素個數(shù) // CrcPoly: CRC多項式對應(yīng)的 16位二進(jìn)制編碼 //返回值:長度為 2的字節(jié)數(shù)組,第 1個元素為校驗(yàn)碼的低 8位 //第 2個元素為校驗(yàn)碼的高 8位 21 工控程序設(shè)計 public static byte[] CRC16(byte[] b, int offset, int count, ushort CrcPoly) { ushort CrcReg = 0xFFFF。 (2)異或和校驗(yàn)碼的計算 下面的 C代碼將異或和校驗(yàn)碼生成功能封裝到 CCheck類的方法中,方法名為 XorSum: class CCheck { //函數(shù)功能: //計算字節(jié)數(shù)組 b中從 offset位置開始的 count個元素的單字節(jié)異或和校驗(yàn)碼 //參數(shù): //b:要計算累加和的字節(jié)數(shù)組 //offset:要參與計算校驗(yàn)碼的元素的起始位置 //count:要參與計算校驗(yàn)碼的連續(xù)元素個數(shù) //返回值:異或和( 8位, 1個字節(jié)) 19 工控程序設(shè)計 public static byte XorSum(byte[] b, int offset, int count) { byte sum = 0。 //高 8位在后 return tmp。 byte[] tmp = new byte[2]。 (1)累加和校驗(yàn)碼的計算 累加和校驗(yàn)碼可以取累加和的低 8位( 1個字節(jié))或低 16位(兩個字節(jié)),在下位機(jī)處理能力允許的情況下采用兩個字節(jié)作校驗(yàn)碼可以提高校驗(yàn)的準(zhǔn)確度。 3)CRC寄存器向右移一位, MSB(最高有效位)補(bǔ)零,移出并檢查 LSB(最低有效位)。串口通信中常用的校驗(yàn)方式有累加和校驗(yàn)、異或和校驗(yàn)、循環(huán)冗余校驗(yàn)等。在每個通訊指令中,儀表最后返回信息 4FH、 4BH表示通訊成功,返回 3FH, 3FH表示通訊失敗。需要注意的是:寫模擬通道量程不能少于 16字節(jié)。小數(shù)點(diǎn)位置為 0,有 0位小數(shù)點(diǎn);小數(shù)點(diǎn)位置為 1,有 1位小數(shù)點(diǎn),小數(shù)點(diǎn)位置為 2,有 2位小數(shù)點(diǎn)。儀器收到命令后準(zhǔn)備接受 11個參數(shù),共 24個字節(jié)的數(shù)據(jù)。 10:寫零點(diǎn)。 表 JW2A通信協(xié)議 Bit位置 等于 1的情況 等于 0的情況 bit0 存儲狀態(tài) 非存儲狀態(tài) bit1 釋放狀態(tài) 非釋放狀態(tài) bit2 扣除狀態(tài) 非扣除狀態(tài) bit3 外轉(zhuǎn)速狀態(tài) 內(nèi)轉(zhuǎn)速狀態(tài) bit4 調(diào)零狀態(tài) 非調(diào)零狀態(tài) bit5 外轉(zhuǎn)速通道為小電機(jī)轉(zhuǎn)速 外轉(zhuǎn)速通道為外轉(zhuǎn)速 bit6 外轉(zhuǎn)速通道有信號 外轉(zhuǎn)速通道無信號 bit7 儀器處于設(shè)置狀態(tài) 儀器處于測量狀態(tài) 9 工控程序設(shè)計 8:讀模擬通道數(shù)據(jù)。在扣除狀態(tài)收到此命令,將退出扣除狀態(tài);在非扣除狀態(tài)收到此命令,將進(jìn)入扣除狀態(tài)。采樣時間為整數(shù), 2個字節(jié)。奇偶位在這里做地址和數(shù)據(jù)判別位, 1為地址, 0為數(shù)據(jù)。 該教學(xué)情景中先針對上位機(jī)主動通信模式設(shè)計基類CActiveCOMHelper,再分別對三種不同的儀器分別設(shè)計派生類來進(jìn)行數(shù)據(jù)管理,實(shí)現(xiàn)對多個不同設(shè)備進(jìn)行同步、連續(xù)的數(shù)據(jù)采集。 從儀表讀數(shù)據(jù)的指令格式為: EOT+儀表地址編號 +52H+參數(shù) +ENQ 表 發(fā)送給 HC100的數(shù)據(jù)格式 EOT 儀表編號(十位) 儀表編號(個位) R 參數(shù) ENQ 04H 30H 31H 52H 30H 30H 05H 5 工控程序設(shè)計 儀表返回數(shù)據(jù)的格式為: STX+儀表地址編號 +符號位 +測量值 +校驗(yàn)碼+ETX。受到命令后,根據(jù)命令執(zhí)行不同的任務(wù)。 2:讀儀器存儲的數(shù)據(jù)數(shù)組。 6:調(diào)零操作。低 14位表示數(shù)值大小,最高 2位表
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1