feat(utils): 添加机器人设备工具函数

- 定义 DEVICE_KIND 枚举映射设备类型
- 创建 DEVICE_KIND_BY_ACTION 映射动作到设备类型
- 实现 getDeviceKindForAction 函数获取动作对应的设备类型
- 添加 toDeviceOptions 函数将设备列表转换为选择框选项格式
- 支持设备名称显示,若设备名存在则显示 "设备名 (设备ID)" 格式
This commit is contained in:
lixiaolong 2026-08-05 09:28:45 +08:00
parent 45b190ff02
commit e3a566cf28

38
src/utils/robotDevice.js Normal file
View File

@ -0,0 +1,38 @@
export const DEVICE_KIND = Object.freeze({
AGV: 1,
ARM: 2,
BIO_HEAD: 4,
CAMERA: 5,
MICROPHONE: 9,
ROBOT: 12,
SPEAKER: 13,
})
export const DEVICE_KIND_BY_ACTION = Object.freeze({
AGV_MOVE_TO_POINT: DEVICE_KIND.AGV,
AGV_MOVE_TO_STATION: DEVICE_KIND.AGV,
ARM_MOVE_TO_POINT: DEVICE_KIND.ARM,
ARM_MOVE_TO_J: DEVICE_KIND.ARM,
TOUCH: DEVICE_KIND.ARM,
BIO_HEAD_SPEAK_START: DEVICE_KIND.BIO_HEAD,
BIO_HEAD_SPEAK_STOP: DEVICE_KIND.BIO_HEAD,
BIO_HEAD_SPECIAL_EXPRESSION: DEVICE_KIND.BIO_HEAD,
CAMERA_START: DEVICE_KIND.CAMERA,
CAMERA_STOP: DEVICE_KIND.CAMERA,
CAMERA_GETRGBIMAGE: DEVICE_KIND.CAMERA,
CAMERA_RECORDING_START: DEVICE_KIND.CAMERA,
CAMERA_RECORDING_STOP: DEVICE_KIND.CAMERA,
MICROPHONE_START: DEVICE_KIND.MICROPHONE,
MICROPHONE_STOP: DEVICE_KIND.MICROPHONE,
SPEAKER_PLAYAUDIO: DEVICE_KIND.SPEAKER,
VI_PLAY_CORPUS: DEVICE_KIND.SPEAKER,
})
export const getDeviceKindForAction = (action) => DEVICE_KIND_BY_ACTION[action]
export const toDeviceOptions = (devices = []) => devices.map((device) => ({
value: device.deviceId,
label: device.deviceName && device.deviceName !== device.deviceId
? `${device.deviceName} (${device.deviceId})`
: device.deviceId,
}))