From 38c134f2c0d60a0ff2d658fda3dc1cd667ad2722 Mon Sep 17 00:00:00 2001 From: Silent YANG Date: Sun, 17 Nov 2024 07:14:03 +0800 Subject: [PATCH] update --- public/sms_test.bin | Bin 0 -> 59098 bytes src/utils/serial.js | 21 ++++++++------ src/views/list/chat/index.vue | 51 +++++++++++++++++++++++++++++++--- 3 files changed, 59 insertions(+), 13 deletions(-) create mode 100644 public/sms_test.bin diff --git a/public/sms_test.bin b/public/sms_test.bin new file mode 100644 index 0000000000000000000000000000000000000000..dea7a28b8b61a60ed1aaf1e95512f72843f02ff8 GIT binary patch literal 59098 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�Ti@qcrbL4 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 I|3y9XUxA;Rp8x;= literal 0 HcmV?d00001 diff --git a/src/utils/serial.js b/src/utils/serial.js index 94ecfd7..a6b427a 100644 --- a/src/utils/serial.js +++ b/src/utils/serial.js @@ -749,10 +749,14 @@ const FONT_MAPPING_118_MAP = ['啊', '阿', '埃', '挨', '哎', '唉', '哀', ' let globalWriteReader = null let globalReadReader = null -function globalRelease(){ +function globalRelease(target = 'all'){ try { - if(globalReadReader)globalReadReader.releaseLock() - if(globalWriteReader)globalWriteReader.releaseLock() + if(target != 'read'){ + if(globalWriteReader)globalWriteReader.releaseLock() + } + if(target != 'write'){ + if(globalReadReader)globalReadReader.releaseLock() + } } catch {} } @@ -869,7 +873,7 @@ async function readPacket(port, expectedData, timeout = 1000) { return unpacketize(new Uint8Array(sessionStorage.getItem('webusb').split(','))); } // Create a reader to read data from the serial port - globalRelease() + globalRelease('read') const reader = port.readable.getReader(); globalReadReader = reader; let buffer = new Uint8Array(); @@ -974,7 +978,7 @@ async function readPacket(port, expectedData, timeout = 1000) { */ async function readPacketNoVerify(port, timeout = 1000) { // Create a reader to read data from the serial port - globalRelease() + globalRelease('read') const reader = port.readable.getReader(); globalReadReader = reader; let buffer = new Uint8Array(); @@ -1063,7 +1067,7 @@ async function sendPacket(port, data) { } try { // create writer for port - globalRelease() + globalRelease('write') const writer = port.writable.getWriter(); globalWriteReader = writer; // prepare packet @@ -1514,12 +1518,11 @@ function unpackVersion(encoded_firmware) { async function sendSMSPacket(port, message){ try { - globalRelease() + globalRelease('write') const writer = port.writable.getWriter(); globalWriteReader = writer; const formattedMessage = `SMS:${message}\r\n`; const packet = new TextEncoder().encode(formattedMessage); - console.log(packet) await writer.write(packet); writer.releaseLock(); } catch (error) { @@ -1530,7 +1533,7 @@ async function sendSMSPacket(port, message){ } function readSMSPacket(port) { - globalRelease() + globalRelease('read') const reader = port.readable.getReader(); globalReadReader = reader; return reader; diff --git a/src/views/list/chat/index.vue b/src/views/list/chat/index.vue index 9eef603..65a9d16 100644 --- a/src/views/list/chat/index.vue +++ b/src/views/list/chat/index.vue @@ -3,7 +3,7 @@
呼号: @@ -41,10 +41,12 @@ import { computed, reactive, watch, nextTick, ref, onUnmounted } from 'vue'; import { eeprom_init, sendSMSPacket, readSMSPacket } from '@/utils/serial.js'; import { useAppStore } from '@/store'; +import { useRouter } from 'vue-router'; import { Message, Modal } from '@arco-design/web-vue'; import { useI18n } from 'vue-i18n'; const { t } = useI18n(); +const router = useRouter() const appStore = useAppStore(); const msgList: any = ref(null) @@ -90,7 +92,29 @@ const scrollIt = () => { } const downloadFirmware = () => { - Message.error('敬请期待') + router.push({ + path: '/tool/flash', + query: { + url: "/sms_test.bin" + } + }); +} + +function stringToUtf8Hex(str: string) { + const encoder = new TextEncoder(); + const utf8Bytes = encoder.encode(str); + let hex = ''; + utf8Bytes.forEach(byte => { + hex += byte.toString(16).padStart(2, '0').toUpperCase(); + }); + return hex; +} + +function hexToUtf8String(hex: string) { + // 将十六进制字符串转换为字节数组 + const bytes = new Uint8Array(hex.match(/.{1,2}/g).map(byte => parseInt(byte, 16))); + const decoder = new TextDecoder(); + return decoder.decode(bytes); } const sendMsg = async () => { @@ -99,8 +123,7 @@ const sendMsg = async () => { Message.error('请输入正确的呼号') return } - console.log(state.callsign.trim() + ":" + state.devid + ":" + state.sendInput.trim()) - sendSMSPacket(appStore.connectPort, state.callsign.trim() + ":" + state.devid + ":" + state.sendInput.trim()) + sendSMSPacket(appStore.connectPort,"START:" + state.callsign.trim() + ":" + state.devid + ":" + stringToUtf8Hex(state.sendInput.trim()) + ":END") state.msgList.push({ callsign: state.callsign.trim(), devid: state.devid, @@ -128,6 +151,7 @@ const connectIt = async () => { const asyncMsg = async (reader: any) => { let buffer = ''; const decoder = new TextDecoder(); + const regex = /START:[A-Z0-9]+:[0-9]+:[A-F0-9]+:END/g; while (true) { try { const { value, done } = await reader.read(); @@ -138,7 +162,26 @@ const asyncMsg = async (reader: any) => { message = message.trim(); buffer += message; console.log(buffer) + const matches = buffer.match(regex); + if (matches && matches.length > 0) { + buffer = '' + try { + const content = matches[matches.length - 1].split(':'); + state.msgList.push({ + callsign: content[1], + devid: content[2], + content: hexToUtf8String(content[3]) + }) + scrollIt() + } catch { + console.log('ERROR') + } + } } catch (error) { + console.log('已断开') + state.connect = false + state.reader.releaseLock(); + state.startChat = '开始聊天' break; } }