import { defineStore } from 'pinia' import { ref } from 'vue' import * as R from 'ramda' import type { DeviceWorkStateMessage, FooterMessageState, SensorStateMessage, } from '../../websocket/socket' export const useDeviceStore = defineStore('device', () => { const deviceState = ref({ workState: 'IDLE', pending: false, } as DeviceWorkStateMessage['data']) function setDeviceState(data: DeviceWorkStateMessage['data']) { if (!R.equals(data, deviceState.value)) { deviceState.value = data } } const sensorState = ref({ pboxTemperature: 20, incubateBoxTemperature: 20, wasteBinFullFlag: false, }) const setSensorState = (data: SensorStateMessage['data']) => { if (!R.equals(data, sensorState.value)) { sensorState.value = data } } const messageState = ref({ topMessage: { time: 0, messageLevel: 'Info', message: '空闲', }, messageBoxList: [], }) const setMessageState = (data: FooterMessageState['data']) => { messageState.value = data } return { deviceState, setDeviceState, sensorState, setSensorState, messageState, setMessageState, } })