package com.pwt.netty.common.plc;

public enum PlcCommand {
    // --------------------- 写入命令-------------------------------
    /**
     * 心跳
     */
    W_Heartbeat("DB11.0.0"),
    /**
     * 重置
     */
    W_Reset("DB11.0.1"),
    /**
     * 停止
     */
    W_Stop("DB11.0.2"),
    /**
     * 暂停
     */
    W_Pause("DB11.0.3"),
    /**
     * 继续
     */
    W_Resume("DB11.0.4"),
    /**
     * 换电
     */
    W_DoCharge("DB11.0.5"),
    /**
     * 换仓
     */
    W_MoveBattery("DB11.0.6"),

    /**
     * 定位
     */
    W_Position("DB11.0.7"),

    /**
     * 急停
     */
    W_EmergencyStop("DB11.1.0"),

    /**
     * 锁止
     */
    W_Lock("DB11.1.1"),

    /**
     * 设置换电模式, 0 手动， 1自动
     */
    W_SetChargeMode("DB11.1.2"),

    /**
     * 定位回原
     */
    W_PositionReset("DB11.1.3"),

    /**
     * 电池电仓检修
     */
    W_BatteryHolderInspect("DB11.2.0"),
    /**
     * 电池正在充电(1号仓的3号枪)
     */
    W_BatteryCharging("DB11.4.0"),

    /**
     * 电池正在充电(2号充电机的1号枪)
     */
    W_BatteryCharging2("DB11.4.1"),

    /**
     * 电池正在充电(3号仓1号充电机1号枪)
     */
    W_BatteryCharging3("DB11.4.2"),
    /**
     * 取满电池仓位
     */
    W_GetBatteryHolderIndex("DB11.6"),

    /**
     * 放空电池仓位
     */
    W_PutBatteryHolderIndex("DB11.8"),

    // --------------------- 读取命令-------------------------------
    /**
     * 心跳
     */
    R_Heartbeat("DB11.12.0"),
    /**
     * 远方就地信号， 0 就地， 1远程
     */
    R_RemoteOrLocal("DB11.12.2"),
    /**
     * 换电完成
     */
    R_ChargeDone("DB11.12.3"),

    /**
     * 换电步骤
     */
    R_ChargeStep("DB11.32"),

    /**
     * 车辆到位 1 到位
     */
    R_VehicleInPosition("DB11.12.4"),
    /**
     * 车道是否有车
     */
    R_VehicleExists("DB11.12.5"),
    /**
     * 设备运行信号 1换电设备正在运行
     */
    R_DeviceRunning("DB11.12.6"),
    /**
     * 换仓完成 1 todo 该信号在协议上被移除了，需要确认是否保留
     */
    R_MoveBatteryDone("DB11.13.1"),


    /**
     * 换电设备到达实际车位
     */
    R_DeviceInActualVehiclePosition("DB11.13.8"),

    /**
     * 换电设备到达理论车位
     */
    R_DeviceInVehiclePosition("DB11.14"),

    /**
     * 换电设备到达仓位
     */
    R_DeviceInBatteryPosition("DB11.14.1"),

    /**
     * 仓位电池是否存在
     */
    R_BatteryExists("DB11.16.0"),;


    private final String address;

    PlcCommand(String address) {
        this.address = address;
    }


    public String getAddress() {
        return address;
    }
}
