init commit

This commit is contained in:
叶志超
2023-10-13 16:43:53 +08:00
parent c1fc36b44c
commit d184776cb3
275 changed files with 8305 additions and 0 deletions

View File

@@ -0,0 +1,74 @@
<template>
<!-- TODO: 使用form grid替换 -->
<n-descriptions :column="1">
<n-descriptions-item>
<n-button :disabled="serialPort.isOpen" type="primary" @click="onSelectBtnClick">选择串口</n-button>
</n-descriptions-item>
<n-descriptions-item label="波特率">
<n-select :disabled="serialPort.instance === null || serialPort.isOpen" v-model:value="serialPortOptions.baudRate" :options="BAUDRATE_OPTIONS" />
</n-descriptions-item>
<n-descriptions-item label="数据位">
<n-select :disabled="serialPort.instance === null || serialPort.isOpen" v-model:value="serialPortOptions.dataBits" :options="DATA_BITS_OPTIONS" />
</n-descriptions-item>
<n-descriptions-item label="停止位">
<n-select :disabled="serialPort.instance === null || serialPort.isOpen" v-model:value="serialPortOptions.stopBits" :options="STOPBITS_OPTIONS" />
</n-descriptions-item>
<n-descriptions-item label="奇偶校验">
<n-select :disabled="serialPort.instance === null || serialPort.isOpen" v-model:value="serialPortOptions.parity" :options="PARITY_OPTIONS" />
</n-descriptions-item>
<n-descriptions-item>
<n-button :disabled="serialPort.instance === null" type="primary" @click="onTriggerBtnClick">{{ serialPort.isOpen ? '关闭串口' : '打开串口' }}</n-button>
</n-descriptions-item>
</n-descriptions>
</template>
<script setup lang="ts">
import { ref } from 'vue'
import { NDescriptions, NDescriptionsItem, NSelect, NButton, useMessage } from 'naive-ui'
import { BAUDRATE_OPTIONS, DATA_BITS_OPTIONS, STOPBITS_OPTIONS, PARITY_OPTIONS } from './data'
import { useSerialPortStore } from '@/stores/serialPort'
const message = useMessage()
const serialPort = useSerialPortStore()
const serialPortOptions = ref({
baudRate: BAUDRATE_OPTIONS[BAUDRATE_OPTIONS.length - 1].value,
dataBits: DATA_BITS_OPTIONS[0].value,
stopBits: STOPBITS_OPTIONS[0].value,
parity : PARITY_OPTIONS[0].value,
})
let closedPromise
const openSerialPort = () => {
closedPromise = serialPort.open(serialPortOptions.value).catch((error) => {
console.error(error)
message.error('打开串口失败,' + error.message)
})
}
const closeSerialPort = async () => {
try {
await serialPort.close()
await closedPromise
} catch (error) {
console.error(error)
message.error('关闭串口失败,' + error.message)
}
}
const onSelectBtnClick = serialPort.select
const onTriggerBtnClick = async () => {
if (serialPort.isOpen) {
closeSerialPort()
} else {
openSerialPort()
}
}
</script>
<style scoped lang="less">
.n-button {
width: 100%;
}
</style>