微信小程序蓝牙温度数据采集_第1页
微信小程序蓝牙温度数据采集_第2页
微信小程序蓝牙温度数据采集_第3页
微信小程序蓝牙温度数据采集_第4页
微信小程序蓝牙温度数据采集_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微信小程序蓝牙温度数据采集陈拓2019/6/2-2019/6/150.概述本文是《树莓派蓝牙温度传感器》的后续文章,请按先后顺序看,该文档的网址是:/view/423628b3905f804d2b160b4e767f5acfa0c783c1o本文不讲述小程序的基本知识和编程语法,需要事先熟悉。下面本文的最后效果:16:27mi中田电■信令传感器散据采壕已发观1个外国设备:传感需数据来笑停止扫描201^/06/1416.02.072010/06/1416:02:072Q19/06/141602152D19/05/1416:{J2:24201^/06/1416:02:352010/06/1416:02:472Q19/08/1416:<J2:592019/06/1416:03:17201^/06/141E:<]3:2320ISA16/'14ie:d3:292019/08/1416:<J3:352010A56/1416:03:41m^tlcrTYpiEF5DO5.IF-I-=BCWt-2019/06/1216:27:^82a^1C1.开发工具安装/miniprogram/dev/devtools/devtools.html点击下载:和界E05代旧编密4氓厚39乱开剥祠:ISKEttAPI实现差岸V和界E05代旧编密4氓厚39乱开剥祠:ISKEttAPI实现差岸V下城尸彩宙日志重发诈,嫁新m志竟定去吏牙日志历点新E斗日瓠霆唆本,用于.尽快,林朝泗睫成小时特性;Windcp^sd4,Wind-swEZl..macOS侦发布版HBuild顼发布版,包含大的样性;通过内部潍诺,德定性尚可Windows64、Windows径、macOS棋定版StableBuild(1.02.LM4a30j测日版档收甄后建为卷定烦jWindoww64-.Windows312-.maoOS全部更新II志全竿更新日志在稳定版下面,在Windows64、Windows32、macOS中选择一项下载。2.蓝牙通信小程序起步开始>微信web开发者工具微信开发者工具V1.02.1902010欢迎使用微信开发者二套•用手机微信扫描登录在电脑屏幕上打开小程序开发工具:

•点击大“+”号项目名称:ble-data-acquisitionO不使用躇•点击大“+”号项目名称:ble-data-acquisitionO不使用躇序云开发方开绿牲牛蛙庠.耳褂0云团gHNl云虽持.无整程^滞,固宅二缠供的AH进行枝心业勘崔,即可族小程序宝逗上芸和造代.了桩三乞J5tY5lSCnp1新建•填写AppID■打开网页/登录用小程序账号(不是公众号账号)登录微信公众平台,进入小程序后台如果没有账号就去申请注册。点击开发>开发设置就可以看到你自己的AppID(小程序ID)在“新建项目”界面填写AppID,其他保持默认。注意:小程序名称和图标也在这里设置。注意:微信只支持低功耗蓝牙BLE,不支持经典的蓝牙。注意:微信只支持低功耗蓝牙BLE,不支持经典的蓝牙。•熟悉开发工具的目录和文件打开开发工具index目录:▼归ps.gsst巳iidexEm邛f}i^dax.j:5C'n1<=■i,_dax.wxnilwasi-dax.w^s"蹬logsJ孙.仲{}logs.jsflnt、lcg?.wxmlwisgIZig?.W>£G[&utilsjutisapp.js{}非叩如aDp.wos■Mpraj&;t.ccnfi-;sen我们可以看到最上面有一个pages(页面)目录,这个目录里面包括了小程序所有的界面,index目录是起始页面。每个页面包括4个文件3个必须文件:■index.wxml对应index.htm1,主要负责本页面的界面展示以及事件的绑定等等。■index.wxss对应index.css,主要负责页面的样式,与wxml文件一起使用,优化wxml页面。■index.js就是js文件,主要负责本页面的业务逻辑,包括生命周期,事件的绑定处理,数据的初始化等等。1个可选文件:index.json:主要是负责本界面的基本配置,设置页面标题等功能。json文件不是必须的一般情况下我们只需要用全局配置的app.json文件配置就可以了。在图中还有一个utils的目录:可以看出utils和pages文件是并列的,所以他就不代表页面的信息了,里面只有一个js文件。这个js文件其实就是把代码模块化了,已经有的代码是将日期的转换封装好了,直接引入使用就可以了。最后剩下一系列app的文件,app.jsapp.wxssapp.json代表的信息和上面的pages里面的页面文件夹中的其实差不多,只是pages里面的代表的仅仅是某个界面的配置,而app的代表的是这个项目的配置。•找一个官方DEMO测试wx.getBLEDeviceServices(Objectobject)https://developers.weixin.qq.Com/miniprogram/dev/api/device/bluetooth/wx.getBLEDeviceServices.html

简易教程框架沮彳牛API工童小程序,云丑发wx.getBLEDeviceServices(ObJectobject)支持场本>=1.1.0获取蓄牙设备巨斤有服努{servicejo滚动到最后面:在开发者工具U预览效果点击“在开发工具中预览效果”,导入代码片段:®ffirfaBI*¥].O2.1Ki20W朗S+tJ0UHMB切B齐却IMd'+S-^az:-WF=d'+S-^az:-WF=戚珂止-Upfl*十Q11:12iw%^Ml-曲cC心每开始杉瓶*&•bdswJS-nMxjftt1fW网<>r4Qe,WHTil・!《E#忡啊M3PPIBUapptnnF脚州女闻rorAjjMTi序止丘瓶蛇束vt程a项J电iFhWtTH.S--I*¥-S>切就在M字底t:言理己醐0朴bffi玻1RCanisiagsuvnnhlftworkLtKuilyAp^CahaAu^riiB|I心0%cf',|Fih■-民In-rla*0*Vca-ODHAhil、KhwMM因为涉及到蓝牙硬件,所以不能用模拟器调试,下面我们把这个代码片段添加到前面创建的项目中。图片位置在pages下面建一个文件夹images,把图片集中放在这里。名称afflDDDDpagesapp-jsapp.jsonapp.wxsssitemap.json名称afflDDDDpagesapp-jsapp.jsonapp.wxsssitemap.json名称displays.iimages.ind^xIS归Ecsnbleb-acks.jpgmffter.png添加页面下面我们添加一个目录scanble和一组4个页面文件scan,我们不用去创建scan页面相关的文件scan.js、scan.wxss和scan.wxml,点击打开app.json文件就可以自动创建一个小程序空白页面。app.json是「一个数组,由pages和window组成。找到pages数组,它里面所存放的就是一个个页面的名称了,如图:appjsor?X's-!:"pases/in<tex/iindex"pages/logs/logs'1]」"backgrou"1ight11」"navisationBarBaclceroundColorn:「也闩干、s"navigatIm阮ftitieiext-:,Bhe€riatB,】10r"n<ivigaticmBarText5ty1=":"blcKk”LI}我们只需要在Pages中加上“pages/scanble/scan”,并在前面用一个逗号隔开数组元素:app.json,-:|,rpcg=s"s[11pagesIindek/index"j"pagesf1ogs/logs"."pagesfEcanblE/Ecan"L,Fwindow,p:{,BbackffromdTex.tStyleifc:^liEht*'J"na•/igationEarBackgrouncKolor":nna?igationBarlitleText,B:.'依原霍数据芸桌r,na■/igationBanextstle,B:Mblack-}坦y14注意:pages数组里面,哪个路径在第一个,就先显示那个路径对应的界面。保存(Ctrl+s)之后开发工具会自动帮我们创建文件夹和其中的4个scan页面文件:-启pages►口iidsx卜口logs■13?:aibles:ar,s{)?:ar.son*-?:ai.wxmlwrea3:arWXE&>口UtilEwE(}app.jsflnwmaop.wxssWprz'ject.cinfic.son

app.json文件中的windows用于设置小程序的状态栏、导航条、标题、窗口背景色。修改导航栏标题将“WeChat”改为“传感器数据采集”,保存(trl+s),模拟器界面自动刷新。修改scan页面代码把导入的代码片段index页面的4个文件内容复制到相应的scan页面代码中。页面跳转前面我们说过了,pages数组里面,哪个路径在第一个就先显示那个路径对应的界面,index在第一个,所以小程序先显示页面index.wxml,我们再转到scan.wxml。为了实现点击跳转,我们把“HelloWorld”改造成“开始”按钮。修改index.wxml:ie<!--><viewclB55="u5ernDttD"'><textcla&s="u£.er-motto/text)</vlew>15"jsermctte-containerIE<textcLctsL=".iser|iottori>17</view>修改index.wxss:.usennotto{|line-hsigtit:Sflrpx^22.userinotto-container{margin-top:150px;border:IpxsolidLJfaaa;width:200rpx;|height:80rpx;border-radiuiss5px;text-align:center;}效果:«■■■■AfrZiWF■-li'—■-tia.曲添加事件bindtap,它网站开发中的click事件一样,都是点击时触发的事件,我们把它写在矩形框的那个view标签里面:<viewclHss="u5emcjttc-oorrtainer"bindtap='ga1<viewclHss="u5emcjttc-oorrtainer"bindtap='ga1><textcla55=".iDermott寸7bindtap="go”的意思就是,当点击绑定的view时触发一个事件,这个事件名称叫做go,我们需要去index.js文件中去编写go事件。进入index.js文件中,找到page,在“//事件处理函数”的最后添加go函数:吕口;比if)彳wx.redireczTo({jrl:1../sc^nble/scan1j|J)补充一些信息,按提示做就行。与前后的函数用逗号分隔。真机调试(iPhone补充一些信息,按提示做就行。与前后的函数用逗号分隔。真机调试(iPhone、安卓手机都可以)因为涉及到蓝牙硬件,所以不能用模拟器调试。点击“真机调试”,或者“预览”。如果不需要调试,只是测试,用“预览”要快一些。用微信扫码,验证通过后还需要登录“小程序账号”在“小程序账号”中可以设置和修改小程序图标和名称等信息:小程序发布帝程step1d曜剥SB点击“查看详情”:我已经设置好了,开始真机调试后小程序会下载到你的微信中,可以反复测试:,“中国电信令100^0传感器教据采集…®■il中国电忙宇09-44麒1DC%li<小程序Q搜索小程序附近的小程序.瞽>我的小程序虽近使用开始野外台站蓝牙数据采集点击我们的小程序:点击“开始”,显示scan.wxml页面,点击“开始扫描”:开始.",中国电信号10:OS®/92%■传感器数据采集…®开始扫描停止扫描结束流程传感器数据采集…®开始扫描停止扫描结束流程已发现3个外困设备:已发现3个外困设缶:ble-temp信号肯度:-47dBm(53%)UUID:EF6EXM1F中EEC9Bfi402£-30£81479^291Servicejj.H.:0ble-temp-51dBm(4&%JUUID:BB^7;EB:GD:E0:SaService£SS:0AP信号努屡.-函Wm(41%}UUID:D5D1AM2-62K12A1S-EFEA-2MB4M57Bia囱rvim故■:0APIS号强度:-SSdBm(45%)UUIO:DA:83iia9B:&1:6E£归wee敏量;0AP信^强屎-^ifidBn(54t4)UUlD64«2W4--CCfl2--Sl4F-767D-35F2«C?5WT0Servi[:e-MI::AP信身强度:-5加住m(41^)UUlU:ServieeSfin:0<)00左边是苹果手机,右边是安卓手机。扫描到3个蓝牙外围设备,第一个设备ble-temp就是我们的树莓派蓝牙设备。当然要看到这个设备先要按照我的文章《树莓派蓝牙温度传感器》,将树莓派温度传感器运行起来:/view/423628b3905f804d2b160b4e767f5acfa0c783c13.扫描控制,获取数据为避免占用过多篇幅,下面只说明要修改的代码,源代码请看官方DEMO。3.1在scan.wxss中添加.scan_btn{width:100%;position:fixed;bottom:30rpx;.btn{margin-top:30rpx;width:450rpx;background:#14a1fd;color:#fff;border-radius:70rpx;3.2修改scan.wxml<!s/scanble/scan.wxml--><viewclass="devices_summary">已发现{{devices.length}}个外围设备:</view><scroll-viewclass="device_list"scroll-yscroll-with-animation><viewwx:for="{{devices}}"wx:key="index"data-device-id="{{item.deviceId}}"bindtap="displayData"class="device_item"hover-class="device_item_hover"><viewstyle="display:flex;flex-direction:row;justify-content:space-between;align-items:center;font-size:12px;color:#333;"><text>{{}}</text><textstyle="font-size:10px;color:#14a1fd;">{{item.deviceId}}</text><text>{{item.RSSI}}dBm</text></view><viewstyle='font-size:14px'><text>{{item.date}}</text><text>{{item.temp}}C</text></view></view></scroll-view><viewclass='scanbtn'><buttonclass='btn'bindtap='scanCtrl'>{{scaningStr}}</button></view>单引号,双引号双引号会搜索引号内的内容是不是有变量,有则输出其值,没有则输出原有内容。所以输出纯字符串的时候用单引号比双引号效率高,因为省去检索的过程。3.2扫描控制在scan.wxml中bindtap='scanCtrl'在scan.js中添加点击事件响应函数//开始/停止扫描scanCtrl(e){if(this.data.scaningStr==='停止扫描’){this.stopBluetoothDevicesDiscovery()//停止扫描}else{this.openBluetoothAdapter()}},停止扫描stopBluetoothDevicesDiscovery(){this._discoveryStarted=falsewx.stopBluetoothDevicesDiscovery()this.data.scaningStr='开始扫描’this.setData({scaningStr:this.data.scaningStr})},开始蓝牙设备扫描startBluetoothDevicesDiscovery(){this.data.scaningStr='停止扫描’this.setData({scaningStr:this.data.scaningStr})if(this._discoveryStarted){return}this._discoveryStarted=truewx.startBluetoothDevicesDiscovery({allowDuplicatesKey:true,success:(res)=>{//console.log('startBluetoothDevicesDiscoverysuccess',res)this.onBluetoothDeviceFound()},})发现了蓝牙设备onBluetoothDeviceFound(){wx.onBluetoothDeviceFound((res)=>{res.devices.forEach(device=>{if(!&&!device.localName){return}if(!='ble-temp'&&device.localName!='ble-temp'){return//过滤名字不是ble-temp的设备}constobjDevice={}//重新构造一个device,添加温度objDevice.deviceId=device.deviceIdobjDevice.localName=device.localNameobjD=objDeviceRSSI=device.RSSIletdateSec=Date.now()//取手机系统时间秒letdate=newDate(dateSec)//取手机系统时间objDevice.date=util.formatTime(date)objDevice.advertisData=device.advertisDataletadDataStr=ab2hex(device.advertisData)console.log'广播包数据:'+adDataStr)objDevice.temp=getTemp(adDataStr)console.log'温度:'+objDevice.temp)letfoundDevices=this.data.devicesletidx=inArray(foundDevices,'deviceId',device.deviceId)//找到当前deviceId对应的iif(idx===-1){tempData=tempData+objDevice.deviceId+dateSec+objDevice.tempthis.data.devices.push(objDevice)//如果this.data.devices没有找当前的deviceId,就添加一个新的}else{if(this.data.devices[idx].temp!=objDevice.temp){//不记录重复的数据tempData=tempData+objDevice.deviceId+dateSec+objDevice.temp}this.data.devices[idx]=objDevice//如果在inArray函数中找到了当前的deviceId,就更新}console.log温度数据:'+tempData)this.setData({devices:this.data.devices})})})

},添加函数和变量注意,根据Page({来判断下面的函数和变量应该写在什么位置。//从广播包中取温度数据functiongetTemp(adDataStr){vartemp=adDataStr.substring(4,adDataStr.length)vartemperature=temp[1]+temp[3]+'.'+temp[5]+temp[7]//去掉前导0,加小数点returntemperature//声明变量vartempData=constutil=require('../../utils/util.js')Page({data:{devices:[],connected:false,chs:[],scaningStr:'开始扫描’,},//开始/停止扫描scanCtrl(e){请对照官网DEMO源代码看。3.3真机调试荷于6.1M&1W时钗对于简单的修改,如果不需要看中间结果,可以用预览进行测试,比真机调试节省时间。“真机调试”窗口:扫拦二些遥百叽调试为了看到程序运行时的中间结果,我们用真机调试一下:桐氐竟兵机调沆切走台禁在

荷于6.1M&1W时钗对于简单的修改,如果不需要看中间结果,可以用预览进行测试,比真机调试节省时间。“真机调试”窗口:扫拦二些遥百叽调试为了看到程序运行时的中间结果,我们用真机调试一下:桐氐竟兵机调沆切走台禁在ES.ConsoleSourcesNetrtortPerformarxeMemor)'ApplicationAuJitsAppDatdStorisgeWneI©1QNode.jiMainContextT|FItsrDefaultleu&k.TI]田a曳乂TP,-i~TU.UA<JL51,InII—J最度!30.32RM.TdSmteranOista:EF6DD51F-9LEE-C9&6-4B2E-3S€B1479929L15603&352520.37EF曲松51F-B1ES-C98S-4B2E-#an・七】1跖398&147992?ll&b033952523.5&EF6D&&iF-SlES-C9a6-4B2E-3?SSL47$92SL15bM^53335.37EF&M51F-BlE&-C9S6-4B2E-3.9E£147gg23115603395433®-31广招包数据;341Z0300C3-01丈“,诂门51温度;龄.31#如,诂:务日terapData:EF6D351F-ELEE-匚sas-flB2E-3SSBM79929L15€33S35252E.37EF6M51F-&1E5-€9&6-4E2E-以州・1弘M&3^0514799251156030852526^0EFCD&51F-SlEi3-C966-4B2E-3?63147992?115ft&30^5333e/37fF®e51F-B1EB-C9B6-4B2~398-5147992911&603B954330.31广席包魏据:3412020«3-37如7・诂:151品度:23,®75EF!,诂二terapData:EF6DB51F-9LEE・C9&6-4B2E-35S3&35252B.37EFtC451F-SlEB-C935-4B2E-实anTMlGE39E51479923115603B9525JS・50EF6D951F-S1EB-C9S6-4B2E-3争1179929115^93095333S-37EF6M51F-S1EB-C9B6-4B2E-19fi£14799291-156038954330.31EFeD&5]F-SlEE-CgS6-4B2E-395£147992?1.1|5£!0^954529-S7console.log('广播包数据:'+adDataStr)console.log('温度:'+objDevice.temp)console.log('tempData:'+tempData)这3条调试语句将程序运行的中间结果显示出来。手机显示:左边是苹果手机,右边是安卓手机。注意,苹果手机显示的是设备ID,安卓手机显示MAC。4.历史数据展示我们已经将数据缓存到了变量tempData中,为了便于观察数据的变化,下面我们将tempData中的数据用列表和曲线显示。4.1创建一个新的页面display这个操作我们已经很熟悉了,在app.json中添加一行"pages/displays/display"app.jsonX12"pages-'1:;3"pages/index/irdex"」由"pages/logs/logs",5"pages/scanble/scannC"pages/displays/display"7L3"■/jindciw":(9"backgrouidTextStyle":10"navigationrBackgrojndColcnr,:1,1"navigationB^rTltleTeKt":”槎感器数据采集、12"navi£atinnrlext;"black''13}」"sitemapLacation":"sizemap.jscin"154.2写页面代码display.wxss.back-img{width:10%;background:none;margin-left:5px;}.canvas{width:100%;height:250px;}.device_list{margin:5rpx5rpx;margin-top:0;border:1rpxsolid#EEE;border-radius:5rpx;width:100%;height:500rpx;}/*定义滚动条高宽及背景高宽分别对应横竖滚动条的尺寸*/::-webkit-scrollbar{width:10px;height:10px;background-color:#ffffff;}/*定义滚动条轨道内阴影+圆角*/::-webkit-scrollbar-track{-webkit-box-shadow:inset0010pxrgba(0,0,0,0.3);border-radius:10px;background-color:yellow;}/*定义滑块内阴影+圆角*/::-webkit-scrollbar-thumb{border-radius:10px;-webkit-box-shadow:inset0010pxrgba(0,0,0,.3);background-color:#ff5500;}display.wxml<viewstyle="height:100rpx;display:flex;flex-direction:row;justify-content:space-between;align-items:center;color:#eee;background-color:#38B0DE;"><imageclass='back-img'mode='widthFix'src='../images/backs.jpg'bindtap="back"></image><textstyle="font-weight:bold;font-size:12px;margin-right:10px;">{{deviceId}}</text></view><view><canvascanvas-id="lineCanvas"disable-scroll="true"class="canvas"bindtouchstart="touchstart"bindtouchmove="touchmove"bindtouchend="touchend"></canvas></view><viewstyle="height:50rpx;display:flex;flex-direction:row;justify-content:space-between;align-items:center;color:#eee;background-color:#38B0DE;"><text></text><textstyle="font-weight:bold;font-size:12px;margin-right:10px;">共{{amount}}条记录</text></view><scroll-viewclass="device_list"scroll-y='true'scroll-into-view='100'><viewwx:for="{{idata}}"wx:key="index"data-device-id="{{item.deviceId}}"><viewclass="content"><viewstyle="font-size:14px;color:#333;"><text>{{item.samplingTime}}</text><text>{{item.temp}}C</text></view></view></view></scroll-view>微信小程序wx-charts图表插件显示曲线需要下载wx-charts,网址/xiaolin3303/wx-charts解压后,把dist里面的wxcharts.js或者wxcharts-min.js放在小程序的文件夹里,在当前页面引用文件:constwxCharts=require('../../utils/wxcharts-min.js')在网址上看README.md,有详细的使用说明。带参数可返回页面跳转点击扫描到的一个设备,scan.wxml发送点击事件:bindtap="displayData”在scan.js中写响应代码:前面我们用:wx.redirectTo({url:'../scanble/scan',})进行页面跳转。跳转还有一个方法叫做wx.navigateTo,与wx.redirectTo的区别是:wx.navigateTo跳转到一个应用内的某个页面,还保留着当前页面,可以用wx.navigateBack返回,wx.navigateTo还可以带参数。wx.redirectTo关闭当前页面,跳转到另外一个页面。在scan.js中我们用wx.navigateTo://数据展示displayData(e){this.stopBluetoothDevicesDiscovery()//停止扫描constdeviceId=e.currentTarget.dataset.deviceId//传递的参数可返回跳转wx.navigateTo({url:'../displays/display?ideviceId='+deviceId+'&tempData='+tempData})},用wx.redirectTo跳转会关闭当前页面,跳转页面后不能返回上一页,这样我们就看不到其他设备的数据了。所以我们改用wx.navigateTo函数,它在跳转时保留当前页面,使用wx.navigateBack可以返回原页面。下面的语句传递了2个参数deviceId和tempData。url:'../displays/display?ideviceId='+deviceId+'&tempData='+tempDatadisplay.jsconstutil=require('../../utils/util.js')constwxCharts=require('../../utils/wxcharts-min.js')varlineChart=nullconstrecordLeni=54//苹果手机记录长度constrecordLena=35//安卓手机记录长度constdeviceIdLeni=36//苹果手机的deviceId长度constdeviceIdLena=17//安卓手机的deviceId长度varrecordCount=0//记录计数vartempData=''//原始数据vartemp_min=100vartemp_max=-60Page({/***页面的初始数据*/data:{deviceId:'',idata:[],amount:0,},touchstart:function(e){//console.log(lineChart.getCurrentDataIndex(e))lineChart.showToolTip(e,{background:'#1874CD',format:function(item,category){returncategory+''++':'+item.data}})//(e)lineChart.scrollStart(e);//开始滚动},touchmove:function(e){//(e)lineChart.scroll(e)},touchend:function(e){//(e)lineChart.scrollEnd(e)},//创建图表数据createChartData:function(){varcategories=[]vardata1=[]letidataLength=this.data.idata.length//console.log('idataLength:'+idataLength)for(vari=0;i<idataLength;i++){categories.push(this.data.idata[i].samplingTime)data1.push(this.data.idata[i].temp)}return{categories:categories,temp_data:data1,}},/***生命周期函数--监听页面加载*/onLoad:function(options){//页面初始化options为页面跳转所带来的参数constideviceld=options.ideviceldtempData=options.tempDataletrecordLen=0letdeviceIdLen=0letbrand=wx.getSystemInfoSync().brandif(brand.indexOf('iPhone')>=0){//苹果手机recordLen=recordLenideviceIdLen=deviceIdLeni}else{recordLen=recordLenadeviceIdLen=deviceIdLena}letrecordNum=tempData.length/recordLenrecordCount=0this.data.idata=[]//将该deviceId的数据过滤出来for(leti=0;i<recordNum;i++){letbegin=i*recordLenletend=begin+recordLenletrecord=tempData.substring(begin,end)letdeviceId=record.substring(0,deviceIdLen)if(deviceId==ideviceId){constobj={}//构造一个对象,添加采样时间,温度letdateSec=parseInt(record.substring(deviceIdLen,recordLen-5))letdate=newDate(dateSec)//取手机系统时间obj.samplingTime=util.formatTime(date)obj.temp=record.substring(recordLen-5,recordLen)this.data.idata.push(obj)if(temp_min>obj.temp){temp_min=obj.temp}if(temp_max<obj.temp){temp_max=obj.temp}recordCount++}this.setData({deviceld:ideviceld,amount:recordCount,idata:this.data.idata})//画曲线letwindowWidth=320;//用于设置wxCharts宽度try{varres=wx.getSystemInfoSync();windowWidth=res.windowWidth;}catch(e){console.error'getSystemInfoSyncfailed!');}letchartData=this.createChartData()lineChart=newwxCharts({canvasId:'lineCanvas',type:'line',categories:chartData.categories,a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论