package com.cmvr.test.enums; import lombok.AllArgsConstructor; import lombok.Getter; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @Getter @AllArgsConstructor public enum ActionEnum { // 平台控制类 STOPPED("NONE", "STOP", "强制终止"), PAUSED("NONE", "PAUSED", "暂停"), RESUME("NONE", "RESUME", "继续"), START("NONE", "START", "开始"), SUB_START("NONE", "SUB_START", "循环开始(子流程开始)"), END("NONE", "END", "结束"), START_LOOP("NONE", "START_LOOP", "开始循环"), STOP_LOOP("NONE", "STOP_LOOP", "结束循环"), BRANCH("NONE", "BRANCH", "分支"), SUB_END("NONE", "SUB_END", "子流程结束"), SLEEP("NONE", "SLEEP", "延迟节点"), // 系统行为 NONE("NONE", "NONE", "无操作"), // 设备行为 // ---------------相机--------------- CAMERA_START("EDGE", "CAMERA_START", "启动相机"), CAMERA_STOP("EDGE", "CAMERA_STOP", "停止相机"), CAMERA_GETRGBIMAGE("EDGE", "CAMERA_GETRGBIMAGE", "获取RGB图像"), CAMERA_RECORDING_START("EDGE", "CAMERA_RECORDING_START", "开始录像"), CAMERA_RECORDING_STOP("EDGE", "CAMERA_RECORDING_STOP", "结束录像"), // ---------------麦克风--------------- MICROPHONE_START("EDGE", "MICROPHONE_START", "启动麦克风"), MICROPHONE_STOP("EDGE", "MICROPHONE_STOP", "停止麦克风"), // ---------------扬声器(人工嘴)--------------- SPEAKER_PLAYAUDIO("EDGE", "SPEAKER_PLAYAUDIO", "播放音频"), // 大模型行为 // ---------------获取触控坐标--------------- TOUCH_COORDINATES("LLM", "TOUCH_COORDINATES", "获取触控坐标"), ; private final String operate; private final String action; private final String description; // 根据action值获取对应的枚举 public static ActionEnum fromAction(String action) { for (ActionEnum actionEnum : values()) { if (actionEnum.getAction().equalsIgnoreCase(action)) { return actionEnum; } } return null; } public static List> toList() { List> list = new ArrayList<>(); for (ActionEnum e : values()) { Map map = new HashMap<>(); map.put("action", e.getAction()); map.put("description", e.getDescription()); list.add(map); } return list; } }