master
lld 2025-12-25 21:44:04 +08:00
parent 1884eb0f9d
commit 4f8a72936b
1 changed files with 36 additions and 23 deletions

View File

@ -5,25 +5,25 @@
<uni-grid :column="4" border-color="#03a9f4"> <uni-grid :column="4" border-color="#03a9f4">
<uni-grid-item :index="0"> <uni-grid-item :index="0">
<view class="grid-item-box"> <view class="grid-item-box">
<text class="text">{{ temp1 }} </text> <text class="text">{{ data.temp1 }} </text>
<text class="text"> 温度1 </text> <text class="text"> 温度1 </text>
</view> </view>
</uni-grid-item> </uni-grid-item>
<uni-grid-item :index="1"> <uni-grid-item :index="1">
<view class="grid-item-box"> <view class="grid-item-box">
<text class="text">{{ temp2 }}</text> <text class="text">{{ data.temp2 }}</text>
<text class="text"> 温度2 </text> <text class="text"> 温度2 </text>
</view> </view>
</uni-grid-item> </uni-grid-item>
<uni-grid-item :index="2"> <uni-grid-item :index="2">
<view class="grid-item-box"> <view class="grid-item-box">
<text class="text">{{ temp3 }}</text> <text class="text">{{ data.temp3 }}</text>
<text class="text"> 温度3 </text> <text class="text"> 温度3 </text>
</view> </view>
</uni-grid-item> </uni-grid-item>
<uni-grid-item :index="3"> <uni-grid-item :index="3">
<view class="grid-item-box"> <view class="grid-item-box">
<text class="text">{{ temp4 }}</text> <text class="text">{{ data.temp4 }}</text>
<text class="text"> 温度4 </text> <text class="text"> 温度4 </text>
</view> </view>
</uni-grid-item> </uni-grid-item>
@ -31,25 +31,25 @@
<uni-grid :column="4" border-color="#03a9f4"> <uni-grid :column="4" border-color="#03a9f4">
<uni-grid-item :index="0"> <uni-grid-item :index="0">
<view class="grid-item-box"> <view class="grid-item-box">
<text class="text">{{ humi1 }}</text> <text class="text">{{ data.humi1 }}</text>
<text class="text"> 湿度1 </text> <text class="text"> 湿度1 </text>
</view> </view>
</uni-grid-item> </uni-grid-item>
<uni-grid-item :index="1"> <uni-grid-item :index="1">
<view class="grid-item-box"> <view class="grid-item-box">
<text class="text">{{ humi2 }}</text> <text class="text">{{ data.humi2 }}</text>
<text class="text"> 湿度2 </text> <text class="text"> 湿度2 </text>
</view> </view>
</uni-grid-item> </uni-grid-item>
<uni-grid-item :index="2"> <uni-grid-item :index="2">
<view class="grid-item-box"> <view class="grid-item-box">
<text class="text">{{ humi3 }}</text> <text class="text">{{ data.humi3 }}</text>
<text class="text"> 湿度3 </text> <text class="text"> 湿度3 </text>
</view> </view>
</uni-grid-item> </uni-grid-item>
<uni-grid-item :index="3"> <uni-grid-item :index="3">
<view class="grid-item-box"> <view class="grid-item-box">
<text class="text">{{ humi4 }}</text> <text class="text">{{ data.humi4 }}</text>
<text class="text"> 湿度4 %RH</text> <text class="text"> 湿度4 %RH</text>
</view> </view>
</uni-grid-item> </uni-grid-item>
@ -68,6 +68,7 @@ export default {
data() { data() {
return { return {
connected: false, connected: false,
data: {
temp1: null, temp1: null,
humi1: null, humi1: null,
temp2: null, temp2: null,
@ -76,6 +77,7 @@ export default {
humi3: null, humi3: null,
temp4: null, temp4: null,
humi4: null, humi4: null,
},
lastTopic: "设备" + '', lastTopic: "设备" + '',
lastRaw: '' lastRaw: ''
} }
@ -98,22 +100,33 @@ export default {
}) })
client.on('message', (topic, payload) => { client.on('message', (topic, payload) => {
this.lastTopic = "设备【" + topic+"】"
const s = payload.toString() const s = payload.toString()
this.lastRaw = s this.lastRaw = s
// JSON // JSON
if (!(s.startsWith('{') && s.endsWith('}'))) return if (!(s.startsWith('{') && s.endsWith('}'))) return
let obj let obj
try { obj = JSON.parse(s) } catch(e) { return } try {
obj = JSON.parse(s)
const allKeysNumeric = Object.keys(obj).every(key => /^\d+$/.test(key));
if (Object.keys(obj).length <= 0 || !allKeysNumeric) {
return;
}
} catch(e) { return }
// 101~104湿201~204/10湿/10 // 101~104湿201~204/10湿/10
const div10 = (v) => (v == null ? null : Math.round((Number(v)/10)*10)/10) const div10 = (v) => (v == null ? null : Math.round((Number(v)/10)*10)/10)
this.lastTopic = "设备【" + topic+"】"
this.temp1 = div10(obj["201"]); this.humi1 = div10(obj["101"]) this.data = {
this.temp2 = div10(obj["202"]); this.humi2 = div10(obj["102"]) temp1: div10(obj["201"]),
this.temp3 = div10(obj["203"]); this.humi3 = div10(obj["103"]) humi1: div10(obj["101"]),
this.temp4 = div10(obj["204"]); this.humi4 = div10(obj["104"]) temp2: div10(obj["202"]),
humi2: div10(obj["102"]),
temp3: div10(obj["203"]),
humi3: div10(obj["103"]),
temp4: div10(obj["204"]),
humi4: div10(obj["104"])
}
}) })
client.on('close', () => { this.connected = false }) client.on('close', () => { this.connected = false })