package org.dromara.elevator.domain.message;

import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

/**
 * 实时消息
 *
 * @author ym
 * @version 1.0.0
 * @date 2024-08-21 15:12
 */
public class RealMsgReq extends BaseReq<RealMsgReq.RealMsgInfo> {

    /**
     * 实时消息内容
     */
    @Data
    public static class RealMsgInfo {
        /**
         * 设备编号
         */
        private String code;
        /**
         * 电梯注册代码
         */
        private String registerCode;
        /**
         * 平层状态0：非平层；1：平层；255未知状态
         */
        private Integer level;
        /**
         * 行梯状态0：停梯，上电后静止状态搜索成功；17：上行；18:下行;
         * 33：上行到停梯；34：下行到停梯；255：未知状态
         */
        private Integer runState;
        /**
         * 门开关状态0：开门到位；1：关门到位;2：开门过程中;3：关门过程中;255：未知状态，轿门状态未校准;
         */
        private Integer door;
        /**
         * 当前显示楼层，无数据时，未校准
         */
        private String floor;
        /**
         * 当前实时速度，单位：cm/s
         */
        private BigDecimal speed;
        /**
         * 当次运行距离，单位：cm
         */
        private BigDecimal currRunDis;
        /**
         * 轿内是否有人0:无人1:有人其他值=未知（独立配件设备)
         */
        private Integer passengerStatus;
        /**
         * 环境数据 (独立配件设备
         */
        private List<EnvData> envData;
        /**
         * 当前服务模式1.正常模式、2.检修模式
         */
        private Integer serviceMode;
        /**
         * 厅门状态 0.无门锁锁止信号、1.门锁锁止
         */
        private Integer histwayDoor;
        /**
         * 安全回路状态0.导通、1.断开
         */
        private Integer safetyCircuitStatus;
        /**
         * 曳引机状态0.待机、1.提起、2.释放
         */
        private Integer liftCarDriveStatus;
    }

    /**
     * 环境数据 (独立配件设备
     */
    @Data
    public static class EnvData {
        /**
         * 位置1.桥厢、2.桥顶、3.机房、4.底坑
         */
        private Integer position;
        /**
         * 温度
         */
        private BigDecimal temperature;
        /**
         * 湿度
         */
        private BigDecimal humidity;
        /**
         * 空气质量
         */
        private BigDecimal airQuality;
        /**
         * 光照强度
         */
        private BigDecimal lightIntensity;
    }

}
