feat: HID串口优先ttyUSB并在视频设备名称后显示路径

This commit is contained in:
mofeng-git
2026-02-11 20:45:13 +08:00
parent 74411d354c
commit 6ed1cf5bef
3 changed files with 30 additions and 5 deletions

View File

@@ -537,6 +537,25 @@ export const msdApi = {
}),
}
interface SerialDeviceOption {
path: string
name: string
}
function getSerialDevicePriority(path: string): number {
if (/^\/dev\/ttyUSB/i.test(path)) return 0
if (/^\/dev\/(ttyS|S)/i.test(path)) return 2
return 1
}
function sortSerialDevices(serialDevices: SerialDeviceOption[]): SerialDeviceOption[] {
return [...serialDevices].sort((a, b) => {
const priorityDiff = getSerialDevicePriority(a.path) - getSerialDevicePriority(b.path)
if (priorityDiff !== 0) return priorityDiff
return a.path.localeCompare(b.path, undefined, { numeric: true, sensitivity: 'base' })
})
}
// Config API
/** @deprecated 使用域特定 APIvideoConfigApi, hidConfigApi 等)替代 */
export const configApi = {
@@ -549,8 +568,8 @@ export const configApi = {
body: JSON.stringify(updates),
}),
listDevices: () =>
request<{
listDevices: async () => {
const result = await request<{
video: Array<{
path: string
name: string
@@ -578,7 +597,13 @@ export const configApi = {
ttyd_available: boolean
rustdesk_available: boolean
}
}>('/devices'),
}>('/devices')
return {
...result,
serial: sortSerialDevices(result.serial),
}
},
}
// 导出新的域分离配置 API