package com.tuoheng.machine.status; /** * 分为:准备中 -> 飞行中 -> 返航 三个大状态 * * 飞行中 * 飞行中 (可以变到指点) * 指点操作 (可以返航,指点 和 飞行中) * 急停 (可以返航,指点,飞行中) * 到达目的地 (可以指点和返航) * * 返航 * 返航中 (不可以指点) * 急停 (一键起飞和航线飞行都可以指点) * 指点操作 (可以返航中,急停,返航完成) * 返航完成 (不可往回变为返航中和急停) * * 指点操作细分为:准备指点 指点飞行中 指点完成 指点被取消 */ public enum DroneState { /** * 未知状态(服务器重启后的初始状态,等待第一次心跳同步) */ UNKNOWN, /** * 离线 */ OFFLINE, // ==================== 准备阶段 ==================== /** * 准备中 */ PREPARING, // ==================== 飞行阶段(父状态) ==================== /** * 飞行中(父状态) */ FLYING_PARENT, /** * 飞行中 */ FLYING, /** * 急停(飞行阶段) */ EMERGENCY_STOP, /** * 到达目的地 */ ARRIVED, // ==================== 返航阶段(父状态) ==================== /** * 返航(父状态) */ RETURNING_PARENT, /** * 返航中 */ RETURNING, /** * 急停(返航阶段) */ RETURN_EMERGENCY_STOP, /** * 返航完成 */ RETURN_COMPLETED, // ==================== 指点操作(可在飞行和返航阶段使用) ==================== /** * 指点操作(父状态) */ POINTING_PARENT, /** * 准备指点 */ POINT_PREPARING, /** * 指点飞行中 */ POINT_FLYING, /** * 指点完成 */ POINT_COMPLETED, /** * 指点被取消 */ POINT_CANCELLED }