項(xiàng)目十四物聯(lián)網(wǎng)技術(shù)綜合實(shí)踐_第1頁(yè)
項(xiàng)目十四物聯(lián)網(wǎng)技術(shù)綜合實(shí)踐_第2頁(yè)
項(xiàng)目十四物聯(lián)網(wǎng)技術(shù)綜合實(shí)踐_第3頁(yè)
項(xiàng)目十四物聯(lián)網(wǎng)技術(shù)綜合實(shí)踐_第4頁(yè)
項(xiàng)目十四物聯(lián)網(wǎng)技術(shù)綜合實(shí)踐_第5頁(yè)
已閱讀5頁(yè),還剩47頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、項(xiàng)目十四 智能電子商務(wù)配送系統(tǒng)功能擴(kuò)展與實(shí)現(xiàn)一、教學(xué)目標(biāo)1、掌握物聯(lián)網(wǎng)綜合實(shí)踐開發(fā)技巧。2、掌握物聯(lián)網(wǎng)綜合實(shí)踐開發(fā)流程。3、掌握握物聯(lián)網(wǎng)網(wǎng)工程集集成技術(shù)術(shù)。二、教學(xué)學(xué)內(nèi)容14.11 智智能電子子商務(wù)倉(cāng)倉(cāng)儲(chǔ)配送送系統(tǒng)項(xiàng)項(xiàng)目任務(wù)務(wù)單項(xiàng)目名稱稱智能電子子商務(wù)倉(cāng)倉(cāng)儲(chǔ)物流流配送系系統(tǒng)開發(fā)發(fā)任務(wù)內(nèi)容容任務(wù)1:企業(yè)一一卡通系系統(tǒng)及出出廠商品品登記功功能開發(fā)發(fā);任務(wù)2:智能電電子商務(wù)務(wù)物流倉(cāng)倉(cāng)儲(chǔ)揀貨貨、備貨貨、出庫(kù)庫(kù);任務(wù)3:智能電電子商務(wù)務(wù)倉(cāng)儲(chǔ)環(huán)環(huán)境參數(shù)數(shù)監(jiān)控功功能開發(fā)發(fā);任務(wù)4:貨物在在途跟蹤蹤與數(shù)據(jù)據(jù)監(jiān)測(cè);任務(wù)5:貨到簽簽收及動(dòng)動(dòng)態(tài)盤點(diǎn)點(diǎn)功能開開發(fā)。任務(wù)說(shuō)明明1、電子子商務(wù)訂訂貨下達(dá)達(dá)訂單,訂單中中的貨

2、物物在貨架架上顯示示標(biāo)記。同時(shí)在在大學(xué)城城職教新新干線相相應(yīng)的板板塊上加加以展示示。2、倉(cāng)庫(kù)庫(kù)揀貨提提醒、備備貨、出出庫(kù)掃描描等,出出庫(kù)時(shí)對(duì)對(duì)接物流流公共信信息平臺(tái)臺(tái)的綜合合配貨系系統(tǒng),將將該條貨貨源數(shù)據(jù)據(jù)發(fā)布到到物流公公共信息息平臺(tái)上上,同時(shí)時(shí)在大學(xué)學(xué)城職教教新干線線相應(yīng)的的板塊上上加以展展示。3、倉(cāng)庫(kù)庫(kù)環(huán)境參參數(shù)監(jiān)測(cè)測(cè),包括括倉(cāng)庫(kù)溫溫度、濕濕度、煙煙傳感、視頻監(jiān)監(jiān)控等。倉(cāng)管員員可以通通過(guò)智能能手機(jī)通通過(guò)WIIFI或或3G網(wǎng)網(wǎng)絡(luò)獲取取倉(cāng)庫(kù)內(nèi)內(nèi)相應(yīng)的的環(huán)境參參數(shù)數(shù)據(jù)據(jù)。同時(shí)時(shí)在大學(xué)學(xué)城職教教新干線線相應(yīng)的的板塊上上加以展展示。4、物流流配送貨貨物在途途跟蹤,對(duì)接物物流公共共信息平平臺(tái)的GGPS

3、 Onee定位系系統(tǒng),GGPS系系統(tǒng)可查查相應(yīng)訂訂單信息息。貨主主或用戶戶可通過(guò)過(guò)PC端端或智能能手機(jī)通通過(guò)WIIFI或或3G網(wǎng)網(wǎng)絡(luò)獲取取貨物在在途的相相應(yīng)環(huán)境境參數(shù)數(shù)數(shù)據(jù)。同同時(shí)在大大學(xué)城職職教新干干線相應(yīng)應(yīng)的板塊塊上加以以展示。5、貨到到簽收,采用客客戶手機(jī)機(jī)簽收方方案。對(duì)對(duì)電子商商務(wù)系統(tǒng)統(tǒng)智能倉(cāng)倉(cāng)庫(kù)進(jìn)行行動(dòng)態(tài)盤盤點(diǎn),同同時(shí)在大大學(xué)城職職教新干干線相應(yīng)應(yīng)的板塊塊上加以以展示。使用設(shè)備備及材料料物聯(lián)網(wǎng)應(yīng)應(yīng)用開發(fā)發(fā)實(shí)驗(yàn)臺(tái)臺(tái)1套(包含主主要設(shè)備備:高頻頻RFIID讀寫寫器1臺(tái)臺(tái)、多路路復(fù)用器器1臺(tái)、高頻RRFIDD小天線線8個(gè)、WSNN工業(yè)級(jí)級(jí)網(wǎng)關(guān)11臺(tái)、溫溫濕度傳傳感器節(jié)節(jié)點(diǎn)1個(gè)個(gè)、Ziigb

4、eee數(shù)碼碼顯示模模塊1個(gè)個(gè)、串口口通信數(shù)數(shù)碼管88個(gè)、高高頻RFFID電電子標(biāo)簽簽 若干干、智能能倉(cāng)儲(chǔ)管管理系統(tǒng)統(tǒng)配套開開發(fā)教學(xué)學(xué)資源包包 1套套),PPC電腦腦1套,實(shí)驗(yàn)桌桌椅1套套,智能能手機(jī)88臺(tái)。指導(dǎo)教師師劉洋(主主講、北北京京勝勝世紀(jì)物物聯(lián)網(wǎng)事事業(yè)部部部門經(jīng)理理),楊楊曉峰(助講、湖南省省物流公公共信息息平臺(tái)有有限公司司技術(shù)總總監(jiān)),班主任任時(shí)間4天提交資料料1、實(shí)訓(xùn)訓(xùn)報(bào)告;2、設(shè)計(jì)計(jì)文檔。14.22 智智能電子子商務(wù)倉(cāng)倉(cāng)儲(chǔ)配送送系統(tǒng)需需求概述述智能電電子商務(wù)務(wù)倉(cāng)儲(chǔ)配配送系統(tǒng)統(tǒng)當(dāng)前前的倉(cāng)儲(chǔ)儲(chǔ)配送系系統(tǒng)借助助于傳統(tǒng)統(tǒng)的人工工管理方方法和手手段,數(shù)數(shù)據(jù)的采采集和錄錄入一直直都是手手工操

5、作作,效率率低下、差錯(cuò)率率高,且且資產(chǎn)實(shí)實(shí)物信息息與管理理系統(tǒng)信信息無(wú)法法實(shí)時(shí)同同步。RRFIDD技術(shù)作作為物理理世界與與現(xiàn)有IIT系統(tǒng)統(tǒng)的橋梁梁,可將將資產(chǎn)日日常管理理活動(dòng)與與資產(chǎn)管管理系統(tǒng)統(tǒng)有效的的整合在在一起,從而達(dá)達(dá)到實(shí)物物信息與與系統(tǒng)信信息的實(shí)實(shí)時(shí)同步步一致。通過(guò)RFFID這這項(xiàng)新技技術(shù)實(shí)現(xiàn)現(xiàn)遠(yuǎn)程、動(dòng)態(tài)、實(shí)時(shí)的的 HYPERLINK /search/pro_yeixuA_3D_3D.html 設(shè)備資產(chǎn)產(chǎn)數(shù)據(jù)采采集,替替換傳統(tǒng)統(tǒng)資產(chǎn)管管理方式式的前臺(tái)臺(tái)人工數(shù)數(shù)據(jù)采集集,更好好的與后后臺(tái)計(jì)算算機(jī)數(shù)據(jù)據(jù)庫(kù)結(jié)合合,實(shí)現(xiàn)對(duì)日日常管理理中的資資產(chǎn)新增增、調(diào)撥撥和盤點(diǎn)點(diǎn)等信息息進(jìn)行實(shí)實(shí)時(shí)監(jiān)控控、記

6、錄錄和自動(dòng)動(dòng)更新,同時(shí)采采集人員員信息,從而避避免因人人為因素素造成的的信息失失真引起起管理效效能的下下降,為為單位領(lǐng)領(lǐng)導(dǎo)、網(wǎng)網(wǎng)絡(luò)規(guī)劃劃投資與與設(shè)計(jì)等等部門提提供更準(zhǔn)準(zhǔn)確、實(shí)實(shí)時(shí)的網(wǎng)網(wǎng)絡(luò)資產(chǎn)產(chǎn)實(shí)物信信息,提提高資產(chǎn)產(chǎn)使用效效率,有有效降低低和控制制日常管管理和生生產(chǎn)成本本,從而而創(chuàng)造良良好的社社會(huì)及經(jīng)經(jīng)濟(jì)效益益。圖14-1 智智能電子子商務(wù)倉(cāng)倉(cāng)儲(chǔ)配送送系統(tǒng)框框架圖14.33 智智能電子子商務(wù)倉(cāng)倉(cāng)儲(chǔ)配送送系統(tǒng)開開發(fā)環(huán)境境準(zhǔn)備(1)安安裝SQQL SSeveer 220055(省略略);(2)安安裝Viisuaal Stuudioo 20010(省略);(3)安安裝PoowerrDessignne

7、r(省略)。14.44 智智能電子子商務(wù)倉(cāng)倉(cāng)儲(chǔ)配送送系統(tǒng)功功能設(shè)計(jì)計(jì)主要包括括出廠商商品登記記、環(huán)境境參數(shù)監(jiān)監(jiān)控、商商品入庫(kù)庫(kù)、商品品出庫(kù)、入庫(kù)/揀貨提提醒、商商品監(jiān)控控和動(dòng)態(tài)態(tài)盤點(diǎn)。出廠商品品登記:針對(duì)于桌桌面讀寫寫器對(duì)RRFIDD多卡的的操作。實(shí)現(xiàn)對(duì)多多卡卡號(hào)號(hào)的讀取取。同時(shí)對(duì)多多卡進(jìn)行行信息的的寫入。根據(jù)實(shí)際際情況對(duì)對(duì)寫入信信息進(jìn)行行校驗(yàn)。環(huán)境參數(shù)數(shù)監(jiān)控:通過(guò)WSSN無(wú)線線傳感網(wǎng)網(wǎng)絡(luò)的溫溫濕度節(jié)節(jié)點(diǎn)獲取取當(dāng)前環(huán)環(huán)境的溫溫度和濕濕度,并并在程序序界面上上顯示。商品入庫(kù)庫(kù):通過(guò)桌面面讀寫器器進(jìn)行商商品入庫(kù)庫(kù)操作。自動(dòng)生成成入庫(kù)單單號(hào)以“i”開頭,最初的的入庫(kù)單單號(hào)為“i10000000000

8、00001”為133位。通過(guò)桌面面讀寫器器進(jìn)行多多卡識(shí)別別并進(jìn)行行綁定內(nèi)內(nèi)容包括括一級(jí)分分類、二二級(jí)分類類、商品品名稱、規(guī)格型型號(hào)、商商品編碼碼、單位位、貨位位。自動(dòng)為入入庫(kù)商品品分配貨貨位。顯示入庫(kù)庫(kù)商品數(shù)數(shù)量。打印入庫(kù)庫(kù)單,入入庫(kù)單內(nèi)內(nèi)容包括括商品名名稱、所所分配貨貨架、商商品數(shù)量量。在入庫(kù)單單右下角角顯示條條形碼,在條碼碼下方顯顯示條碼碼值。商品出庫(kù)庫(kù):通過(guò)復(fù)用用讀寫器器進(jìn)行出出庫(kù)操作作。自動(dòng)生成成出庫(kù)單單號(hào)以“o”開頭,最初的的出庫(kù)單單號(hào)為“o1000000000000001”為133位。可選擇商商品名稱稱、所在在貨位、出庫(kù)數(shù)數(shù)量。對(duì)出庫(kù)商商品進(jìn)行行綁定包包括商品品卡號(hào)、商品名名稱、數(shù)

9、數(shù)量、所所在貨位位編號(hào)。打印出庫(kù)庫(kù)單,出出庫(kù)單內(nèi)內(nèi)容包括括商品名名稱、所所在貨位位、商品品數(shù)量。在出庫(kù)單單右下角角顯示條條形碼,在條碼碼下方顯顯示條碼碼值。入庫(kù)/揀揀貨提醒醒:通過(guò)入庫(kù)庫(kù)單或出出庫(kù)單對(duì)對(duì)貨架進(jìn)進(jìn)行操作作實(shí)現(xiàn)智智能出庫(kù)庫(kù)或入庫(kù)庫(kù)。通過(guò)條碼碼槍掃描描打印好好的出庫(kù)庫(kù)單或入入庫(kù)單判判斷出庫(kù)庫(kù)還是入入庫(kù)。對(duì)出庫(kù)或或入庫(kù)商商品進(jìn)行行綁定顯顯示并顯顯示數(shù)量量,對(duì)要要操作的的貨位使使其指示示燈亮起起。出庫(kù)或入入庫(kù)完成成后指示示燈熄滅滅。商品監(jiān)控控:對(duì)貨架的的整體監(jiān)監(jiān)控。對(duì)貨架進(jìn)進(jìn)行整體體實(shí)時(shí)監(jiān)監(jiān)控。綁定每個(gè)個(gè)貨位的的商品信信息,包包括商品品卡號(hào)和和名稱,并綁定定數(shù)量。當(dāng)貨架上上的商品品數(shù)量與

10、與庫(kù)存數(shù)數(shù)量不同同時(shí),指指示燈亮亮起。動(dòng)態(tài)盤點(diǎn)點(diǎn):對(duì)貨架的的盤點(diǎn)操操作。綁定商品品的名稱稱、庫(kù)存存數(shù)量和和實(shí)際數(shù)數(shù)量。對(duì)比庫(kù)存存數(shù)量和和實(shí)際數(shù)數(shù)量。顯示盤點(diǎn)點(diǎn)結(jié)果。14.55 智智能電子子商務(wù)倉(cāng)倉(cāng)儲(chǔ)配送送系統(tǒng)數(shù)數(shù)據(jù)庫(kù)設(shè)設(shè)計(jì)圖14-2數(shù)據(jù)庫(kù)庫(kù)表結(jié)構(gòu)構(gòu)匯總展展示14.66 智智能電子子商務(wù)倉(cāng)倉(cāng)儲(chǔ)配送送系統(tǒng)程程序設(shè)計(jì)計(jì)注:因?yàn)闉榻o合實(shí)實(shí)踐項(xiàng)目目所涉及及的程序序代碼比比較多,以下只只將關(guān)鍵鍵代碼信信息列出出來(lái),關(guān)關(guān)于變量量定義、串口打打開與關(guān)關(guān)閉、構(gòu)構(gòu)造函數(shù)數(shù)、一些些操作事事件都在在教學(xué)資資源中提提供。1、出廠廠商品登登記(1)界界面設(shè)計(jì)計(jì)圖14-3出廠廠商品登登記界面面(2)窗窗體屬性性設(shè)置向控件中

11、中添加22個(gè)grrouppboxx控件,6個(gè)標(biāo)標(biāo)簽,66個(gè)teextbbox,4個(gè)按按鈕和11個(gè)添加加滾動(dòng)條條的teextbbox控控件??丶Q稱NameeTexttgrouupbooxgbCaardssID商品標(biāo)簽簽grouupbooxgbGooodssInffo商品信息息控件名稱稱NameeTexttLabeellblCCateegorry一級(jí)分類類LabeellblTTypee二級(jí)分類類LabeellblNNamee商品名稱稱LabeellblSSpeccifiicattionn規(guī)格型號(hào)號(hào)LabeellblCCodee商品編碼碼LabeellblUUnitt單位控件名稱稱NameeTe

12、xttTexttboxxlblCCateegorryTexttboxxlblTTypeeTexttboxxlblNNameeTexttboxxlblSSpeccifiicattionnTexttboxxlblCCodeeTexttboxxlblUUnitt控件名稱稱NameeScroollBBarssTextttxtCCarddsIDDVertticaal控件名稱稱NameeTexttButttonbtnRReaddCarrdsIID讀卡IDDButttonbtnCCleaarCaardssID清空(商商品標(biāo)簽簽中)ButttonbtnWWritteCaard寫卡ButttonbtnCClea

13、arInnfo清空(商商品信息息中)(3)編編寫后臺(tái)臺(tái)代碼獲取讀取取到的卡卡號(hào)的泛泛型集合合。/ / 獲獲取IDD的泛型型集合方方法 / prrivaate voiid GGetIID() /VCCPOGGetCCarddNummberrMulltipple()讀寫寫器讀取取多卡卡卡號(hào)方法法 ccarddNo = tthiss.rffid.VCPPOGeetCaardNNumbberMMulttiplle(); 校驗(yàn)方法法,對(duì)寫寫入信息息進(jìn)行校校驗(yàn)。/ / 寫寫入信息息校驗(yàn) / / prrivaate boool CChecckInnputt() iif (thiis.ttxtCCateego

14、rry.TTextt = ) MesssaggeBoox.SShoww(一一級(jí)分類類不能為為空!); retturnn faalsee; eelsee iff (tthiss.txxtTyype.Texxt = ) MesssaggeBoox.SShoww(二二級(jí)分類類不能為為空!); retturnn faalsee; eelsee iff (tthiss.txxtNaame.Texxt = ) MesssaggeBoox.SShoww(商商品名稱稱不能為為空!); retturnn faalsee; eelsee iff (tthiss.txxtSppeciificcatiion.Texx

15、t = ) MesssaggeBoox.SShoww(規(guī)規(guī)格型號(hào)號(hào)不能為為空!); retturnn faalsee; eelsee iff (tthiss.txxtCoode.Texxt = ) MesssaggeBoox.SShoww(商商品編碼碼不能為為空!); retturnn faalsee; eelsee iff (tthiss.txxtUnnit.Texxt = ) MesssaggeBoox.SShoww(單單位不能能為空!); retturnn faalsee; eelsee retturnn trrue; 窗體載入入事件,打開讀讀寫器連連接串口口。/ / 窗窗體載入入事件

16、/ / / prrivaate voiid ffrmIInittRegg_Looad(objjectt seendeer, EveentAArgss e) OOpennRFIID(); 讀卡按鈕鈕事件,每條卡卡號(hào)分別別占一行行,所以以在添加加是后要要跟“rnn”換行。/ / 讀讀卡按鈕鈕事件 / / / prrivaate voiid bbtnRReaddCarrdsIID_CClicck(oobjeect sennderr, EEvenntArrgs e) ttxtCCarddsIDD.Teext = ; GGetIID(); ffor (innt ii = 0; i caardNNo.CC

17、ounnt; i+) txttCarrdsIID.TTextt += caardNNoii + rnn; 商品標(biāo)簽簽清空按按鈕事件件/ / 清清空IDD按鈕事事件 / / / prrivaate voiid bbtnCCleaarCaardssID_Cliick(objjectt seendeer, EveentAArgss e) ttxtCCarddsIDD.Teext = ; 寫卡按鈕鈕事件/ / 寫寫卡按鈕鈕事件 / / / prrivaate voiid bbtnWWritteCaard_Cliick(objjectt seendeer, EveentAArgss e) iif (Ch

18、eeckIInpuut() forr (iint i = 0; i ccarddNo.Couunt; i+) sttrinng iinfoormaatioon = txxtCaateggoryy.Teext + + txxtTyype.Texxt + + txxtNaame.Texxt + + txxtSppeciificcatiion.Texxt + + txxtCoode.Texxt + + txxtUnnit.Texxt; thhis.rfiid.WWritte(ccarddNoi, innforrmattionn); MesssaggeBoox.SShoww(寫寫入成功功!); 商品信

19、息息清空按按鈕/ / 清清空信息息按鈕事事件 / / / prrivaate voiid bbtnCCleaarInnfo_Cliick(objjectt seendeer, EveentAArgss e) fforeeachh (CConttroll c in thiis.ggbGooodssInffo.CConttrolls) if (c is TexxtBoox) c.Texxt = ; 2、環(huán)境境參數(shù)監(jiān)監(jiān)控(1)界界面設(shè)計(jì)計(jì)圖14-4環(huán)境境參數(shù)監(jiān)監(jiān)控界面面(2)窗窗體屬性性設(shè)置窗體StarrtPoosittionn屬性MaxiimizzeBoox屬性性MiniimizzeBoox屬性性

20、FormmBorrderrStyyle屬屬性Textt屬性frmGGooddsOuutCentterPPareentFalsseFalsseFixeedSiinglle環(huán)境參數(shù)數(shù)監(jiān)控設(shè)置Laablee控件屬屬性控件Namee屬性Textt屬性LabllelblTTempperaaturre溫度:LablleLabeel1溫度:LabllelblHHumiiditty濕度:LablleLabeel2濕度:LabllelblEEnvrrionnmenntVaaluee0LabllelblEEnvrrionnmenntVaaluee10LabllelblHHumiidittyVaaluee0Labl

21、lelblHHumiidittyVaaluee10設(shè)置GrrouppBoxx控件屬屬性控件Namee屬性Textt屬性GrouupBooxgbEnnvirronmmenttParram環(huán)境參數(shù)數(shù)(3)編編寫后臺(tái)臺(tái)代碼:獲取節(jié)點(diǎn)點(diǎn)的基本本信息,向?qū)?yīng)應(yīng)的節(jié)點(diǎn)點(diǎn)發(fā)送了了信息后后,節(jié)點(diǎn)點(diǎn)會(huì)返回回信息。即可獲獲取節(jié)點(diǎn)點(diǎn)的基本本信息。 / / SSenssor_Reaad指令令 / / / prrivaate voiid SSenssorRReadd() DDataaTabble dtbb = Proograam.ddbo.GettDattaTaablee(sttrinng.FFormmat(seele

22、cct IIEEEEAdddresss,SShorrtAdddreess,NoddeTyype,NoddeCllasss frrom CarrgoNNodee whheree NoodeTTypee=0, 6); ffor (innt ii = 0; i dttb.RRowss.Coountt; ii+) tryy thhis.timme = 0; thhis.timmer11.Sttop(); /獲取流流水號(hào) thhis.seqquennceIID_TT1 = thhis.messsaggeT11.GeetSeequeenceeID(); /實(shí)例化化節(jié)點(diǎn)泛泛型 Liist nnodeeLis

23、st = neew LListt(); /實(shí)例化化節(jié)點(diǎn) GRRIP_Nodde nnodee = neww GRRIP_Nodde(); /獲取節(jié)節(jié)點(diǎn)編號(hào)號(hào) noode.IEEEEAdddreess = ddtb.RowwsiiIEEEEAdddreess.TToSttrinng(); /獲取節(jié)節(jié)點(diǎn)地址址 /nodde.SShorrtAdddreess = CConvvertt.TooUInnt166(1102555, 166);nodee.ShhorttAdddresss = Coonveert.ToUUIntt16(dtbb.RoowsiShhorttAdddresss.TooStrrin

24、gg(), 166); /將節(jié)點(diǎn)點(diǎn)信息添添加到節(jié)節(jié)點(diǎn)泛型型中 noodeLListt.Addd(nnodee); /將節(jié)點(diǎn)點(diǎn)數(shù)量轉(zhuǎn)轉(zhuǎn)換成bbytee類型 byyte devviceeCouunt = CConvvertt.TooBytte(nnodeeLisst.CCounnt); /將節(jié)點(diǎn)點(diǎn)類型轉(zhuǎn)轉(zhuǎn)換成bbytee類型 byyte sennsorrClaass = CConvvertt.TooBytte(ddtb.RowwsiiNoddeCllasss); /將節(jié)點(diǎn)點(diǎn)型號(hào)轉(zhuǎn)轉(zhuǎn)換成bbytee類型 UIInt116 ssenssorTTypee = Connverrt.TToUIInt116(

25、ddtb.RowwsiiNoddeTyype.TToSttrinng(), 116); /讀取數(shù)數(shù)據(jù) GRRIP_MesssaggeBoody_Sennsorr_Reead msggBoddySeend = nnew GRIIP_MMesssageeBoddy_SSenssor_Reaad(ddeviiceCCounnt, sennsorrClaass, seensoorTyype, noodeLListt); /獲取發(fā)發(fā)送的消消息 GRRIP_MesssaggeHeead msggHeaadSeend = nnew GRIIP_MMesssageeHeaad(mmsgBBodyySennd.

26、BBodyyLenngthh, (UInnt166)GRRIP_Messsagge_CCommmanddID.NWMM_SEENSOOR_RREADD, tthiss.seequeenceeID_T1); /獲取發(fā)發(fā)送的數(shù)數(shù)據(jù)包的的bytte數(shù)組組 byyte mmsgSSendd = thiis.mmesssageeT1.GettSenndMeessaage(msggHeaadSeend, mssgBoodySSendd); innt llenSSendd = 0; /Socckett發(fā)送消消息 SeendMMsg(thiis.ssockket_T1, mssgSeend, SSenssor

27、_Repportt_Reesp); /接收消消息的長(zhǎng)長(zhǎng)度的bbytee數(shù)組 byyte mmsgRRecvv = neww byyte(innt)GGRIPP_MeessaageBBodyy_Leengtth.HHEADDLENNGTHH + (innt)GGRIPP_MeessaageBBodyy_Leengtth.SSENSSOR_REAAD_RRESPP_LEENGTTH; innt llenRRecvv = 0; /Socckett接收消消息 ReecvMMsg(thiis.ssockket_T1, mssgReecv, SSenssor_Repportt); /實(shí)例化化接收的的消息頭

28、頭 GRIIP_MMesssageeHeaad mmsgHHeaddReccv = neew GGRIPP_MeessaageHHeadd(); /實(shí)例化化接收的的消息體體 GRRIP_MesssaggeBoody_Sennsorr_Reead_Ressp mmsgBBodyyReccv = neew GGRIPP_MeessaageBBodyy_Seensoor_RReadd_Reesp(); /獲取接接收的數(shù)數(shù)據(jù)包信信息 thhis.messsaggeT11.GeetReecivveMeessaage(msggReccv, msggHeaadReecv, mssgBoodyRRecvv);

29、 /判斷消消息體長(zhǎng)長(zhǎng)度和流流水號(hào) iff (mmsgHHeaddReccv.MMesssageeLenngthh = (UUIntt16)GRIIP_MMesssageeBoddy_LLenggth.SENNSORR_REEAD_RESSP_LLENGGTH & thiis.ssequuencceIDD_T11 = mssgHeeadRRecvv.SeequeenceeID) /在控控件中顯顯示數(shù)據(jù)據(jù)信息 iif (msggBoddyReecv.Staatuss = 0) GRIIP_MMesssageeBoddy_SSenssor_Reaad_RRespp mssgBoodyRRecvv1

30、= neew GGRIPP_MeessaageBBodyy_Seensoor_RReadd_Reesp(); thhis.sesssioonIDD = msggBoddyReecv.SesssioonIDD; thiis.ttimeer1.Staart(); eelsee thiis.ttimeer1.Staart(); cattch (Exxcepptioon eex) MeessaageBBox.Shoow(Sennsorr_Reead指指令錯(cuò)誤誤: + eex.MMesssagee); 編寫線程程方法,實(shí)時(shí)監(jiān)監(jiān)控的線線程方法法,在該該線程中中使用的的是對(duì)溫溫濕度節(jié)節(jié)點(diǎn)實(shí)時(shí)時(shí)的讀取取并獲取

31、取溫濕度度信息。 #rregiion T2_Thrreadd prrivaate voiid RRun() wwhille (truue) tryy #rregiion T2_Heaad GRRIP_MesssaggeHeead msggHeaadReecv = nnew GRIIP_MMesssageeHeaad(); byyte mmsgRRecvv_Heead = nnew bytte66; ReecvMMsg(thiis.ssockket_T2, mssgReecv_Heaad, T22_Thhreaad_HHeadd_Reecv); mssgHeeadRRecvv.GeetHeead

32、BByteesOffReccivee(mssgReecv_Heaad, 0, 6); UIInt116 mmesssageeLenngthh = msggHeaadReecv.MesssaggeLeengtth; UIInt116 mmesssageeCommmannd = mssgHeeadRRecvv.MeessaageCCommmandd; UIInt116 ssequuencceIDD = msggHeaadReecv.SeqquennceIID; #eendrregiion #rregiion T2_HeaartBBeatt iff (mmesssageeCommmannd = (U

33、Innt166)GRRIP_Messsagge_CCommmanddID.NWMM_HEEARTTBEAAT) GGRIPP_MeessaageHHeadd mssgHeeadSSendd = neww GRRIP_MesssaggeHeead(0, (UIInt116)GGRIPP_Meessaage_CommmanndIDD.NWWM_HHEARRTBEEAT_RESSP, seqquennceIID); bbytee msggSennd = mssgHeeadSSendd.GeetHeeadBByteesOffSennd(); SSenddMsgg(thhis.socckett_T22,

34、 mmsgSSendd, T2_HeaartBBeatt); #eendrregiion #rregiion T2_Staatuss_Reeporrt iff (mmesssageeCommmannd = (UInnt166)GRRIP_Messsagge_CCommmanddID.NWMM_STTATUUS_RREPOORT) GGRIPP_MeessaageBBodyy_Sttatuus_RRepoort msggBoddyReecv = nnew GRIIP_MMesssageeBoddy_SStattus_Repportt(); bbytee msggReccv_BBodyy = ne

35、ww byytemsggHeaadReecv.MesssaggeLeengtth; RRecvvMsgg(thhis.socckett_T22, mmsgRRecvv_Boody, SStattus_Repportt); mmsgBBodyyReccv.CConvverttRecciveeByttes(msggReccv_BBodyy); GGRIPP_MeessaageBBodyy_Sttatuus_RRepoort_Ressp mmsgBBodyySennd = neew GGRIPP_MeessaageBBodyy_Sttatuus_RRepoort_Ressp(00); GGRIPP_

36、MeessaageHHeadd mssgHeeadSSendd = neww GRRIP_MesssaggeHeead(msggBoddySeend.BoddyLeengtth, (UIInt116)GGRIPP_Meessaage_CommmanndIDD.NWWM_SSTATTUS_REPPORTT_REESP, seequeenceeID); bbytee msggSennd = thhis.msgg_T22.GeetSeendMMesssagee(mssgHeeadSSendd, mmsgBBodyySennd); SSenddMsgg(thhis.socckett_T22, mmsg

37、SSendd, Staatuss_Reeporrt_RRespp); iif (msggBoddyReecv.SesssioonIDD = thhis.sesssioonIDD) boool iisExxistt = fallse; if (mssgBoodyRRecvv.SeensoorCllasss = 3 | msggBoddyReecv.SennsorrClaass = 5) innt fflagg = Proograam.ddbo.GettIntt(sttrinng.FFormmat(seelecct FFlagg frrom CarrgoNNodee whheree IEEEEAA

38、ddrresss=0, msggBoddyReecv.Nodde.IIEEEEAdddresss); iff (fflagg = 2) iisExxistt = truue; ellse iisExxistt = fallse; iff (!isEExisst) SShellfNoode sheelfNNodee = neww ShhelffNodde(); sstriing iEEEEAdddreess = PProggramm.dbbo.GGetSStriing(strringg.Foormaat(sellectt IEEEEAAddrresss frrom CarrgoNNodee wh

39、heree IEEEEAAddrresss=0, msggBoddyReecv.Nodde.IIEEEEAdddresss); iif (msggBoddyReecv.Nodde.IIEEEEAdddresss = iiEEEEAdddresss) bytte ssenssorCClasss = mssgBoodyRRecvv.SeensoorCllasss; UInnt166 seensoorTyype = mmsgBBodyyReccv.SSenssorTTypee; strringg shhorttAdddrsss = msggBoddyReecv.Nodde.SShorrtAdddre

40、ess.ToSStriing(X44); Proograam.ddbo.ExeecutteSQQL(sstriing.Forrmatt(uupdaate CarrgoNNodee seet SShorrtAdddreess=00,NoddeTyype=11,NoddeCllasss=2,Fllag=2 whheree IEEEEAAddrresss=3, shoortAAddrrss, seensoorTyype, seensoorCllasss, iiEEEEAdddresss); couunt += 1; #eendrregiion #rregiion T2_Sennsorr_Reepor

41、rt iff (mmesssageeCommmannd = (UInnt166)GRRIP_Messsagge_CCommmanddID.NWMM_SEENSOOR_RREPOORT) GGRIPP_MeessaageBBodyy_Seensoor_RRepoort msggBoddyReecv = nnew GRIIP_MMesssageeBoddy_SSenssor_Repportt(); bbytee msggReccv_BBodyy = neww byytemesssaggeLeengtth; RRecvvMsgg(thhis.socckett_T22, mmsgRRecvv_Bood

42、y, SSenssor_Repportt); mmsgBBodyyReccv.CConvverttRecciveeByttes(msggReccv_BBodyy); GGRIPP_MeessaageBBodyy_Seensoor_RRepoort_Ressp mmsgBBodyySennd = neew GGRIPP_MeessaageBBodyy_Seensoor_RRepoort_Ressp(00); GGRIPP_MeessaageHHeadd mssgHeeadSSendd = neww GRRIP_MesssaggeHeead(msggBoddySeend.BoddyLeengtth

43、, (innt)GGRIPP_Meessaage_CommmanndIDD.NWWM_SSENSSOR_REPPORTT_REESP, seequeenceeID); bbytee msggSennd = thhis.msgg_T22.GeetSeendMMesssagee(mssgHeeadSSendd, mmsgBBodyySennd); SSenddMsgg(thhis.socckett_T22, mmsgSSendd, Sennsorr_Reeporrt_RRespp); iif (thiis.ssesssionnID = msggBoddyReecv.SesssioonIDD) Li

44、sst iEEEEAAddrresss = neww Liist(); iEEEEAdddreess.Addd(Prrogrram.dboo.GeetSttrinng(sstriing.Forrmatt(sseleect IEEEEAdddreess froom CCarggoNoode); forr (iint i = 0; i iiEEEEAdddresss.CCounnt; i+) iff (iiEEEEAdddresssii = mmsgBBodyyReccv.NNodee.IEEEEAAddrresss) OObjCClasss.OObjCCarggoNoode ocnn = new

45、w ObbjCllasss.ObbjCaargooNodde(); oocn.Inssertt(); DDataaTabble dtbbAdddresss = Prrogrram.dboo.GeetDaataTTablle(sstriing.Forrmatt(sseleect IEEEEAdddreess,ShoortAAddrresss frrom CarrgoNNodee whheree NoodeTTypee=0, 6); ffor (innt kk = 0; k dttbAdddreess.Rowws.CCounnt; k+) if (mssgBoodyRRecvv.Noode.IEE

46、EEAdddreess = dtbbAdddresss.RRowsskIIEEEEAdddresss.TooStrringg() iff (kk 1) SShowwLabbelMMesssagee(thhis.lbllEnvvrioonmeentVValuue, (GGRIPP_SeensoorDaata)msggBoddyReecv.Datta).Temmp_HH.TooStrringg() + . + (GRRIP_SennsorrDatta)mmsgBBodyyReccv.DDataa).TTempp_L.ToSStriing() + ?); ShoowLaabellMesssagge(

47、tthiss.lbblHuumiddityyVallue, (GRIIP_SSenssorDDataa)mssgBoodyRRecvv.Daata).Huumi_H.TToSttrinng() + . + (GGRIPP_SeensoorDaata)msggBoddyReecv.Datta).Hummi_LL.TooStrringg() + %); ellse SShowwLabbelMMesssagee(thhis.lbllEnvvrioonmeentVValuue1, (GRIIP_SSenssorDDataa)mssgBoodyRRecvv.Daata).Teemp_H.TToSttri

48、nng() + . + (GGRIPP_SeensoorDaata)msggBoddyReecv.Datta).Temmp_LL.TooStrringg() + ?); SShowwLabbelMMesssagee(thhis.lbllHummidiityVValuue1, (GRIIP_SSenssorDDataa)mssgBoodyRRecvv.Daata).Huumi_H.TToSttrinng() + . + (GGRIPP_SeensoorDaata)msggBoddyReecv.Datta).Hummi_LL.TooStrringg() + %); brreakk; #eendrr

49、egiion #rregiion T2_Eveent_Repportt iff (mmesssageeCommmannd = (UInnt166)GRRIP_Messsagge_CCommmanddID.NWMM_EVVENTT_REEPORRT) GGRIPP_MeessaageBBodyy_Evventt_Reeporrt mmsgBBodyyReccv = neew GGRIPP_MeessaageBBodyy_Evventt_Reeporrt(); bbytee msggReccv = neew bbyteemeessaageLLenggth; RRecvvMsgg(thhis.soc

50、ckett_T22, mmsgRRecvv, T2_Eveent_Repportt); mmsgBBodyyReccv.CConvverttRecciveeByttes(msggReccv); GGRIPP_MeessaageBBodyy_Evventt_Reeporrt_RRespp mssgBoodySSendd = neww GRRIP_MesssaggeBoody_Eveent_Repportt_Reesp(0); GGRIPP_MeessaageHHeadd mssgHeeadSSendd = neww GRRIP_MesssaggeHeead(msggBoddySeend.Bodd

51、yLeengtth, (UIInt116)GGRIPP_Meessaage_CommmanndIDD.NWWM_EEVENNT_RREPOORT_RESSP, seqquennceIID); bbytee msggSennd = thhis.msgg_T22.GeetSeendMMesssagee(mssgHeeadSSendd, mmsgBBodyySennd); SSenddMsgg(thhis.socckett_T22, mmsgSSendd, T2_Eveent_Repportt_Reesp); MMesssageeBoxx.Shhow(EvventtID: + mssgBoodyRR

52、ecvv.EvventtID.ToSStriing(); MMesssageeBoxx.Shhow(EvventtNumm: + mmsgBBodyyReccv.EErroorNuum.TToSttrinng(); #eendrregiion cattch (Exxcepptioon eex) MeessaageBBox.Shoow(Thrreadd_T22_Errrorr! + eex); 心跳包方方法,為為了防止止在沒有有通信的的時(shí)候網(wǎng)網(wǎng)關(guān)將連連接的用用戶踢出出連接,在400秒時(shí)發(fā)發(fā)送一個(gè)個(gè)空的心心跳包。并接收收返回信信息。 #rregiion T1_HeaartBBeatt prriva

53、ate voiid ttimeer1_Ticck(oobjeect sennderr, EEvenntArrgs e) tthiss.seeconnd+; iif (thiis.ssecoond = 5) /這里里是為了了將放回回的溫濕濕度節(jié)點(diǎn)點(diǎn)的信息息顯示,每隔55秒將程程序界面面的信息息進(jìn)行更更新。重重新顯示示溫濕度度信息。 thiis.RRefrreshh(); iif (thiis.ssecoond = 40) tryy thhis.seqquennceIID_TT1 = thhis.msgg_T11.GeetSeequeenceeID(); GRRIP_MesssaggeHeead

54、msggHeaadSeend = nnew GRIIP_MMesssageeHeaad(00, (intt)GRRIP_Messsagge_CCommmanddID.NWMM_HEEARTTBEAAT, thiis.ssequuencceIDD_T11); byyte mmsgSSendd = msggHeaadSeend.GettHeaadByytessOfSSendd(); SeendMMsg(thiis.ssockket_T1, mssgSeend, TT1_HHearrtBeeat); GRRIP_MesssaggeHeead msggHeaadReecv = nnew GRIIP_M

55、MesssageeHeaad(); byyte mmsgRRecvv = neww byyte6; ReecvMMsg(thiis.ssockket_T1, mssgReecv, TT1_HHearrtBeeat_Ressp); mssgHeeadRRecvv.GeetHeeadBByteesOffReccivee(mssgReecv, 0, 6); iff (mmsgHHeaddReccv.SSequuencceIDD = thhis.seqquennceIID_TT1) tthiss.seeconnd = 0; ellse MMesssageeBoxx.Shhow(T11_HeearttB

56、eaat_RRespp_SeequeenceeID_Errror!); cattch (Exxcepptioon eex) MeessaageBBox.Shoow(T1_HeaartBBeatt_Errrorr!+ex.Messsagge); #enndreegioon3、商品品入庫(kù)在商品入入庫(kù)的操操作前,我們需需要編寫寫一個(gè)類類來(lái)將要要處理的的對(duì)象進(jìn)進(jìn)行封裝裝。如:入庫(kù)單單,每個(gè)個(gè)貨物的的信息等等。(1)界界面設(shè)計(jì)計(jì)圖14-5商品品入庫(kù)界界面(2)修修改控件件屬性設(shè)設(shè)置控件名稱稱NameeTexttLabeellblIInCoode入庫(kù)單號(hào)號(hào):LabeellblNNum數(shù)量:Labeellb

57、lGGooddsInnDettaill入庫(kù)詳單單:控件名稱稱NameeReaddOnllyTexttBoxxtxtIInCoodeTrueeTexttBoxxtxtNNumTruee控件名稱稱NameeTexttButttonbtnPPrinnt入庫(kù)單打打印ButttonbtnOOk確定ButttonbtnCCleaar清空商品入庫(kù)庫(kù)索引號(hào)NameeTextt0colCCateegorry一級(jí)分類類1colTTypee二級(jí)分類類2cloNNamee商品名稱稱3colSSpeccifiicattionn規(guī)格型號(hào)號(hào)4colCCodee商品編碼碼5colUUnitt單位6colCCarggo貨位(3

58、)模模塊編寫寫后臺(tái)代代碼定義私有有變量,接口類類需要實(shí)實(shí)例化兩兩次,不不同名稱稱,因?yàn)闉樵谡{(diào)用用過(guò)程中中打開后后讀寫器器串口后后無(wú)法對(duì)對(duì)復(fù)用器器的方法法進(jìn)行調(diào)調(diào)用:獲取商品品數(shù)量,讀取到到的卡號(hào)號(hào)的數(shù)量量:/ / 獲獲取商品品數(shù)量 / prrivaate voiid GGetNNumbber() ccarddNo = tthiss.rffidVVCPOO.VCCPOGGetCCarddNummberrMulltipple(); tthiss.txxtNuum.TTextt = carrdNoo.Coountt.TooStrringg(); 對(duì)掃描的的貨物做做操作,界面顯顯示,貨貨位分配配任務(wù)的

59、的方法: / / 對(duì)對(duì)掃描的的貨物做做操作,界面顯顯示,貨貨位分配配任務(wù) / priivatte vvoidd AllloccateeLoccatiion() iif (thiis.ccarddNo.Couunt 00) foor (intt i = 00; ii 00) ffor (innt jj = 0; j thhis.lsvvGooodsIInDeetaiil.IItemms.CCounnt; j+) if (caardNNoii = llsvGGooddsInnDettaill.Ittemssj.Taag.TToSttrinng() issOk = ffalsse; iif(iisO

60、kk) intt caargoo = disstriibutteCaargoo(); BinndLiistvvieww(caardNNoii, carrgo); ellse iint carrgo = ddisttribbuteeCarrgo(); BBinddLisstviiew(carrdNooi, ccarggo); eelsee MMesssageeBoxx.Shhow(沒有有檢測(cè)到到貨物,請(qǐng)檢查查); 自動(dòng)為商商品分配配貨位,設(shè)定分分配貨位位每個(gè)貨貨位最多多存放66個(gè)商品品。分配貨位位 / / 貨貨位分配配 / / prrivaate intt diistrribuuteCCargg

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論