Browse Source

环境设置增加喷头温度和载玻台温度的设置

master
王梦远 3 weeks ago
parent
commit
952a77c5ed
  1. 10
      src/stores/useSystemStore.ts
  2. 16
      src/views/main/index.vue
  3. 148
      src/views/spraySet/index.vue

10
src/stores/useSystemStore.ts

@ -17,11 +17,15 @@ export const useSystemStore = defineStore('system', {
}, },
systemSensor: { systemSensor: {
humidity: 0, humidity: 0,
slideTemperature: 0,
nozzleTemperature: 0,
}, },
isDebug: import.meta.env.FT_NODE_ENV === 'dev', isDebug: import.meta.env.FT_NODE_ENV === 'dev',
streamVisible: false, streamVisible: false,
systemList: [{ cmdCode: '' }], systemList: [{ cmdCode: '' }],
targetHumidity: 0, targetHumidity: 0,
targetSlideTemperature: 0,
targetNozzleTemperature: 0,
cleanRemainingTime: '', // 清洗管道用时 cleanRemainingTime: '', // 清洗管道用时
cleanTimerId: null, // 清洗管道定时器 cleanTimerId: null, // 清洗管道定时器
cleanStartTs: 0, // 清洗管道开始时间 cleanStartTs: 0, // 清洗管道开始时间
@ -33,6 +37,12 @@ export const useSystemStore = defineStore('system', {
updateTargetHumidity(humidity: number) { updateTargetHumidity(humidity: number) {
this.targetHumidity = humidity this.targetHumidity = humidity
}, },
updateSlideTemperature(slideTemperature: number) {
this.targetSlideTemperature = slideTemperature
},
updateTargetNozzleTemperature(nozzleTemperature: number) {
this.targetNozzleTemperature = nozzleTemperature
},
updateSystemStatus(status: any) { updateSystemStatus(status: any) {
this.systemStatus = status this.systemStatus = status
}, },

16
src/views/main/index.vue

@ -67,6 +67,22 @@ const sensorMessage = async (data: any) => {
await sendControl(params) await sendControl(params)
FtMessage.success('当前湿度已达目标湿度,除湿已完成') FtMessage.success('当前湿度已达目标湿度,除湿已完成')
} }
if (systemStore.systemStatus.slidePlatHeating && systemStore.systemSensor.slideTemperature >= systemStore.targetSlideTemperature) {
const params = {
cmdCode: 'slide_plat_heat_stop',
cmdId: '',
}
await sendControl(params)
FtMessage.success('当前温度已达目标温度,加热已完成')
}
if (systemStore.systemStatus.nozzleHeating && systemStore.systemSensor.nozzleTemperature <= systemStore.targetNozzleTemperature) {
const params = {
cmdCode: 'nozzle_heat_stop',
cmdId: '',
}
await sendControl(params)
FtMessage.success('当前温度已达目标温度,加热已完成')
}
} }
socket.init(statusMessage, 'device_status_change') socket.init(statusMessage, 'device_status_change')

148
src/views/spraySet/index.vue

@ -28,9 +28,93 @@ const startWork = () => {
} }
const humidity = ref() const humidity = ref()
const slideTemperature = ref()
const nozzleTemperature = ref()
const speed = ref() const speed = ref()
const clearSpeed = ref() const clearSpeed = ref()
const slideStart = () => {
if (!systemStore.systemSensor.slideTemperature) {
FtMessage.error('未检测到当前温度')
return
}
if (!slideTemperature.value) {
FtMessage.error('请输入目标温度')
return
}
if (slideTemperature.value > 100 || slideTemperature.value < 0) {
FtMessage.error('温度参数有误')
return
}
if (slideTemperature.value <= systemStore.systemSensor.slideTemperature) {
FtMessage.info('当前不需要加热')
return
}
ElMessageBox.confirm('载玻台即将开始加热', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
showCancelButton: true,
showClose: false,
})
.then(async () => {
slideStartRef.value.setLoading(true)
const params = {
cmdCode: 'slide_plat_heat_start',
cmdId: '',
params: {
temperature: slideTemperature.value,
},
}
await sendControl(params)
systemStore.updateSlideTemperature(slideTemperature.value)
slideStartRef.value.setLoading(false)
})
.catch(() => {
FtMessage.error('取消加热')
})
}
const nozzleStart = () => {
if (!systemStore.systemSensor.nozzleTemperature) {
FtMessage.error('未检测到当前温度')
return
}
if (!nozzleTemperature.value) {
FtMessage.error('请输入目标温度')
return
}
if (nozzleTemperature.value > 100 || nozzleTemperature.value < 0) {
FtMessage.error('温度参数有误')
return
}
if (nozzleTemperature.value <= systemStore.systemSensor.nozzleTemperature) {
FtMessage.info('当前不需要加热')
return
}
ElMessageBox.confirm('即将开始加热', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
showCancelButton: true,
showClose: false,
})
.then(async () => {
nozzleStartRef.value.setLoading(true)
const params = {
cmdCode: 'nozzle_heat_start',
cmdId: '',
params: {
temperature: nozzleTemperature.value,
},
}
await sendControl(params)
systemStore.updateTargetNozzleTemperature(nozzleTemperature.value)
nozzleStartRef.value.setLoading(false)
})
.catch(() => {
FtMessage.error('取消加热')
})
}
const slideStartRef = ref()
const nozzleStartRef = ref()
const dehumidifierStartRef = ref() const dehumidifierStartRef = ref()
const dehumidifierStart = () => { const dehumidifierStart = () => {
if (!systemStore.systemSensor.humidity) { if (!systemStore.systemSensor.humidity) {
@ -209,6 +293,20 @@ const dehumidifierStop = async () => {
} }
await sendControl(params) await sendControl(params)
} }
const slideStop = async () => {
const params = {
cmdCode: 'slide_plat_heat_stop',
cmdId: '',
}
await sendControl(params)
}
const nozzleStop = async () => {
const params = {
cmdCode: 'nozzle_heat_stop',
cmdId: '',
}
await sendControl(params)
}
</script> </script>
<template> <template>
@ -222,7 +320,7 @@ const dehumidifierStop = async () => {
<span> 清洗管道</span> <span> 清洗管道</span>
</div> </div>
</template> </template>
<div style="display: flex; align-items: center; margin-top: 20px">
<div style="display: flex; align-items: center; margin-top: 10px">
<div style="display: flex; align-items: center; width: fit-content; margin-right: 30px"> <div style="display: flex; align-items: center; width: fit-content; margin-right: 30px">
<span>清洗速度</span> <span>清洗速度</span>
<el-input v-model="clearSpeed" type="number" style="width: 100px; margin: 0 10px" /> <el-input v-model="clearSpeed" type="number" style="width: 100px; margin: 0 10px" />
@ -269,7 +367,7 @@ const dehumidifierStop = async () => {
<span> 预充管道</span> <span> 预充管道</span>
</div> </div>
</template> </template>
<div style="display: flex; align-items: center; margin-top: 20px">
<div style="display: flex; align-items: center; margin-top: 10px">
<div style="display: flex; align-items: center; width: fit-content; margin-right: 30px"> <div style="display: flex; align-items: center; width: fit-content; margin-right: 30px">
<span>预充速度</span> <span>预充速度</span>
<el-input v-model="speed" type="number" style="width: 100px; margin: 0 10px" /> <el-input v-model="speed" type="number" style="width: 100px; margin: 0 10px" />
@ -303,13 +401,13 @@ const dehumidifierStop = async () => {
<span> 环境设置</span> <span> 环境设置</span>
</div> </div>
</template> </template>
<div style="display: flex; align-items: center; margin-top: 20px">
<div style="display: flex; align-items: center; width: fit-content; margin-right: 30px">
<div style="display: flex; align-items: center; margin-top: 10px">
<div style="display: flex; align-items: center; width: 20%; margin-right: 30px">
<span>当前湿度</span> <span>当前湿度</span>
<span class="num-text">{{ systemStore.systemSensor.humidity }}</span> <span class="num-text">{{ systemStore.systemSensor.humidity }}</span>
<span>%RH</span> <span>%RH</span>
</div> </div>
<div style="display: flex; align-items: center; width: fit-content; margin-right: 30px">
<div style="display: flex; align-items: center; width: 30%; margin-right: 30px">
<span>要求湿度</span> <span>要求湿度</span>
<el-input v-model="humidity" type="number" style="width: 100px; margin: 0 10px" /> <el-input v-model="humidity" type="number" style="width: 100px; margin: 0 10px" />
<span>%RH</span> <span>%RH</span>
@ -321,6 +419,42 @@ const dehumidifierStop = async () => {
停止除湿 停止除湿
</ft-button> </ft-button>
</div> </div>
<div style="display: flex; align-items: center; margin-top: 10px">
<div style="display: flex; align-items: center; width:20%; margin-right: 30px">
<span>载玻台温度</span>
<span class="num-text">{{ systemStore.systemSensor.slideTemperature }}</span>
<span></span>
</div>
<div style="display: flex; align-items: center; width: 30%; margin-right: 30px">
<span>要求温度</span>
<el-input v-model="slideTemperature" type="number" style="width: 100px; margin: 0 10px" />
<span></span>
</div>
<ft-button ref="slideStartRef" type="primary" :click-handle="slideStart">
开始加热
</ft-button>
<ft-button :click-handle="slideStop" :disabled="!systemStore.systemStatus.slidePlatHeating">
停止加热
</ft-button>
</div>
<div style="display: flex; align-items: center; margin-top: 10px">
<div style="display: flex; align-items: center; width: 20%; margin-right: 30px">
<span>喷头温度</span>
<span class="num-text">{{ systemStore.systemSensor.nozzleTemperature }}</span>
<span></span>
</div>
<div style="display: flex; align-items: center; width: 30%; margin-right: 30px">
<span>要求温度</span>
<el-input v-model="nozzleTemperature" type="number" style="width: 100px; margin: 0 10px" />
<span></span>
</div>
<ft-button ref="nozzleStartRef" type="primary" :click-handle="nozzleStart">
开始加热
</ft-button>
<ft-button :click-handle="nozzleStop" :disabled="!systemStore.systemStatus.nozzleHeating">
停止加热
</ft-button>
</div>
</el-card> </el-card>
<div class="button-footer"> <div class="button-footer">
<ft-button type="primary" class="set-button" @click="startWork"> <ft-button type="primary" class="set-button" @click="startWork">
@ -332,13 +466,13 @@ const dehumidifierStop = async () => {
<style scoped lang="scss"> <style scoped lang="scss">
.el-card { .el-card {
margin: 50px;
margin: 30px;
color: var(--el-color-primary); color: var(--el-color-primary);
border-radius: 20px; border-radius: 20px;
} }
:deep(.el-card__body) { :deep(.el-card__body) {
padding: 50px;
padding: 40px;
} }
.card-header { .card-header {

Loading…
Cancel
Save