//index.js //获取应用实例 var util = require("../../utils/util.js"); var udp; var IPAddress = "118.190.37.99"; //var IPAddress = "192.168.0.104"; var Port = 30; const app = getApp() Page({ data: { temperature: "00",//温度 humidity: "00", //湿度 SwitchOn: "/images/switch_button_on.png", //开关ON图片 SwitchOff: "/images/switch_button_off.png",//开关OFF图片 SwitchOnCmd: "{\"data\":\"switch\",\"bit\":\"1\",\"status\":\"1\"}", //控制继电器吸合 SwitchOffCmd: "{\"data\":\"switch\",\"bit\":\"1\",\"status\":\"0\"}", //控制继电器断开 SwitchQueryCmd: "{\"data\":\"switch\",\"bit\":\"1\",\"status\":\"-1\"}",//查询继电器状态 SwitchTag: false, }, onShow: function () { let _this = this; console.log("ControlonShow"); //初始化显示温湿度:00,按钮状态:关,设备状态:离线 this.setData ({ temperaturetext: this.data.temperature, humiditytext: this.data.humidity, SwitchBackgroundImage: this.data.SwitchOff, }) udp = wx.createUDPSocket()//启用UDP udp.bind() //UDP接收到消息 udp.onMessage(function (res) { console.log(str) let str = util.newAb2Str(res.message);//接收消息 console.log('str===' + str) if (str != null) { let json = JSON.parse(str);//解析JSON数据 if (json != null) { if (json.data == "TH")//是温湿度数据 { _this.data.temperature = json.temperature; _this.data.humidity = json.humidity; if (_this.data.temperature != null && _this.data.humidity != null) { _this.setData ({ temperaturetext: _this.data.temperature, humiditytext: _this.data.humidity, }) } } else if (json.data == "switch")//接收的是开关数据 { if (json.status == "1")//开关接通 { _this.data.DeviceStatusValue = "在线(继电器吸合)" _this.setData ({ SwitchBackgroundImage: _this.data.SwitchOn, }) _this.data.SwitchTag = true; } else if (json.status == "0")//开关断开 { _this.data.DeviceStatusValue = "在线(继电器断开)" _this.setData ({ SwitchBackgroundImage: _this.data.SwitchOff, }) _this.data.SwitchTag = false; } } } } }); }, /** * 页面控件--控制开关按钮 */ Switch: function () { if (this.data.SwitchTag == true) //开关状态是开 { this.setData ({ SwitchBackgroundImage: this.data.SwitchOff //设置显示开关OFF图片 }) this.data.SwitchTag = false;//记录图片的状态 udp.send ({ address: IPAddress, port: Port, message: "{\"data\":\"switch\",\"bit\":\"1\",\"status\":\"0\"}" }); //发送关指令 } else //开关状态是关 { this.setData ({ SwitchBackgroundImage: this.data.SwitchOn //设置显示开关ON图片 }) this.data.SwitchTag = true;//记录图片的状态 udp.send ({ address: IPAddress, port: Port, message: "{\"data\":\"switch\",\"bit\":\"1\",\"status\":\"1\"}" }); //发送开指令 } }, })