




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第五章打包解包小工具設計實驗工業(yè)和信息化部“十四五”規(guī)劃教材醫(yī)用儀器軟件設計—基于WinForm01實驗內容實驗內容學習PCT通信協(xié)議及C#中的部分控件,如標簽控件(Label)、文本框控件(TextBox)和按鈕控件(Button)等。設計一個打包解包小工具,在文本框中輸入模塊ID、二級ID及6字節(jié)數(shù)據(jù)后,通過“打包”按鈕實現(xiàn)打包操作,并將打包結果顯示在打包結果顯示區(qū)。另外,還可以根據(jù)用戶輸入的10字節(jié)待解包數(shù)據(jù),通過“解包”按鈕實現(xiàn)解包操作,并將解包結果顯示在解包結果顯示區(qū)。02實驗原理
從機常作為執(zhí)行單元,用于處理一些具體的事務,而主機(如Windows、Linux、Android和emWin平臺等)常用于與從機進行交互,向從機發(fā)送命令,或處理來自從機的數(shù)據(jù)。PCT通信協(xié)議PCT通信協(xié)議格式在主機與從機的通信過程中,主機和從機有一個共同的模塊,即打包解包模塊(PackUnpack),該模塊遵循某種通信協(xié)議。通信協(xié)議有很多種,本實驗采用的PCT通信協(xié)議由本書作者設計,該協(xié)議可由C、C++、C#、Java等編程語言實現(xiàn)。打包后的PCT通信協(xié)議的數(shù)據(jù)包格式如圖5-3所示。PCT通信協(xié)議格式PCT通信協(xié)議規(guī)定:(1)數(shù)據(jù)包由1字節(jié)模塊ID+1字節(jié)數(shù)據(jù)頭+1字節(jié)二級ID+6字節(jié)數(shù)據(jù)+1字節(jié)校驗和構成,共10字節(jié)。(2)數(shù)據(jù)包中有6個數(shù)據(jù),每個數(shù)據(jù)為1字節(jié)。(3)模塊ID的最高位bit7固定為0。(4)模塊ID的取值范圍為0x00~0x7F,最多有128種類型。PCT通信協(xié)議格式(5)數(shù)據(jù)頭的最高位bit7固定為1,數(shù)據(jù)頭的低7位按照從低位到高位的順序,依次存放二級ID的最高位bit7、數(shù)據(jù)1~數(shù)據(jù)6的最高位bit7。(6)校驗和的低7位為模塊ID+數(shù)據(jù)頭+二級ID+數(shù)據(jù)1+數(shù)據(jù)2+…+數(shù)據(jù)6求和的結果(取低7位)。(7)二級I、數(shù)據(jù)1~數(shù)據(jù)6及校驗和的最高位bit7固定為1。注意,并不是說二級ID、數(shù)據(jù)1~數(shù)據(jù)6和校驗和只有7位,而是在打包后,它們的低7位位置不變,最高位均位于數(shù)據(jù)頭中,因此,依然還是8位。
第1步,準備原始數(shù)據(jù),原始數(shù)據(jù)由模塊ID(0x00~0x7F)、二級ID、數(shù)據(jù)1~數(shù)據(jù)6組成,如圖5-4所示。
如圖1-12所示,單擊選中button1,在“屬性”標簽頁第2步,依次取出二級ID、數(shù)據(jù)1~數(shù)據(jù)6的最高位bit7,將其存放于數(shù)據(jù)頭的低7位。中將Text修改為ClickMe,button1按鈕顯示的文本將改變。PCT通信協(xié)議打包過程
第3步,對模塊ID、數(shù)據(jù)頭、二級ID、數(shù)據(jù)1~數(shù)據(jù)6的低7位求和,取求和結果的低7位,將其存放于校驗和的低7位,如圖5-6所示。
第4步,將數(shù)據(jù)頭、二級ID、數(shù)據(jù)1~數(shù)據(jù)6及校驗和的最高位置1,如圖5-7所示。PCT通信協(xié)議打包過程
PCT通信協(xié)議解包過程第1步,準備解包前的數(shù)據(jù)包,原始數(shù)據(jù)包由模塊ID、數(shù)據(jù)頭、二級ID、數(shù)據(jù)1~數(shù)據(jù)6、校驗和組成,如圖5-8所示。
第2步,對模塊ID、數(shù)據(jù)頭、二級ID、數(shù)據(jù)1~數(shù)據(jù)6的低7位求和,如圖5-9所示,取求和結果的低7位與數(shù)據(jù)包的校驗和低7位對比,如果兩個值的結果相等,則說明校驗正確。PCT通信協(xié)議解包過程PCT通信協(xié)議解包過程數(shù)據(jù)頭的最低位bitO與二級ID的低7位拼接之后作為最終的二級ID,數(shù)據(jù)頭的bit1與數(shù)據(jù)1的低7位拼接之后作為最終的數(shù)據(jù)1,數(shù)據(jù)頭的bit2與數(shù)據(jù)2的低7位拼接之后作為最終的數(shù)據(jù)2,以此類推,如圖5-10所示。
圖5-11所示即為解包后的結果,由模塊ID、二級ID、數(shù)據(jù)1~數(shù)據(jù)6組成。其中,模塊ID的取值范圍為0x00~0x7F,二級ID和數(shù)據(jù)的取值范圍為0x00~0xFF。PCT通信協(xié)議解包過程打包解包小工具設計框圖如圖5-12所示。設計框圖PackUnpack.cs文件介紹本書資料包提供的PackUnpack.cs文件中包含PCT通信協(xié)議的C#語言實現(xiàn)代碼,其中包含了4個API方法,分別為構造方法PackUnpack()、打包方法packData()、解包方法unpackData()及獲得解包后的數(shù)據(jù)包方法getUnpackRslt(),如表5-1所示。
PackUnpackDemo項目的最終布局界面如圖5-13所示。該界面主要用到3種控件,分別為Button、TextBox和Label。界面介紹
PackUnpackDemo項目的最終布局界面如圖5-13所示。該界面主要用到3種控件,分別為Button、TextBox和Label。界面介紹03實驗步驟首先,將本書配套資料包中的“Material\01.PackUnpackDemo\01.PackUnpackDemo”文件夾復制到“D:\WinFormTest”目錄下。實驗步驟復制基準項目將本書配套資料包中的“Material\01.PackUnpackDemo\StepByStep\PackUnpack.cs”文件復制到“D:\WinFormTest\01.PackUnpackDemo\PackUnpackDemo\PackUnpackDemo”目錄下。添加PackUnpack.cs文件實驗步驟雙擊打開MainForm.cs文件,PackUnpackDemo項目界面如圖5-14所示,按照表5-3所示的控件說明為控件添加響應方法。添加控件的響應方法
雙擊打開MainForm.cs文件,PackUnpackDemo項目界面如圖5-14所示,按照表5-3所示的控件說明為控件添加響應方法。實驗步驟添加控件的響應方法在MainForm.cs文件的PackUnpackD
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 教育類課題申報書分工
- 2018贛州課題申報書
- 合同范本剪輯制作
- 育人平臺課題申報書
- 旅游教改課題申報書范本
- 教改研究課題申報書
- 下浮類合同范本
- 痛經(jīng)課題申報書
- 單位全供貨合同范本
- 合同范例軟件全
- 湖北省2025屆高三下學期2月調考語文試題及參考答案
- 2025年《地陪導游服務程序》公開課標準教案
- 愛耳日完整課件
- 云南省2025年中考化學第三次模擬考試試題含答案
- 生物醫(yī)藥研發(fā)實驗室的安全風險評估與控制
- 合肥科技職業(yè)學院單招計算機類考試復習題庫(含答案)
- 系統(tǒng)集成項目售后服務方案
- 2018-2022年北京市中考真題數(shù)學試題匯編:填空壓軸(第16題)
- 蘇科版(2025新版)八年級下冊物理第七章 力 單元測試卷(含答案)
- 初三物理常識試卷單選題100道及答案
- 2025年吉林省吉林市事業(yè)單位招聘入伍高校畢業(yè)生54人歷年高頻重點提升(共500題)附帶答案詳解
評論
0/150
提交評論