版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、项目十四 智能电子商务配送系统功能扩展与实现一、教学目标1、掌握物联网综合实践开发技巧。2、掌握物联网综合实践开发流程。3、掌握握物联网网工程集集成技术术。二、教学学内容14.11 智智能电子子商务仓仓储配送送系统项项目任务务单项目名称称智能电子子商务仓仓储物流流配送系系统开发发任务内容容任务1:企业一一卡通系系统及出出厂商品品登记功功能开发发;任务2:智能电电子商务务物流仓仓储拣货货、备货货、出库库;任务3:智能电电子商务务仓储环环境参数数监控功功能开发发;任务4:货物在在途跟踪踪与数据据监测;任务5:货到签签收及动动态盘点点功能开开发。任务说明明1、电子子商务订订货下达达订单,订单中中的货
2、物物在货架架上显示示标记。同时在在大学城城职教新新干线相相应的板板块上加加以展示示。2、仓库库拣货提提醒、备备货、出出库扫描描等,出出库时对对接物流流公共信信息平台台的综合合配货系系统,将将该条货货源数据据发布到到物流公公共信息息平台上上,同时时在大学学城职教教新干线线相应的的板块上上加以展展示。3、仓库库环境参参数监测测,包括括仓库温温度、湿湿度、烟烟传感、视频监监控等。仓管员员可以通通过智能能手机通通过WIIFI或或3G网网络获取取仓库内内相应的的环境参参数数据据。同时时在大学学城职教教新干线线相应的的板块上上加以展展示。4、物流流配送货货物在途途跟踪,对接物物流公共共信息平平台的GGPS
3、 Onee定位系系统,GGPS系系统可查查相应订订单信息息。货主主或用户户可通过过PC端端或智能能手机通通过WIIFI或或3G网网络获取取货物在在途的相相应环境境参数数数据。同同时在大大学城职职教新干干线相应应的板块块上加以以展示。5、货到到签收,采用客客户手机机签收方方案。对对电子商商务系统统智能仓仓库进行行动态盘盘点,同同时在大大学城职职教新干干线相应应的板块块上加以以展示。使用设备备及材料料物联网应应用开发发实验台台1套(包含主主要设备备:高频频RFIID读写写器1台台、多路路复用器器1台、高频RRFIDD小天线线8个、WSNN工业级级网关11台、温温湿度传传感器节节点1个个、Ziigb
4、eee数码码显示模模块1个个、串口口通信数数码管88个、高高频RFFID电电子标签签 若干干、智能能仓储管管理系统统配套开开发教学学资源包包 1套套),PPC电脑脑1套,实验桌桌椅1套套,智能能手机88台。指导教师师刘洋(主主讲、北北京京胜胜世纪物物联网事事业部部部门经理理),杨杨晓峰(助讲、湖南省省物流公公共信息息平台有有限公司司技术总总监),班主任任时间4天提交资料料1、实训训报告;2、设计计文档。14.22 智智能电子子商务仓仓储配送送系统需需求概述述智能电电子商务务仓储配配送系统统当前前的仓储储配送系系统借助助于传统统的人工工管理方方法和手手段,数数据的采采集和录录入一直直都是手手工操
5、作作,效率率低下、差错率率高,且且资产实实物信息息与管理理系统信信息无法法实时同同步。RRFIDD技术作作为物理理世界与与现有IIT系统统的桥梁梁,可将将资产日日常管理理活动与与资产管管理系统统有效的的整合在在一起,从而达达到实物物信息与与系统信信息的实实时同步步一致。通过RFFID这这项新技技术实现现远程、动态、实时的的 HYPERLINK /search/pro_yeixuA_3D_3D.html 设备资产产数据采采集,替替换传统统资产管管理方式式的前台台人工数数据采集集,更好好的与后后台计算算机数据据库结合合,实现对日日常管理理中的资资产新增增、调拨拨和盘点点等信息息进行实实时监控控、记
6、录录和自动动更新,同时采采集人员员信息,从而避避免因人人为因素素造成的的信息失失真引起起管理效效能的下下降,为为单位领领导、网网络规划划投资与与设计等等部门提提供更准准确、实实时的网网络资产产实物信信息,提提高资产产使用效效率,有有效降低低和控制制日常管管理和生生产成本本,从而而创造良良好的社社会及经经济效益益。图14-1 智智能电子子商务仓仓储配送送系统框框架图14.33 智智能电子子商务仓仓储配送送系统开开发环境境准备(1)安安装SQQL SSeveer 220055(省略略);(2)安安装Viisuaal Stuudioo 20010(省略);(3)安安装PoowerrDessignne
7、r(省略)。14.44 智智能电子子商务仓仓储配送送系统功功能设计计主要包括括出厂商商品登记记、环境境参数监监控、商商品入库库、商品品出库、入库/拣货提提醒、商商品监控控和动态态盘点。出厂商品品登记:针对于桌桌面读写写器对RRFIDD多卡的的操作。实现对多多卡卡号号的读取取。同时对多多卡进行行信息的的写入。根据实际际情况对对写入信信息进行行校验。环境参数数监控:通过WSSN无线线传感网网络的温温湿度节节点获取取当前环环境的温温度和湿湿度,并并在程序序界面上上显示。商品入库库:通过桌面面读写器器进行商商品入库库操作。自动生成成入库单单号以“i”开头,最初的的入库单单号为“i10000000000
8、00001”为133位。通过桌面面读写器器进行多多卡识别别并进行行绑定内内容包括括一级分分类、二二级分类类、商品品名称、规格型型号、商商品编码码、单位位、货位位。自动为入入库商品品分配货货位。显示入库库商品数数量。打印入库库单,入入库单内内容包括括商品名名称、所所分配货货架、商商品数量量。在入库单单右下角角显示条条形码,在条码码下方显显示条码码值。商品出库库:通过复用用读写器器进行出出库操作作。自动生成成出库单单号以“o”开头,最初的的出库单单号为“o1000000000000001”为133位。可选择商商品名称称、所在在货位、出库数数量。对出库商商品进行行绑定包包括商品品卡号、商品名名称、数
9、数量、所所在货位位编号。打印出库库单,出出库单内内容包括括商品名名称、所所在货位位、商品品数量。在出库单单右下角角显示条条形码,在条码码下方显显示条码码值。入库/拣拣货提醒醒:通过入库库单或出出库单对对货架进进行操作作实现智智能出库库或入库库。通过条码码枪扫描描打印好好的出库库单或入入库单判判断出库库还是入入库。对出库或或入库商商品进行行绑定显显示并显显示数量量,对要要操作的的货位使使其指示示灯亮起起。出库或入入库完成成后指示示灯熄灭灭。商品监控控:对货架的的整体监监控。对货架进进行整体体实时监监控。绑定每个个货位的的商品信信息,包包括商品品卡号和和名称,并绑定定数量。当货架上上的商品品数量与
10、与库存数数量不同同时,指指示灯亮亮起。动态盘点点:对货架的的盘点操操作。绑定商品品的名称称、库存存数量和和实际数数量。对比库存存数量和和实际数数量。显示盘点点结果。14.55 智智能电子子商务仓仓储配送送系统数数据库设设计图14-2数据库库表结构构汇总展展示14.66 智智能电子子商务仓仓储配送送系统程程序设计计注:因为为给合实实践项目目所涉及及的程序序代码比比较多,以下只只将关键键代码信信息列出出来,关关于变量量定义、串口打打开与关关闭、构构造函数数、一些些操作事事件都在在教学资资源中提提供。1、出厂厂商品登登记(1)界界面设计计图14-3出厂厂商品登登记界面面(2)窗窗体属性性设置向控件中
11、中添加22个grrouppboxx控件,6个标标签,66个teextbbox,4个按按钮和11个添加加滚动条条的teextbbox控控件。控件名称称NameeTexttgrouupbooxgbCaardssID商品标签签grouupbooxgbGooodssInffo商品信息息控件名称称NameeTexttLabeellblCCateegorry一级分类类LabeellblTTypee二级分类类LabeellblNNamee商品名称称LabeellblSSpeccifiicattionn规格型号号LabeellblCCodee商品编码码LabeellblUUnitt单位控件名称称NameeTe
12、xttTexttboxxlblCCateegorryTexttboxxlblTTypeeTexttboxxlblNNameeTexttboxxlblSSpeccifiicattionnTexttboxxlblCCodeeTexttboxxlblUUnitt控件名称称NameeScroollBBarssTextttxtCCarddsIDDVertticaal控件名称称NameeTexttButttonbtnRReaddCarrdsIID读卡IDDButttonbtnCCleaarCaardssID清空(商商品标签签中)ButttonbtnWWritteCaard写卡ButttonbtnCClea
13、arInnfo清空(商商品信息息中)(3)编编写后台台代码获取读取取到的卡卡号的泛泛型集合合。/ / 获获取IDD的泛型型集合方方法 / prrivaate voiid GGetIID() /VCCPOGGetCCarddNummberrMulltipple()读写写器读取取多卡卡卡号方法法 ccarddNo = tthiss.rffid.VCPPOGeetCaardNNumbberMMulttiplle(); 校验方法法,对写写入信息息进行校校验。/ / 写写入信息息校验 / / prrivaate boool CChecckInnputt() iif (thiis.ttxtCCateego
14、rry.TTextt = ) MesssaggeBoox.SShoww(一一级分类类不能为为空!); retturnn faalsee; eelsee iff (tthiss.txxtTyype.Texxt = ) MesssaggeBoox.SShoww(二二级分类类不能为为空!); retturnn faalsee; eelsee iff (tthiss.txxtNaame.Texxt = ) MesssaggeBoox.SShoww(商商品名称称不能为为空!); retturnn faalsee; eelsee iff (tthiss.txxtSppeciificcatiion.Texx
15、t = ) MesssaggeBoox.SShoww(规规格型号号不能为为空!); 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(); 读卡按钮钮事件,每条卡卡号分别别占一行行,所以以在添加加是后要要跟“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; 商品标签签清空按按钮事件件/ / 清清空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、环境境参数监监控(1)界界面设计计图14-4环境境参数监监控界面面(2)窗窗体属性性设置窗体StarrtPoosittionn属性MaxiimizzeBoox属性性MiniimizzeBoox属性性
20、FormmBorrderrStyyle属属性Textt属性frmGGooddsOuutCentterPPareentFalsseFalsseFixeedSiinglle环境参数数监控设置Laablee控件属属性控件Namee属性Textt属性LabllelblTTempperaaturre温度:LablleLabeel1温度:LabllelblHHumiiditty湿度:LablleLabeel2湿度:LabllelblEEnvrrionnmenntVaaluee0LabllelblEEnvrrionnmenntVaaluee10LabllelblHHumiidittyVaaluee0Labl
21、lelblHHumiidittyVaaluee10设置GrrouppBoxx控件属属性控件Namee属性Textt属性GrouupBooxgbEnnvirronmmenttParram环境参数数(3)编编写后台台代码:获取节点点的基本本信息,向对应应的节点点发送了了信息后后,节点点会返回回信息。即可获获取节点点的基本本信息。 / / 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(); /获取流流水号 thhis.seqquennceIID_TT1 = thhis.messsaggeT11.GeetSeequeenceeID(); /实例化化节点泛泛型 Liist nnodeeLis
23、st = neew LListt(); /实例化化节点 GRRIP_Nodde nnodee = neww GRRIP_Nodde(); /获取节节点编号号 noode.IEEEEAdddreess = ddtb.RowwsiiIEEEEAdddreess.TToSttrinng(); /获取节节点地址址 /nodde.SShorrtAdddreess = CConvvertt.TooUInnt166(1102555, 166);nodee.ShhorttAdddresss = Coonveert.ToUUIntt16(dtbb.RoowsiShhorttAdddresss.TooStrrin
24、gg(), 166); /将节点点信息添添加到节节点泛型型中 noodeLListt.Addd(nnodee); /将节点点数量转转换成bbytee类型 byyte devviceeCouunt = CConvvertt.TooBytte(nnodeeLisst.CCounnt); /将节点点类型转转换成bbytee类型 byyte sennsorrClaass = CConvvertt.TooBytte(ddtb.RowwsiiNoddeCllasss); /将节点点型号转转换成bbytee类型 UIInt116 ssenssorTTypee = Connverrt.TToUIInt116(
25、ddtb.RowwsiiNoddeTyype.TToSttrinng(), 116); /读取数数据 GRRIP_MesssaggeBoody_Sennsorr_Reead msggBoddySeend = nnew GRIIP_MMesssageeBoddy_SSenssor_Reaad(ddeviiceCCounnt, sennsorrClaass, seensoorTyype, noodeLListt); /获取发发送的消消息 GRRIP_MesssaggeHeead msggHeaadSeend = nnew GRIIP_MMesssageeHeaad(mmsgBBodyySennd.
26、BBodyyLenngthh, (UInnt166)GRRIP_Messsagge_CCommmanddID.NWMM_SEENSOOR_RREADD, tthiss.seequeenceeID_T1); /获取发发送的数数据包的的bytte数组组 byyte mmsgSSendd = thiis.mmesssageeT1.GettSenndMeessaage(msggHeaadSeend, mssgBoodySSendd); innt llenSSendd = 0; /Socckett发送消消息 SeendMMsg(thiis.ssockket_T1, mssgSeend, SSenssor
27、_Repportt_Reesp); /接收消消息的长长度的bbytee数组 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); /实例化化接收的的消息头
28、头 GRIIP_MMesssageeHeaad mmsgHHeaddReccv = neew GGRIPP_MeessaageHHeadd(); /实例化化接收的的消息体体 GRRIP_MesssaggeBoody_Sennsorr_Reead_Ressp mmsgBBodyyReccv = neew GGRIPP_MeessaageBBodyy_Seensoor_RReadd_Reesp(); /获取接接收的数数据包信信息 thhis.messsaggeT11.GeetReecivveMeessaage(msggReccv, msggHeaadReecv, mssgBoodyRRecvv);
29、 /判断消消息体长长度和流流水号 iff (mmsgHHeaddReccv.MMesssageeLenngthh = (UUIntt16)GRIIP_MMesssageeBoddy_LLenggth.SENNSORR_REEAD_RESSP_LLENGGTH & thiis.ssequuencceIDD_T11 = mssgHeeadRRecvv.SeequeenceeID) /在控控件中显显示数据据信息 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指指令错误误: + eex.MMesssagee); 编写线程程方法,实时监监控的线线程方法法,在该该线程中中使用的的是对温温湿度节节点实时时的读取取并获取
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); 心跳包方方法,为为了防止止在没有有通信的的时候网网关将连连接的用用户踢出出连接,在400秒时发发送一个个空的心心跳包。并接收收返回信信息。 #rregiion T1_HeaartBBeatt prriva
53、ate voiid ttimeer1_Ticck(oobjeect sennderr, EEvenntArrgs e) tthiss.seeconnd+; iif (thiis.ssecoond = 5) /这里里是为了了将放回回的温湿湿度节点点的信息息显示,每隔55秒将程程序界面面的信息息进行更更新。重重新显示示温湿度度信息。 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、商品品入库在商品入入库的操操作前,我们需需要编写写一个类类来将要要处理的的对象进进行封装装。如:入库单单,每个个货物的的信息等等。(1)界界面设计计图14-5商品品入库界界面(2)修修改控件件属性设设置控件名称称NameeTexttLabeellblIInCoode入库单号号:LabeellblNNum数量:Labeellb
57、lGGooddsInnDettaill入库详单单:控件名称称NameeReaddOnllyTexttBoxxtxtIInCoodeTrueeTexttBoxxtxtNNumTruee控件名称称NameeTexttButttonbtnPPrinnt入库单打打印ButttonbtnOOk确定ButttonbtnCCleaar清空商品入库库索引号NameeTextt0colCCateegorry一级分类类1colTTypee二级分类类2cloNNamee商品名称称3colSSpeccifiicattionn规格型号号4colCCodee商品编码码5colUUnitt单位6colCCarggo货位(3
58、)模模块编写写后台代代码定义私有有变量,接口类类需要实实例化两两次,不不同名称称,因为为在调用用过程中中打开后后读写器器串口后后无法对对复用器器的方法法进行调调用:获取商品品数量,读取到到的卡号号的数量量:/ / 获获取商品品数量 / prrivaate voiid GGetNNumbber() ccarddNo = tthiss.rffidVVCPOO.VCCPOGGetCCarddNummberrMulltipple(); tthiss.txxtNuum.TTextt = carrdNoo.Coountt.TooStrringg(); 对扫描的的货物做做操作,界面显显示,货货位分配配任务的
59、的方法: / / 对对扫描的的货物做做操作,界面显显示,货货位分配配任务 / 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(没有有检测到到货物,请检查查); 自动为商商品分配配货位,设定分分配货位位每个货货位最多多存放66个商品品。分配货位位 / / 货货位分配配 / / prrivaate intt diistrribuuteCCargg
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年苏少版九年级美术上册(全册)知识点梳理归纳
- 福建高考真题及答案
- 房地产真题及答案
- 二年级数学试卷及答案
- 企业安全管理员培训报道
- 2026年贵阳市乌当区新天学校招聘备考题库及完整答案详解
- 天津市卫生健康委员会所属天津医学高等专科学校2026年度公开招聘11人备考题库参考答案详解
- 2026年月侨英街道社区卫生服务中心补充编外人员招聘备考题库及1套参考答案详解
- 2026年苏州市公安局吴中分局招聘警务辅助人员备考题库及参考答案详解
- 上海交响乐团招聘工作人员1名2026年1月4日前报名备考题库及参考答案详解1套
- 锅炉原理培训课件
- 2026年安全员之A证考试题库500道附参考答案(黄金题型)
- 儿童早教中心接待服务流程
- 大学计算机教程-计算与人工智能导论(第4版)课件 第3章 算法和数据结构
- 带脉的课件教学课件
- 中国昭通中药材国际中心项目可行性研究报告
- 2025中国融通资产管理集团有限公司招聘笔试备考试题(230人)附答案解析
- 2026马年春节新年年货节大集庙会(金马迎春年货大集)活动策划方案
- 心脏搭桥课件
- 2026年安全员之A证考试题库500道附答案【满分必刷】
- 2025年广东省第一次普通高中学业水平合格性考试(春季高考)思想政治试题(含答案详解)
评论
0/150
提交评论