package com.bonait.bnframework.common.constant;

import android.app.Application;
import android.content.Context;

import com.bonait.bnframework.R;
import com.bonait.bnframework.common.db.mode.BPA_PLCADDRESS;
import com.bonait.bnframework.common.db.mode.BPA_USER;
import com.bonait.bnframework.common.db.mode.Res_PLCADDRESS;
import com.bonait.bnframework.common.db.res.StatusMode;
import com.bonait.bnframework.common.model.AddrType;
import com.bonait.bnframework.common.model.mode.CloudGood;
import com.bonait.bnframework.common.model.mode.DeviceInformation;
import com.bonait.bnframework.common.model.mode.OrganizeMode;
import com.bonait.bnframework.common.model.mode.ProcessT;
import com.bonait.bnframework.common.model.mode.ResALLData;
import com.bonait.bnframework.common.model.mode.VersionSelectionEnum;
import com.bonait.bnframework.common.utils.ScreenUtils;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;


/**
 * 配置文件
 */
public class ConfigName {
    //region 单例模式
    private static ConfigName mInstance; //实例变量设置私有，防止直接通过类名访问

    private ConfigName() { //默认构造函数私有，防止类外直接new创建对象
    }

    public static synchronized ConfigName getInstance() { //静态同步方法作为唯一的实例对象获取方式
        if (mInstance == null) {
            mInstance = new ConfigName();
        }
        return mInstance;
    }
    //endregion

    //region 程序进入界面
    public Context dishesCon;
    public Context Home;
    public Application app;
    public boolean IsPortraitScreen=true;//是否竖屏
    //endregion

    //region SD卡路径设置
    /**
     * SD卡路径
     */
    public String sdCardPath;
    /**
     * 应用程序 Res 根路径
     */
    public String appResRoot;
    /**
     * Db文件路径
     */
    public static String dbPath = "";
    //endregion

    //region 店铺配置
    /**
     * 店铺名称
     */
    public String Shop_Name = "黑菠萝奶茶机";
    /**
     * 门店Id
     */
    public String ClientAutoKey = "79";
    /**
     * 店铺设备号
     */
    public String DeviceAutoKey = "159";
    /**
     * 设备id
     */
    public String DeviceId = "未知";
    //endregion

    //region MQTT配置中心
    /**
     * 用户名
     */
    public String mqtt_userName = "emqx_u_block";
    /**
     * 密码
     */
    public String mqtt_passWord = "emqx_p_admin8765490789";
    /**
     * ip地址
     */
    public String mqtt_ip = "10.2.1.21";
    /**
     * post端口
     */
    public int mqtt_post = 1883;
    /**
     * 订阅主题
     */
    public String mqtt_topic = "DOWN/MORKT/BUSINESS/";
    public String mqtt_hearttopic = "UP/MORKT/HEARTBEAT";
    //endregion

    //region 环境配置
    /**
     * 环境配置
     */
    public String Environment = "开发环境";
    //endregion

    //region 登录信息
    /**
     * 用户信息
     */
    public BPA_USER user = new BPA_USER();
    //endregion

    //region 组织信息
    /**
     * 组织信息
     */
    public OrganizeMode organizeMode = null;
    /**
     * 设备信息
     */
    public DeviceInformation deviceInformation = null;
    //endregion

    //region 版本信息
    /**
     * 版本更新，当前版本
     */
    public String Version = "1.0";
    //endregion

    //region 是否手动下单
    /**
     * 是否手动下单
     */
    public Boolean IsUserDownOrder = false;
    //endregion

    //region 系统设置表
    /**
     * 订单上报周期，默认一小时 *60
     */
    public int OrderPushTime = 3600;
    /**
     * 料仓余量上报周期，默认10分钟 *60
     */
    public int SilosValuePushTime = 600;
    /**
     * 其他传感器上报周期，默认10分钟 *60
     */
    public int OtherValuePushTime = 600;
    /**
     * 管道排空周期，默认一小时 *60
     */
    public int PipeDrainCycleTime = 3600;
    /**
     * 订单未制作超时规则，默认20分钟 *60
     */
    public int OrderTimeout = 1200;
    /**
     * 料仓补料阈值，500g
     */
    public int SiloFeedThreshold = 500;
    /**
     * 料仓告警阈值，50g
     */
    public int SiloAlarmThreshold = 50;
    /**
     * 自动清洗时间，默认一小时 *60
     */
    public int AICleanTime = 3600;
    //endregion

    //region PlC连接参数
    /**
     * 老窗体是否显示
     */
    public boolean IsShow = false;
    /**
     * 新窗体是否显示
     */
    public boolean IsShowNew = false;
    /**
     * Plc是否连接
     */
    public boolean PlcIsConnect = false;
    /**
     * Plc地址
     */
    public String Address = "192.168.1.100";
    /**
     * Plc端口
     */
    public int Post = 502;


    /**
     * 主控 Plc是否连接
     */
    public boolean PlcMainIsConnect = false;

    /**
     * 主控PLC地址
     */
    public String MainAddress = "192.168.4.100";
    /**
     * 主控 Plc端口
     */
    public int MainPost = 30000;

    /**
     * 一拖四设备号
     */
    public int DeviceHao = 1;

    /**
     * 炒锅状态：空闲 或者 不正常
     */
    public boolean WokStatus = false;
    /**
     * 炒锅投料机构：空闲 或者 不正常
     */
    public boolean TouLiaoStatus = false;
    /**
     * 出餐减速位：空闲 或者 不正常
     */
    public boolean ChuCaiJainShuStatus = false;
    //endregion

    //region URL
    //Sass地址
    public String SaasAddress = "http://order.test1.com";
    //public String SaasAddress="https://bpa.black-pa.com:21527";
    //public String SaasAddress="https://witt.black-pa.com";

    //获取店铺详细信息 Get
    public String GetStore = "kitchen/api/StoreHelper/GetStoreInfoById?storeId=";
    //获取设备信息分页 Get
    public String GetDeviceInformation = "kitchen/api/CommInteface/GetDeviceInfo?storeId=%s&autoKey=%s";
    //获取 获取基础信息（所有物料信息、设备工序模型、菜谱列表、商品小类、商品大类、单位数据
    public String GetBaseDataModel = "kitchen/api/CommInteface/GetBaseDataModel?storeId=%s&autoKey=%s";
    //获取 商品
    public String GetGoods = "kitchen/api/CommInteface/GetDeviceGood?storeId=%s&deviceId=%s";
    //获取商品配方信息
    public String GetGoodsBom = "kitchen/api/CommInteface/GetDeviceGoodBomTechnology?goodsId=%s&deviceId=%s";
    //上传商品
    public String UpdateGoods = "kitchen/api/CommInteface/SendGoodsInfo";
    //获取商品信息
    public String GetGoodIsCloud = "kitchen/api/CommInteface/GetGoodsInfo?goodsName=%s";

    //版本更新
    public String UpdateVersion = "http://111.9.47.105:18097/api/Version/GetLatest";
    //endregion

    //region PLC地址配置
    /**
     * PLC地址
     */
    public static ConcurrentHashMap<String, BPA_PLCADDRESS> PLC_Address = new ConcurrentHashMap<String, BPA_PLCADDRESS>();
    /**
     * 大炒基础PLC模型
     */
    public List<Res_PLCADDRESS> PlcAddress_大炒 = new ArrayList<Res_PLCADDRESS>() {{

        //硬件设备 初始化
        add(new Res_PLCADDRESS("硬件设备", "-------------", 0, 0));
        add(new Res_PLCADDRESS("初始化", "M10.0", 1, 1));
        add(new Res_PLCADDRESS("停止", "M10.1", 1, 1));
        add(new Res_PLCADDRESS("复位", "M10.2", 0, 1));

        //搅拌模型
        add(new Res_PLCADDRESS("模型控制", "-------------", 0, 0));
        add(new Res_PLCADDRESS("搅拌", "M10.3", 1, 1));
        add(new Res_PLCADDRESS("搅拌速度", "VW102", 1, 1));

        //翻转正转模型
        add(new Res_PLCADDRESS("翻转正转", "M10.4", 0, 1));
        add(new Res_PLCADDRESS("翻转反转", "M10.5", 0, 1));
        add(new Res_PLCADDRESS("转动速度", "VW104", 1, 1));


        //加热模型
        add(new Res_PLCADDRESS("加热", "M10.6", 0, 1));
        add(new Res_PLCADDRESS("加热功率", "VW100", 1, 1));
        add(new Res_PLCADDRESS("温控开关", "M17.6", 1, 1));
        add(new Res_PLCADDRESS("暂停开关", "M17.7", 1, 1));

        //主料
        add(new Res_PLCADDRESS("主料", "M17.4", 0, 1));

        //抽水放水
        add(new Res_PLCADDRESS("炒锅抽水", "M10.7", 0, 1));
        add(new Res_PLCADDRESS("炒锅放水", "M11.0", 0, 1));


        //出菜模型
        add(new Res_PLCADDRESS("出菜", "M11.5", 0, 1));


        //位置动作
        add(new Res_PLCADDRESS("原点位", "M11.4", 0, 1));
        add(new Res_PLCADDRESS("倒菜位", "M12.7", 0, 1));
        add(new Res_PLCADDRESS("抽料位", "M11.7", 0, 1));
        add(new Res_PLCADDRESS("清洗位", "M13.0", 0, 1));
        add(new Res_PLCADDRESS("炒菜位1", "M12.0", 0, 1));
        add(new Res_PLCADDRESS("炒菜位2", "M12.1", 0, 1));
        add(new Res_PLCADDRESS("炒菜位3", "M12.2", 0, 1));

        add(new Res_PLCADDRESS("出餐启动", "M11.5", 0, 1));
        add(new Res_PLCADDRESS("炒锅清洗", "M11.6", 0, 1));

        //液体料模型
        add(new Res_PLCADDRESS("料仓校准", "-------------", 0, 0));
        add(new Res_PLCADDRESS("校准时间", "VW112", 1, 1));
        add(new Res_PLCADDRESS("料仓1校准开关", "M12.3", 0, 1));
        add(new Res_PLCADDRESS("料仓1校准值", "VW114", 1, 1));
        add(new Res_PLCADDRESS("料仓2校准开关", "M12.4", 0, 1));
        add(new Res_PLCADDRESS("料仓2校准值", "VW116", 1, 1));
        add(new Res_PLCADDRESS("料仓3校准开关", "M12.5", 0, 1));
        add(new Res_PLCADDRESS("料仓3校准值", "VW118", 1, 1));
        add(new Res_PLCADDRESS("料仓4校准开关", "M13.5", 0, 1));
        add(new Res_PLCADDRESS("料仓4校准值", "VW120", 1, 1));
        add(new Res_PLCADDRESS("开始校正", "M12.6", 0, 1));

        add(new Res_PLCADDRESS("料仓自动", "-------------", 0, 0));
        add(new Res_PLCADDRESS("料仓1需求值", "VW106", 1, 1));
        add(new Res_PLCADDRESS("料仓1下料", "M11.1", 0, 1));
        add(new Res_PLCADDRESS("料仓2需求值", "VW108", 1, 1));
        add(new Res_PLCADDRESS("料仓2下料", "M11.2", 0, 1));
        add(new Res_PLCADDRESS("料仓3需求值", "VW110", 1, 1));
        add(new Res_PLCADDRESS("料仓3下料", "M11.3", 0, 1));
        add(new Res_PLCADDRESS("料仓4需求值", "VW122", 1, 1));
        add(new Res_PLCADDRESS("料仓4下料", "M13.4", 0, 1));

        add(new Res_PLCADDRESS("料仓手动", "-------------", 0, 0));
        add(new Res_PLCADDRESS("料仓1手动开关", "M13.1", 1, 1));
        add(new Res_PLCADDRESS("料仓2手动开关", "M13.2", 1, 1));
        add(new Res_PLCADDRESS("料仓3手动开关", "M13.3", 1, 1));
        add(new Res_PLCADDRESS("料仓4手动开关", "M10.7", 1, 1));
        //上下限
        add(new Res_PLCADDRESS("位置上下限", "-------------", 0, 0));
        add(new Res_PLCADDRESS("原点位置下限", "VD150", 1, 1));
        add(new Res_PLCADDRESS("原点位置上限", "VD154", 1, 1));
        add(new Res_PLCADDRESS("洗锅位置下限", "VD158", 1, 1));
        add(new Res_PLCADDRESS("洗锅位置上限", "VD162", 1, 1));
        add(new Res_PLCADDRESS("倒菜位置下限", "VD166", 1, 1));
        add(new Res_PLCADDRESS("倒菜位置上限", "VD170", 1, 1));
        add(new Res_PLCADDRESS("抽调料位置下限", "VD174", 1, 1));
        add(new Res_PLCADDRESS("抽调料位置上限", "VD178", 1, 1));
        add(new Res_PLCADDRESS("1#炒制位置下限", "VD182", 1, 1));
        add(new Res_PLCADDRESS("1#炒制位置上限", "VD186", 1, 1));
        add(new Res_PLCADDRESS("2#炒制位置下限", "VD190", 1, 1));
        add(new Res_PLCADDRESS("2#炒制位置上限", "VD194", 1, 1));
        add(new Res_PLCADDRESS("3#炒制位置下限", "VD198", 1, 1));
        add(new Res_PLCADDRESS("3#炒制位置上限", "VD202", 1, 1));
        add(new Res_PLCADDRESS("炒锅工作范围下限", "VD206", 1, 1));
        add(new Res_PLCADDRESS("炒锅工作范围上限", "VD210", 1, 1));

        add(new Res_PLCADDRESS("温度模拟输入量", "-------------", 0, 0));
        add(new Res_PLCADDRESS("温度模拟量上限", "VW1050", 1, 1));
        add(new Res_PLCADDRESS("温度模拟量下限", "VW1052", 1, 1));
        add(new Res_PLCADDRESS("温度模拟量", "VW1054", 1, 1));
        add(new Res_PLCADDRESS("温度量程上限", "VD1060", 1, 1));
        add(new Res_PLCADDRESS("温度量程下限", "VD1056", 1, 1));

        add(new Res_PLCADDRESS("电流模拟输入量", "-------------", 0, 0));
        add(new Res_PLCADDRESS("电流模拟量上限", "VW1070", 1, 1));
        add(new Res_PLCADDRESS("电流模拟量下限", "VW1072", 1, 1));
        add(new Res_PLCADDRESS("电流模拟量", "VW1074", 1, 1));
        add(new Res_PLCADDRESS("电流量程上限", "VD1080", 1, 1));
        add(new Res_PLCADDRESS("电流量程下限", "VD1076", 1, 1));
        add(new Res_PLCADDRESS("电流报警设置", "VW1092", 1, 1));
        add(new Res_PLCADDRESS("异常加热故障信息", "M42.1", 1, 1));

        //反馈信号
        add(new Res_PLCADDRESS("反馈信号", "-------------", 0, 0));
        add(new Res_PLCADDRESS("初始化完成", "M40.0", 1, 0));
        add(new Res_PLCADDRESS("设备急停", "M40.1", 1, 0));
        add(new Res_PLCADDRESS("原点位反馈", "M40.2", 1, 0));
        add(new Res_PLCADDRESS("抽料位反馈", "M40.3", 1, 0));
        add(new Res_PLCADDRESS("炒菜位1反馈", "M40.4", 1, 0));
        add(new Res_PLCADDRESS("炒菜位2反馈", "M40.5", 1, 0));
        add(new Res_PLCADDRESS("炒菜位3反馈", "M40.6", 1, 0));
        add(new Res_PLCADDRESS("倒菜位反馈", "M40.7", 1, 0));
        add(new Res_PLCADDRESS("投料位反馈", "M41.0", 1, 0));
        add(new Res_PLCADDRESS("清洗位反馈", "M41.1", 1, 0));
        add(new Res_PLCADDRESS("料仓1下料完成", "M41.2", 1, 0));
        add(new Res_PLCADDRESS("料仓2下料完成", "M41.3", 1, 0));
        add(new Res_PLCADDRESS("料仓3下料完成", "M41.4", 1, 0));
        add(new Res_PLCADDRESS("料仓4下料完成", "M42.0", 1, 0));
        add(new Res_PLCADDRESS("炒锅清洗反馈", "M41.5", 1, 0));
        add(new Res_PLCADDRESS("出餐启动反馈", "M41.6", 1, 0));
        add(new Res_PLCADDRESS("炒锅倒菜减速位", "M41.7", 1, 0));
        add(new Res_PLCADDRESS("心跳位", "VW1000", 0, 1));


        //检测信号
        add(new Res_PLCADDRESS("监测信号", "-------------", 0, 0));
        add(new Res_PLCADDRESS("当前锅底温度", "VD300", 1, 0));
        add(new Res_PLCADDRESS("炒锅搅拌转速", "VD304", 1, 0));
        add(new Res_PLCADDRESS("当前加热档位", "VD308", 1, 0));
        add(new Res_PLCADDRESS("炒锅当前电压", "VD312", 1, 0));
        add(new Res_PLCADDRESS("炒锅当前电流", "VD316", 1, 0));
        add(new Res_PLCADDRESS("炒锅当前功率", "VD320", 1, 0));
        add(new Res_PLCADDRESS("搅拌频率", "VW324", 1, 0));
        add(new Res_PLCADDRESS("搅拌电机电流", "VW326", 1, 0));
        add(new Res_PLCADDRESS("搅拌电机电压", "VW328", 1, 0));
        add(new Res_PLCADDRESS("搅拌变频器温度", "VW330", 1, 0));
        add(new Res_PLCADDRESS("翻转频率", "VW332", 1, 0));
        add(new Res_PLCADDRESS("翻转电机电流", "VW334", 1, 0));
        add(new Res_PLCADDRESS("翻转电机电压", "VW336", 1, 0));
        add(new Res_PLCADDRESS("翻转变频器温度", "VW338", 1, 0));
        add(new Res_PLCADDRESS("编码器当前位值", "VD340", 1, 0));

        //状态上报
        add(new Res_PLCADDRESS("状态上报", "-------------", 0, 0));
        add(new Res_PLCADDRESS("搅拌电机", "VW350", 1, 0));
        add(new Res_PLCADDRESS("翻转电机", "VW352", 1, 0));
        add(new Res_PLCADDRESS("炒锅", "VW354", 1, 0));
    }};
    /**
     * 大炒工序模型
     */
    public List<ProcessT> Process_大炒 = new ArrayList<ProcessT>() {{
        add(new ProcessT("搅拌", Arrays.asList("搅拌速度", "延迟(秒)")));
        add(new ProcessT("位置", Arrays.asList("转动速度", "位置动作", "延迟(秒)")));
        add(new ProcessT("加热", Arrays.asList("加热功率", "延迟(秒)")));
        add(new ProcessT("主料", Arrays.asList("主料名称", "主料重量","炒制位置")));
        add(new ProcessT("液体料", new ArrayList<>()));
        add(new ProcessT("并行出料", Arrays.asList("出料克数","等待(秒)")));
        add(new ProcessT("延迟", Arrays.asList("延迟(秒)")));
        add(new ProcessT("出菜", Arrays.asList("等待(秒)")));
        add(new ProcessT("清洗", Arrays.asList("等待(秒)")));
    }};

    /**
     * 大炒自动投料基础PLC模型
     */
    public List<Res_PLCADDRESS> PlcAddress_大炒自动投料 = new ArrayList<Res_PLCADDRESS>() {{

        //硬件设备 初始化
        add(new Res_PLCADDRESS("硬件设备", "-------------", 0, 0));
        add(new Res_PLCADDRESS("初始化", "M10.0", 1, 1));
        add(new Res_PLCADDRESS("停止", "M10.1", 1, 1));
        add(new Res_PLCADDRESS("复位", "M10.2", 0, 1));

        //搅拌模型
        add(new Res_PLCADDRESS("模型控制", "-------------", 0, 0));
        add(new Res_PLCADDRESS("搅拌", "M10.3", 1, 1));
        add(new Res_PLCADDRESS("搅拌速度", "VW102", 1, 1));

        //翻转正转模型
        add(new Res_PLCADDRESS("翻转正转", "M10.4", 0, 1));
        add(new Res_PLCADDRESS("翻转反转", "M10.5", 0, 1));
        add(new Res_PLCADDRESS("转动速度", "VW104", 1, 1));


        //加热模型
        add(new Res_PLCADDRESS("加热", "M10.6", 0, 1));
        add(new Res_PLCADDRESS("加热功率", "VW100", 1, 1));
        add(new Res_PLCADDRESS("温控开关", "M17.6", 1, 1));
        add(new Res_PLCADDRESS("暂停开关", "M17.7", 1, 1));

        //主料
        add(new Res_PLCADDRESS("主料", "M17.4", 0, 1));

        //抽水放水
        add(new Res_PLCADDRESS("炒锅抽水", "M10.7", 0, 1));
        add(new Res_PLCADDRESS("炒锅放水", "M11.0", 0, 1));


        //出菜模型
        add(new Res_PLCADDRESS("出菜", "M11.5", 0, 1));


        //位置动作
        add(new Res_PLCADDRESS("原点位", "M11.4", 0, 1));
        add(new Res_PLCADDRESS("倒菜位", "M12.7", 0, 1));
        add(new Res_PLCADDRESS("抽料位", "M11.7", 0, 1));
        add(new Res_PLCADDRESS("清洗位", "M13.0", 0, 1));
        add(new Res_PLCADDRESS("炒菜位1", "M12.0", 0, 1));
        add(new Res_PLCADDRESS("炒菜位2", "M12.1", 0, 1));
        add(new Res_PLCADDRESS("炒菜位3", "M12.2", 0, 1));

        add(new Res_PLCADDRESS("出餐启动", "M11.5", 0, 1));
        add(new Res_PLCADDRESS("炒锅清洗", "M11.6", 0, 1));

        //液体料模型
        add(new Res_PLCADDRESS("料仓校准", "-------------", 0, 0));
        add(new Res_PLCADDRESS("校准时间", "VW112", 1, 1));
        add(new Res_PLCADDRESS("料仓1校准开关", "M12.3", 0, 1));
        add(new Res_PLCADDRESS("料仓1校准值", "VW114", 1, 1));
        add(new Res_PLCADDRESS("料仓2校准开关", "M12.4", 0, 1));
        add(new Res_PLCADDRESS("料仓2校准值", "VW116", 1, 1));
        add(new Res_PLCADDRESS("料仓3校准开关", "M12.5", 0, 1));
        add(new Res_PLCADDRESS("料仓3校准值", "VW118", 1, 1));
        add(new Res_PLCADDRESS("料仓4校准开关", "M13.5", 0, 1));
        add(new Res_PLCADDRESS("料仓4校准值", "VW120", 1, 1));
        add(new Res_PLCADDRESS("开始校正", "M12.6", 0, 1));

        add(new Res_PLCADDRESS("料仓自动", "-------------", 0, 0));
        add(new Res_PLCADDRESS("料仓1需求值", "VW106", 1, 1));
        add(new Res_PLCADDRESS("料仓1下料", "M11.1", 0, 1));
        add(new Res_PLCADDRESS("料仓2需求值", "VW108", 1, 1));
        add(new Res_PLCADDRESS("料仓2下料", "M11.2", 0, 1));
        add(new Res_PLCADDRESS("料仓3需求值", "VW110", 1, 1));
        add(new Res_PLCADDRESS("料仓3下料", "M11.3", 0, 1));
        add(new Res_PLCADDRESS("料仓4需求值", "VW122", 1, 1));
        add(new Res_PLCADDRESS("料仓4下料", "M13.4", 0, 1));

        add(new Res_PLCADDRESS("料仓手动", "-------------", 0, 0));
        add(new Res_PLCADDRESS("料仓1手动开关", "M13.1", 1, 1));
        add(new Res_PLCADDRESS("料仓2手动开关", "M13.2", 1, 1));
        add(new Res_PLCADDRESS("料仓3手动开关", "M13.3", 1, 1));
        add(new Res_PLCADDRESS("料仓4手动开关", "M10.7", 1, 1));

        //上下限
        add(new Res_PLCADDRESS("位置上下限", "-------------", 0, 0));
        add(new Res_PLCADDRESS("原点位置下限", "VD150", 1, 1));
        add(new Res_PLCADDRESS("原点位置上限", "VD154", 1, 1));
        add(new Res_PLCADDRESS("洗锅位置下限", "VD158", 1, 1));
        add(new Res_PLCADDRESS("洗锅位置上限", "VD162", 1, 1));
        add(new Res_PLCADDRESS("倒菜位置下限", "VD166", 1, 1));
        add(new Res_PLCADDRESS("倒菜位置上限", "VD170", 1, 1));
        add(new Res_PLCADDRESS("抽调料位置下限", "VD174", 1, 1));
        add(new Res_PLCADDRESS("抽调料位置上限", "VD178", 1, 1));
        add(new Res_PLCADDRESS("1#炒制位置下限", "VD182", 1, 1));
        add(new Res_PLCADDRESS("1#炒制位置上限", "VD186", 1, 1));
        add(new Res_PLCADDRESS("2#炒制位置下限", "VD190", 1, 1));
        add(new Res_PLCADDRESS("2#炒制位置上限", "VD194", 1, 1));
        add(new Res_PLCADDRESS("3#炒制位置下限", "VD198", 1, 1));
        add(new Res_PLCADDRESS("3#炒制位置上限", "VD202", 1, 1));
        add(new Res_PLCADDRESS("炒锅工作范围下限", "VD206", 1, 1));
        add(new Res_PLCADDRESS("炒锅工作范围上限", "VD210", 1, 1));

        //自动投料-平移轴
        add(new Res_PLCADDRESS("平移轴控制", "-------------", 0, 0));
        add(new Res_PLCADDRESS("平移-伺服当前值", "VD220", 1, 1));
        add(new Res_PLCADDRESS("平移-点动速度", "VD224", 1, 1));
        add(new Res_PLCADDRESS("平移-回原点速度", "VD228", 1, 1));
        add(new Res_PLCADDRESS("平移-定位运行速度", "VD232", 1, 1));

        add(new Res_PLCADDRESS("平移-点动正转", "M14.0", 0, 1));
        add(new Res_PLCADDRESS("平移-点动反转", "M14.1", 0, 1));
        add(new Res_PLCADDRESS("平移-回原点", "M14.2", 0, 1));
        add(new Res_PLCADDRESS("平移-去1号位", "M14.3", 0, 1));
        add(new Res_PLCADDRESS("平移-去2号位", "M14.4", 0, 1));
        add(new Res_PLCADDRESS("平移-去3号位", "M14.5", 0, 1));
        add(new Res_PLCADDRESS("平移-去4号位", "M14.6", 0, 1));

        add(new Res_PLCADDRESS("平移-1号位置值", "VD236", 1, 1));
        add(new Res_PLCADDRESS("平移-1#位置设定", "M15.0", 0, 1));
        add(new Res_PLCADDRESS("平移-2号位置值", "VD240", 1, 1));
        add(new Res_PLCADDRESS("平移-2#位置设定", "M15.1", 0, 1));
        add(new Res_PLCADDRESS("平移-3号位置值", "VD244", 1, 1));
        add(new Res_PLCADDRESS("平移-3#位置设定", "M15.2", 0, 1));
        add(new Res_PLCADDRESS("平移-4号位置值", "VD248", 1, 1));
        add(new Res_PLCADDRESS("平移-4#位置设定", "M15.3", 0, 1));

        //自动投料-翻转轴
        add(new Res_PLCADDRESS("翻转轴控制", "-------------", 0, 0));
        add(new Res_PLCADDRESS("翻转-伺服当前值", "VD260", 1, 1));
        add(new Res_PLCADDRESS("翻转-点动速度", "VD264", 1, 1));
        add(new Res_PLCADDRESS("翻转-回原点速度", "VD268", 1, 1));
        add(new Res_PLCADDRESS("翻转-定位运行速度", "VD272", 1, 1));

        add(new Res_PLCADDRESS("翻转-点动正转", "M16.0", 0, 1));
        add(new Res_PLCADDRESS("翻转-点动反转", "M16.1", 0, 1));
        add(new Res_PLCADDRESS("翻转-回原点", "M16.2", 0, 1));
        add(new Res_PLCADDRESS("翻转-去1号位", "M16.3", 0, 1));
        add(new Res_PLCADDRESS("翻转-去2号位", "M16.4", 0, 1));
        add(new Res_PLCADDRESS("翻转-去3号位", "M16.5", 0, 1));
        add(new Res_PLCADDRESS("翻转-去4号位", "M16.6", 0, 1));

        add(new Res_PLCADDRESS("翻转-1号位置值", "VD276", 1, 1));
        add(new Res_PLCADDRESS("翻转-1#位置设定", "M17.0", 0, 1));
        add(new Res_PLCADDRESS("翻转-2号位置值", "VD280", 1, 1));
        add(new Res_PLCADDRESS("翻转-2#位置设定", "M17.1", 0, 1));
        add(new Res_PLCADDRESS("翻转-3号位置值", "VD284", 1, 1));
        add(new Res_PLCADDRESS("翻转-3#位置设定", "M17.2", 0, 1));
        add(new Res_PLCADDRESS("翻转-4号位置值", "VD288", 1, 1));
        add(new Res_PLCADDRESS("翻转-4#位置设定", "M17.3", 0, 1));
        add(new Res_PLCADDRESS("倒菜启动", "M17.4", 0, 1));
        add(new Res_PLCADDRESS("磁铁吸合", "M17.5", 0, 1));

        //反馈信号
        add(new Res_PLCADDRESS("反馈信号", "-------------", 0, 0));
        add(new Res_PLCADDRESS("初始化完成", "M40.0", 1, 0));
        add(new Res_PLCADDRESS("设备急停", "M40.1", 1, 0));
        add(new Res_PLCADDRESS("原点位反馈", "M40.2", 1, 0));
        add(new Res_PLCADDRESS("抽料位反馈", "M40.3", 1, 0));
        add(new Res_PLCADDRESS("炒菜位1反馈", "M40.4", 1, 0));
        add(new Res_PLCADDRESS("炒菜位2反馈", "M40.5", 1, 0));
        add(new Res_PLCADDRESS("炒菜位3反馈", "M40.6", 1, 0));
        add(new Res_PLCADDRESS("倒菜位反馈", "M40.7", 1, 0));
        add(new Res_PLCADDRESS("投料位反馈", "M41.0", 1, 0));
        add(new Res_PLCADDRESS("清洗位反馈", "M41.1", 1, 0));
        add(new Res_PLCADDRESS("料仓1下料完成", "M41.2", 1, 0));
        add(new Res_PLCADDRESS("料仓2下料完成", "M41.3", 1, 0));
        add(new Res_PLCADDRESS("料仓3下料完成", "M41.4", 1, 0));
        add(new Res_PLCADDRESS("料仓4下料完成", "M42.0", 1, 0));
        add(new Res_PLCADDRESS("炒锅清洗反馈", "M41.5", 1, 0));
        add(new Res_PLCADDRESS("出餐启动反馈", "M41.6", 1, 0));
        add(new Res_PLCADDRESS("炒锅倒菜减速位", "M41.7", 1, 0));
        add(new Res_PLCADDRESS("平移轴在1号位", "M43.0", 1, 0));
        add(new Res_PLCADDRESS("平移轴在2号位", "M43.1", 1, 0));
        add(new Res_PLCADDRESS("平移轴在3号位", "M43.2", 1, 0));
        add(new Res_PLCADDRESS("平移轴在4号位", "M43.3", 1, 0));
        add(new Res_PLCADDRESS("翻转轴在1号位", "M44.0", 1, 0));
        add(new Res_PLCADDRESS("翻转轴在2号位", "M44.1", 1, 0));
        add(new Res_PLCADDRESS("翻转轴在3号位", "M44.2", 1, 0));
        add(new Res_PLCADDRESS("翻转轴在4号位", "M44.3", 1, 0));
        add(new Res_PLCADDRESS("倒菜完成", "M44.4", 1, 0));
        add(new Res_PLCADDRESS("心跳位", "VW1000", 0, 1));

        add(new Res_PLCADDRESS("温度模拟输入量", "-------------", 0, 0));
        add(new Res_PLCADDRESS("温度模拟量上限", "VW1050", 1, 1));
        add(new Res_PLCADDRESS("温度模拟量下限", "VW1052", 1, 1));
        add(new Res_PLCADDRESS("温度模拟量", "VW1054", 1, 1));
        add(new Res_PLCADDRESS("温度量程上限", "VD1060", 1, 1));
        add(new Res_PLCADDRESS("温度量程下限", "VD1056", 1, 1));

        add(new Res_PLCADDRESS("电流模拟输入量", "-------------", 0, 0));
        add(new Res_PLCADDRESS("电流模拟量上限", "VW1070", 1, 1));
        add(new Res_PLCADDRESS("电流模拟量下限", "VW1072", 1, 1));
        add(new Res_PLCADDRESS("电流模拟量", "VW1074", 1, 1));
        add(new Res_PLCADDRESS("电流量程上限", "VD1080", 1, 1));
        add(new Res_PLCADDRESS("电流量程下限", "VD1076", 1, 1));
        add(new Res_PLCADDRESS("电流报警设置", "VW1092", 1, 1));
        add(new Res_PLCADDRESS("异常加热故障信息", "M42.1", 1, 1));

        //检测信号
        add(new Res_PLCADDRESS("监测信号", "-------------", 0, 0));
        add(new Res_PLCADDRESS("当前锅底温度", "VD300", 1, 0));
        add(new Res_PLCADDRESS("炒锅搅拌转速", "VD304", 1, 0));
        add(new Res_PLCADDRESS("当前加热档位", "VD308", 1, 0));
        add(new Res_PLCADDRESS("炒锅当前电压", "VD312", 1, 0));
        add(new Res_PLCADDRESS("炒锅当前电流", "VD316", 1, 0));
        add(new Res_PLCADDRESS("炒锅当前功率", "VD320", 1, 0));
        add(new Res_PLCADDRESS("搅拌频率", "VW324", 1, 0));
        add(new Res_PLCADDRESS("搅拌电机电流", "VW326", 1, 0));
        add(new Res_PLCADDRESS("搅拌电机电压", "VW328", 1, 0));
        add(new Res_PLCADDRESS("搅拌变频器温度", "VW330", 1, 0));
        add(new Res_PLCADDRESS("翻转频率", "VW332", 1, 0));
        add(new Res_PLCADDRESS("翻转电机电流", "VW334", 1, 0));
        add(new Res_PLCADDRESS("翻转电机电压", "VW336", 1, 0));
        add(new Res_PLCADDRESS("翻转变频器温度", "VW338", 1, 0));
        add(new Res_PLCADDRESS("编码器当前位值", "VD340", 1, 0));

        //状态上报
        add(new Res_PLCADDRESS("状态上报", "-------------", 0, 0));
        add(new Res_PLCADDRESS("搅拌电机", "VW350", 1, 0));
        add(new Res_PLCADDRESS("翻转电机", "VW352", 1, 0));
        add(new Res_PLCADDRESS("炒锅", "VW354", 1, 0));
    }};
    /**
     * 大炒自动投料工序模型
     */
    public List<ProcessT> Process_大炒自动投料 = new ArrayList<ProcessT>() {{
        add(new ProcessT("搅拌", Arrays.asList("搅拌速度", "延迟(秒)")));
        add(new ProcessT("位置", Arrays.asList("转动速度", "位置动作", "延迟(秒)")));
        add(new ProcessT("加热", Arrays.asList("加热功率", "延迟(秒)")));
        add(new ProcessT("主料", Arrays.asList("主料名称", "主料位置", "主料重量", "投料动作","炒制位置","烹饪(秒)")));
        add(new ProcessT("液体料", new ArrayList<>()));
        add(new ProcessT("并行出料", Arrays.asList("出料克数","等待(秒)")));
        add(new ProcessT("延迟", Arrays.asList("延迟(秒)")));
        add(new ProcessT("出菜", Arrays.asList("等待(秒)")));
        add(new ProcessT("清洗", Arrays.asList("等待(秒)")));

    }};
    /**
     * 小炒基础PLC模型
     */
    public List<Res_PLCADDRESS> PlcAddress_小炒 = new ArrayList<Res_PLCADDRESS>() {{

        //硬件设备 初始化
        add(new Res_PLCADDRESS("硬件设备", "-------------", 0, 0));
        add(new Res_PLCADDRESS("初始化", "M10.0", 1, 1));
        add(new Res_PLCADDRESS("停止", "M10.1", 1, 1));
        add(new Res_PLCADDRESS("复位", "M10.2", 0, 1));

        //搅拌模型
        add(new Res_PLCADDRESS("模型控制", "-------------", 0, 0));
        add(new Res_PLCADDRESS("搅拌", "M10.3", 1, 1));
        add(new Res_PLCADDRESS("搅拌速度", "VW102", 1, 1));

        //翻转正转模型
        add(new Res_PLCADDRESS("翻转正转", "M10.4", 0, 1));
        add(new Res_PLCADDRESS("翻转反转", "M10.5", 0, 1));
        add(new Res_PLCADDRESS("转动速度", "VW104", 1, 1));


        //加热模型
        add(new Res_PLCADDRESS("加热", "M10.6", 0, 1));
        add(new Res_PLCADDRESS("加热功率", "VW100", 1, 1));
        add(new Res_PLCADDRESS("温控开关", "M17.6", 1, 1));
        add(new Res_PLCADDRESS("暂停开关", "M17.7", 1, 1));

        //主料
        add(new Res_PLCADDRESS("主料", "M17.4", 0, 1));

        //抽水放水
        add(new Res_PLCADDRESS("炒锅抽水", "M10.7", 0, 1));
        add(new Res_PLCADDRESS("炒锅放水", "M11.0", 0, 1));


        //出菜模型
        add(new Res_PLCADDRESS("出菜", "M11.5", 0, 1));


        //位置动作
        add(new Res_PLCADDRESS("原点位", "M11.4", 0, 1));
        add(new Res_PLCADDRESS("倒菜位", "M12.7", 0, 1));
        add(new Res_PLCADDRESS("抽料位", "M11.7", 0, 1));
        add(new Res_PLCADDRESS("清洗位", "M13.0", 0, 1));
        add(new Res_PLCADDRESS("炒菜位1", "M12.0", 0, 1));
        add(new Res_PLCADDRESS("炒菜位2", "M12.1", 0, 1));
        add(new Res_PLCADDRESS("炒菜位3", "M12.2", 0, 1));

        add(new Res_PLCADDRESS("出餐启动", "M11.5", 0, 1));
        add(new Res_PLCADDRESS("炒锅清洗", "M11.6", 0, 1));

        //液体料模型
        add(new Res_PLCADDRESS("料仓校准", "-------------", 0, 0));
        add(new Res_PLCADDRESS("校准时间", "VW112", 1, 1));
        add(new Res_PLCADDRESS("料仓1校准开关", "M12.3", 0, 1));
        add(new Res_PLCADDRESS("料仓1校准值", "VW114", 1, 1));
        add(new Res_PLCADDRESS("料仓2校准开关", "M12.4", 0, 1));
        add(new Res_PLCADDRESS("料仓2校准值", "VW116", 1, 1));
        add(new Res_PLCADDRESS("料仓3校准开关", "M12.5", 0, 1));
        add(new Res_PLCADDRESS("料仓3校准值", "VW118", 1, 1));
        add(new Res_PLCADDRESS("料仓4校准开关", "M13.5", 0, 1));
        add(new Res_PLCADDRESS("料仓4校准值", "VW120", 1, 1));
        add(new Res_PLCADDRESS("开始校正", "M12.6", 0, 1));

        add(new Res_PLCADDRESS("料仓自动", "-------------", 0, 0));
        add(new Res_PLCADDRESS("料仓1需求值", "VW106", 1, 1));
        add(new Res_PLCADDRESS("料仓1下料", "M11.1", 0, 1));
        add(new Res_PLCADDRESS("料仓2需求值", "VW108", 1, 1));
        add(new Res_PLCADDRESS("料仓2下料", "M11.2", 0, 1));
        add(new Res_PLCADDRESS("料仓3需求值", "VW110", 1, 1));
        add(new Res_PLCADDRESS("料仓3下料", "M11.3", 0, 1));
        add(new Res_PLCADDRESS("料仓4需求值", "VW122", 1, 1));
        add(new Res_PLCADDRESS("料仓4下料", "M13.4", 0, 1));

        add(new Res_PLCADDRESS("料仓手动", "-------------", 0, 0));
        add(new Res_PLCADDRESS("料仓1手动开关", "M13.1", 1, 1));
        add(new Res_PLCADDRESS("料仓2手动开关", "M13.2", 1, 1));
        add(new Res_PLCADDRESS("料仓3手动开关", "M13.3", 1, 1));
        add(new Res_PLCADDRESS("料仓4手动开关", "M10.7", 1, 1));

        //上下限
        add(new Res_PLCADDRESS("位置上下限", "-------------", 0, 0));
        add(new Res_PLCADDRESS("原点位置下限", "VD150", 1, 1));
        add(new Res_PLCADDRESS("原点位置上限", "VD154", 1, 1));
        add(new Res_PLCADDRESS("洗锅位置下限", "VD158", 1, 1));
        add(new Res_PLCADDRESS("洗锅位置上限", "VD162", 1, 1));
        add(new Res_PLCADDRESS("倒菜位置下限", "VD166", 1, 1));
        add(new Res_PLCADDRESS("倒菜位置上限", "VD170", 1, 1));
        add(new Res_PLCADDRESS("抽调料位置下限", "VD174", 1, 1));
        add(new Res_PLCADDRESS("抽调料位置上限", "VD178", 1, 1));
        add(new Res_PLCADDRESS("1#炒制位置下限", "VD182", 1, 1));
        add(new Res_PLCADDRESS("1#炒制位置上限", "VD186", 1, 1));
        add(new Res_PLCADDRESS("2#炒制位置下限", "VD190", 1, 1));
        add(new Res_PLCADDRESS("2#炒制位置上限", "VD194", 1, 1));
        add(new Res_PLCADDRESS("3#炒制位置下限", "VD198", 1, 1));
        add(new Res_PLCADDRESS("3#炒制位置上限", "VD202", 1, 1));
        add(new Res_PLCADDRESS("炒锅工作范围下限", "VD206", 1, 1));
        add(new Res_PLCADDRESS("炒锅工作范围上限", "VD210", 1, 1));

        //自动投料-平移轴
        add(new Res_PLCADDRESS("平移轴控制", "-------------", 0, 0));
        add(new Res_PLCADDRESS("平移-伺服当前值", "VD220", 1, 1));
        add(new Res_PLCADDRESS("平移-点动速度", "VD224", 1, 1));
        add(new Res_PLCADDRESS("平移-回原点速度", "VD228", 1, 1));
        add(new Res_PLCADDRESS("平移-定位运行速度", "VD232", 1, 1));

        add(new Res_PLCADDRESS("平移-点动正转", "M14.0", 0, 1));
        add(new Res_PLCADDRESS("平移-点动反转", "M14.1", 0, 1));
        add(new Res_PLCADDRESS("平移-回原点", "M14.2", 0, 1));
        add(new Res_PLCADDRESS("平移-去1号位", "M14.3", 0, 1));
        add(new Res_PLCADDRESS("平移-去2号位", "M14.4", 0, 1));
        add(new Res_PLCADDRESS("平移-去3号位", "M14.5", 0, 1));
        add(new Res_PLCADDRESS("平移-去4号位", "M14.6", 0, 1));

        add(new Res_PLCADDRESS("平移-1号位置值", "VD236", 1, 1));
        add(new Res_PLCADDRESS("平移-1#位置设定", "M15.0", 0, 1));
        add(new Res_PLCADDRESS("平移-2号位置值", "VD240", 1, 1));
        add(new Res_PLCADDRESS("平移-2#位置设定", "M15.1", 0, 1));
        add(new Res_PLCADDRESS("平移-3号位置值", "VD244", 1, 1));
        add(new Res_PLCADDRESS("平移-3#位置设定", "M15.2", 0, 1));
        add(new Res_PLCADDRESS("平移-4号位置值", "VD248", 1, 1));
        add(new Res_PLCADDRESS("平移-4#位置设定", "M15.3", 0, 1));

        //自动投料-翻转轴
        add(new Res_PLCADDRESS("翻转轴控制", "-------------", 0, 0));
        add(new Res_PLCADDRESS("翻转-伺服当前值", "VD260", 1, 1));
        add(new Res_PLCADDRESS("翻转-点动速度", "VD264", 1, 1));
        add(new Res_PLCADDRESS("翻转-回原点速度", "VD268", 1, 1));
        add(new Res_PLCADDRESS("翻转-定位运行速度", "VD272", 1, 1));

        add(new Res_PLCADDRESS("翻转-点动正转", "M16.0", 0, 1));
        add(new Res_PLCADDRESS("翻转-点动反转", "M16.1", 0, 1));
        add(new Res_PLCADDRESS("翻转-回原点", "M16.2", 0, 1));
        add(new Res_PLCADDRESS("翻转-去1号位", "M16.3", 0, 1));
        add(new Res_PLCADDRESS("翻转-去2号位", "M16.4", 0, 1));
        add(new Res_PLCADDRESS("翻转-去3号位", "M16.5", 0, 1));
        add(new Res_PLCADDRESS("翻转-去4号位", "M16.6", 0, 1));

        add(new Res_PLCADDRESS("翻转-1号位置值", "VD276", 1, 1));
        add(new Res_PLCADDRESS("翻转-1#位置设定", "M17.0", 0, 1));
        add(new Res_PLCADDRESS("翻转-2号位置值", "VD280", 1, 1));
        add(new Res_PLCADDRESS("翻转-2#位置设定", "M17.1", 0, 1));
        add(new Res_PLCADDRESS("翻转-3号位置值", "VD284", 1, 1));
        add(new Res_PLCADDRESS("翻转-3#位置设定", "M17.2", 0, 1));
        add(new Res_PLCADDRESS("翻转-4号位置值", "VD288", 1, 1));
        add(new Res_PLCADDRESS("翻转-4#位置设定", "M17.3", 0, 1));
        add(new Res_PLCADDRESS("倒菜启动", "M17.4", 0, 1));
        add(new Res_PLCADDRESS("磁铁吸合", "M17.5", 0, 1));

        add(new Res_PLCADDRESS("温度模拟输入量", "-------------", 0, 0));
        add(new Res_PLCADDRESS("温度模拟量上限", "VW1050", 1, 1));
        add(new Res_PLCADDRESS("温度模拟量下限", "VW1052", 1, 1));
        add(new Res_PLCADDRESS("温度模拟量", "VW1054", 1, 1));
        add(new Res_PLCADDRESS("温度量程上限", "VD1060", 1, 1));
        add(new Res_PLCADDRESS("温度量程下限", "VD1056", 1, 1));

        add(new Res_PLCADDRESS("电流模拟输入量", "-------------", 0, 0));
        add(new Res_PLCADDRESS("电流模拟量上限", "VW1070", 1, 1));
        add(new Res_PLCADDRESS("电流模拟量下限", "VW1072", 1, 1));
        add(new Res_PLCADDRESS("电流模拟量", "VW1074", 1, 1));
        add(new Res_PLCADDRESS("电流量程上限", "VD1080", 1, 1));
        add(new Res_PLCADDRESS("电流量程下限", "VD1076", 1, 1));
        add(new Res_PLCADDRESS("电流报警设置", "VW1092", 1, 1));
        add(new Res_PLCADDRESS("异常加热故障信息", "M42.1", 1, 1));

        //反馈信号
        add(new Res_PLCADDRESS("反馈信号", "-------------", 0, 0));
        add(new Res_PLCADDRESS("初始化完成", "M40.0", 1, 0));
        add(new Res_PLCADDRESS("设备急停", "M40.1", 1, 0));
        add(new Res_PLCADDRESS("原点位反馈", "M40.2", 1, 0));
        add(new Res_PLCADDRESS("抽料位反馈", "M40.3", 1, 0));
        add(new Res_PLCADDRESS("炒菜位1反馈", "M40.4", 1, 0));
        add(new Res_PLCADDRESS("炒菜位2反馈", "M40.5", 1, 0));
        add(new Res_PLCADDRESS("炒菜位3反馈", "M40.6", 1, 0));
        add(new Res_PLCADDRESS("倒菜位反馈", "M40.7", 1, 0));
        add(new Res_PLCADDRESS("投料位反馈", "M41.0", 1, 0));
        add(new Res_PLCADDRESS("清洗位反馈", "M41.1", 1, 0));
        add(new Res_PLCADDRESS("料仓1下料完成", "M41.2", 1, 0));
        add(new Res_PLCADDRESS("料仓2下料完成", "M41.3", 1, 0));
        add(new Res_PLCADDRESS("料仓3下料完成", "M41.4", 1, 0));
        add(new Res_PLCADDRESS("料仓4下料完成", "M42.0", 1, 0));
        add(new Res_PLCADDRESS("炒锅清洗反馈", "M41.5", 1, 0));
        add(new Res_PLCADDRESS("出餐启动反馈", "M41.6", 1, 0));
        add(new Res_PLCADDRESS("炒锅倒菜减速位", "M41.7", 1, 0));
        add(new Res_PLCADDRESS("平移轴在1号位", "M43.0", 1, 0));
        add(new Res_PLCADDRESS("平移轴在2号位", "M43.1", 1, 0));
        add(new Res_PLCADDRESS("平移轴在3号位", "M43.2", 1, 0));
        add(new Res_PLCADDRESS("平移轴在4号位", "M43.3", 1, 0));
        add(new Res_PLCADDRESS("翻转轴在1号位", "M44.0", 1, 0));
        add(new Res_PLCADDRESS("翻转轴在2号位", "M44.1", 1, 0));
        add(new Res_PLCADDRESS("翻转轴在3号位", "M44.2", 1, 0));
        add(new Res_PLCADDRESS("翻转轴在4号位", "M44.3", 1, 0));
        add(new Res_PLCADDRESS("倒菜完成", "M44.4", 1, 0));
        add(new Res_PLCADDRESS("心跳位", "VW1000", 0, 1));

        //检测信号
        add(new Res_PLCADDRESS("监测信号", "-------------", 0, 0));
        add(new Res_PLCADDRESS("当前锅底温度", "VD300", 1, 0));
        add(new Res_PLCADDRESS("炒锅搅拌转速", "VD304", 1, 0));
        add(new Res_PLCADDRESS("当前加热档位", "VD308", 1, 0));
        add(new Res_PLCADDRESS("炒锅当前电压", "VD312", 1, 0));
        add(new Res_PLCADDRESS("炒锅当前电流", "VD316", 1, 0));
        add(new Res_PLCADDRESS("炒锅当前功率", "VD320", 1, 0));
        add(new Res_PLCADDRESS("搅拌频率", "VW324", 1, 0));
        add(new Res_PLCADDRESS("搅拌电机电流", "VW326", 1, 0));
        add(new Res_PLCADDRESS("搅拌电机电压", "VW328", 1, 0));
        add(new Res_PLCADDRESS("搅拌变频器温度", "VW330", 1, 0));
        add(new Res_PLCADDRESS("翻转频率", "VW332", 1, 0));
        add(new Res_PLCADDRESS("翻转电机电流", "VW334", 1, 0));
        add(new Res_PLCADDRESS("翻转电机电压", "VW336", 1, 0));
        add(new Res_PLCADDRESS("翻转变频器温度", "VW338", 1, 0));
        add(new Res_PLCADDRESS("编码器当前位值", "VD340", 1, 0));

        //状态上报
        add(new Res_PLCADDRESS("状态上报", "-------------", 0, 0));
        add(new Res_PLCADDRESS("搅拌电机", "VW350", 1, 0));
        add(new Res_PLCADDRESS("翻转电机", "VW352", 1, 0));
        add(new Res_PLCADDRESS("炒锅", "VW354", 1, 0));

    }};
    /**
     * 小炒工序模型
     */
    public List<ProcessT> Process_小炒 = new ArrayList<ProcessT>() {{
        add(new ProcessT("搅拌", Arrays.asList("搅拌速度", "延迟(秒)")));
        add(new ProcessT("位置", Arrays.asList("转动速度", "位置动作", "延迟(秒)")));
        add(new ProcessT("加热", Arrays.asList("加热功率", "延迟(秒)")));
        add(new ProcessT("主料", Arrays.asList("主料名称", "主料位置", "主料重量", "投料动作","炒制位置","烹饪(秒)")));
        add(new ProcessT("液体料", new ArrayList<>()));
        add(new ProcessT("并行出料", Arrays.asList("出料克数","等待(秒)")));
        add(new ProcessT("延迟", Arrays.asList("延迟(秒)")));
        add(new ProcessT("出菜", Arrays.asList("等待(秒)")));
        add(new ProcessT("清洗", Arrays.asList("等待(秒)")));

    }};

    /**
     * 一拖四基础PLC模型
     */
    public List<Res_PLCADDRESS> PlcAddress_一拖四 = new ArrayList<Res_PLCADDRESS>() {{

        //硬件设备 初始化
        add(new Res_PLCADDRESS("硬件设备", "-------------", 0, 0));
        add(new Res_PLCADDRESS("初始化", "M10.0", 1, 1));
        add(new Res_PLCADDRESS("停止", "M10.1", 1, 1));
        add(new Res_PLCADDRESS("复位", "M10.2", 0, 1));

        //搅拌模型
        add(new Res_PLCADDRESS("模型控制", "-------------", 0, 0));
        add(new Res_PLCADDRESS("搅拌", "M10.3", 1, 1));
        add(new Res_PLCADDRESS("搅拌速度", "VW102", 1, 1));

        //翻转正转模型
        add(new Res_PLCADDRESS("翻转正转", "M10.4", 0, 1));
        add(new Res_PLCADDRESS("翻转反转", "M10.5", 0, 1));
        add(new Res_PLCADDRESS("转动速度", "VW104", 1, 1));


        //加热模型
        add(new Res_PLCADDRESS("加热", "M10.6", 0, 1));
        add(new Res_PLCADDRESS("加热功率", "VW100", 1, 1));
        add(new Res_PLCADDRESS("温控开关", "M17.6", 1, 1));
        add(new Res_PLCADDRESS("暂停开关", "M17.7", 1, 1));

        //主料
        add(new Res_PLCADDRESS("主料1号位", "M17.4", 0, 1));
        add(new Res_PLCADDRESS("主料2号位", "M19.4", 0, 1));

        //抽水放水
        add(new Res_PLCADDRESS("炒锅抽水", "M10.7", 0, 1));
        add(new Res_PLCADDRESS("炒锅放水", "M11.0", 0, 1));


        //出菜模型
        add(new Res_PLCADDRESS("出菜", "M11.5", 0, 1));


        //位置动作
        add(new Res_PLCADDRESS("原点位", "M11.4", 0, 1));
        add(new Res_PLCADDRESS("倒菜位", "M12.7", 0, 1));
        add(new Res_PLCADDRESS("抽料位", "M11.7", 0, 1));
        add(new Res_PLCADDRESS("清洗位", "M13.0", 0, 1));
        add(new Res_PLCADDRESS("炒菜位1", "M12.0", 0, 1));
        add(new Res_PLCADDRESS("炒菜位2", "M12.1", 0, 1));
        add(new Res_PLCADDRESS("炒菜位3", "M12.2", 0, 1));

        add(new Res_PLCADDRESS("出餐启动", "M11.5", 0, 1));
        add(new Res_PLCADDRESS("炒锅清洗", "M11.6", 0, 1));

        //液体料模型
        add(new Res_PLCADDRESS("料仓校准", "-------------", 0, 0));
        add(new Res_PLCADDRESS("校准时间", "VW112", 1, 1));
        add(new Res_PLCADDRESS("料仓1校准开关", "M12.3", 0, 1));
        add(new Res_PLCADDRESS("料仓1校准值", "VW114", 1, 1));
        add(new Res_PLCADDRESS("料仓2校准开关", "M12.4", 0, 1));
        add(new Res_PLCADDRESS("料仓2校准值", "VW116", 1, 1));
        add(new Res_PLCADDRESS("料仓3校准开关", "M12.5", 0, 1));
        add(new Res_PLCADDRESS("料仓3校准值", "VW118", 1, 1));
        add(new Res_PLCADDRESS("料仓4校准开关", "M13.5", 0, 1));
        add(new Res_PLCADDRESS("料仓4校准值", "VW120", 1, 1));
        add(new Res_PLCADDRESS("开始校正", "M12.6", 0, 1));

        add(new Res_PLCADDRESS("料仓自动", "-------------", 0, 0));
        add(new Res_PLCADDRESS("料仓1需求值", "VW106", 1, 1));
        add(new Res_PLCADDRESS("料仓1下料", "M11.1", 0, 1));
        add(new Res_PLCADDRESS("料仓2需求值", "VW108", 1, 1));
        add(new Res_PLCADDRESS("料仓2下料", "M11.2", 0, 1));
        add(new Res_PLCADDRESS("料仓3需求值", "VW110", 1, 1));
        add(new Res_PLCADDRESS("料仓3下料", "M11.3", 0, 1));
        add(new Res_PLCADDRESS("料仓4需求值", "VW122", 1, 1));
        add(new Res_PLCADDRESS("料仓4下料", "M13.4", 0, 1));

        add(new Res_PLCADDRESS("料仓手动", "-------------", 0, 0));
        add(new Res_PLCADDRESS("料仓1手动开关", "M13.1", 1, 1));
        add(new Res_PLCADDRESS("料仓2手动开关", "M13.2", 1, 1));
        add(new Res_PLCADDRESS("料仓3手动开关", "M13.3", 1, 1));
        add(new Res_PLCADDRESS("料仓4手动开关", "M10.7", 1, 1));

        //上下限
        add(new Res_PLCADDRESS("位置上下限", "-------------", 0, 0));
        add(new Res_PLCADDRESS("原点位置下限", "VD150", 1, 1));
        add(new Res_PLCADDRESS("原点位置上限", "VD154", 1, 1));
        add(new Res_PLCADDRESS("洗锅位置下限", "VD158", 1, 1));
        add(new Res_PLCADDRESS("洗锅位置上限", "VD162", 1, 1));
        add(new Res_PLCADDRESS("倒菜位置下限", "VD166", 1, 1));
        add(new Res_PLCADDRESS("倒菜位置上限", "VD170", 1, 1));
        add(new Res_PLCADDRESS("抽调料位置下限", "VD174", 1, 1));
        add(new Res_PLCADDRESS("抽调料位置上限", "VD178", 1, 1));
        add(new Res_PLCADDRESS("1#炒制位置下限", "VD182", 1, 1));
        add(new Res_PLCADDRESS("1#炒制位置上限", "VD186", 1, 1));
        add(new Res_PLCADDRESS("2#炒制位置下限", "VD190", 1, 1));
        add(new Res_PLCADDRESS("2#炒制位置上限", "VD194", 1, 1));
        add(new Res_PLCADDRESS("3#炒制位置下限", "VD198", 1, 1));
        add(new Res_PLCADDRESS("3#炒制位置上限", "VD202", 1, 1));
        add(new Res_PLCADDRESS("炒锅工作范围下限", "VD206", 1, 1));
        add(new Res_PLCADDRESS("炒锅工作范围上限", "VD210", 1, 1));

        //自动投料-平移轴
//        add(new Res_PLCADDRESS("平移轴控制", "-------------", 0, 0));
//        add(new Res_PLCADDRESS("平移-伺服当前值", "VD220", 1, 1));
//        add(new Res_PLCADDRESS("平移-点动速度", "VD224", 1, 1));
//        add(new Res_PLCADDRESS("平移-回原点速度", "VD228", 1, 1));
//        add(new Res_PLCADDRESS("平移-定位运行速度", "VD232", 1, 1));
//
//        add(new Res_PLCADDRESS("平移-点动正转", "M14.0", 0, 1));
//        add(new Res_PLCADDRESS("平移-点动反转", "M14.1", 0, 1));
//        add(new Res_PLCADDRESS("平移-回原点", "M14.2", 0, 1));
//        add(new Res_PLCADDRESS("平移-去1号位", "M14.3", 0, 1));
//        add(new Res_PLCADDRESS("平移-去2号位", "M14.4", 0, 1));
//        add(new Res_PLCADDRESS("平移-去3号位", "M14.5", 0, 1));
//        add(new Res_PLCADDRESS("平移-去4号位", "M14.6", 0, 1));
//
//        add(new Res_PLCADDRESS("平移-1号位置值", "VD236", 1, 1));
//        add(new Res_PLCADDRESS("平移-1#位置设定", "M15.0", 0, 1));
//        add(new Res_PLCADDRESS("平移-2号位置值", "VD240", 1, 1));
//        add(new Res_PLCADDRESS("平移-2#位置设定", "M15.1", 0, 1));
//        add(new Res_PLCADDRESS("平移-3号位置值", "VD244", 1, 1));
//        add(new Res_PLCADDRESS("平移-3#位置设定", "M15.2", 0, 1));
//        add(new Res_PLCADDRESS("平移-4号位置值", "VD248", 1, 1));
//        add(new Res_PLCADDRESS("平移-4#位置设定", "M15.3", 0, 1));

        //自动投料-翻转轴
        add(new Res_PLCADDRESS("翻转轴控制1", "-------------", 0, 0));
        add(new Res_PLCADDRESS("翻转1-伺服当前值", "VD260", 1, 1));
        add(new Res_PLCADDRESS("翻转1-点动速度", "VD264", 1, 1));
        add(new Res_PLCADDRESS("翻转1-回原点速度", "VD268", 1, 1));
        add(new Res_PLCADDRESS("翻转1-定位运行速度", "VD272", 1, 1));

        add(new Res_PLCADDRESS("翻转1-点动正转", "M16.0", 0, 1));
        add(new Res_PLCADDRESS("翻转1-点动反转", "M16.1", 0, 1));
        add(new Res_PLCADDRESS("翻转1-回原点", "M16.2", 0, 1));
        add(new Res_PLCADDRESS("翻转1-去1号位", "M16.3", 0, 1));
        add(new Res_PLCADDRESS("翻转1-去2号位", "M16.4", 0, 1));
        add(new Res_PLCADDRESS("翻转1-去3号位", "M16.5", 0, 1));
        add(new Res_PLCADDRESS("翻转1-去4号位", "M16.6", 0, 1));

        add(new Res_PLCADDRESS("翻转1-1号位置值", "VD276", 1, 1));
        add(new Res_PLCADDRESS("翻转1-1#位置设定", "M17.0", 0, 1));
        add(new Res_PLCADDRESS("翻转1-2号位置值", "VD280", 1, 1));
        add(new Res_PLCADDRESS("翻转1-2#位置设定", "M17.1", 0, 1));
        add(new Res_PLCADDRESS("翻转1-3号位置值", "VD284", 1, 1));
        add(new Res_PLCADDRESS("翻转1-3#位置设定", "M17.2", 0, 1));
        add(new Res_PLCADDRESS("翻转1-4号位置值", "VD288", 1, 1));
        add(new Res_PLCADDRESS("翻转1-4#位置设定", "M17.3", 0, 1));
        add(new Res_PLCADDRESS("倒菜启动1", "M17.4", 0, 1));

        add(new Res_PLCADDRESS("翻转轴控制2", "-------------", 0, 0));
        add(new Res_PLCADDRESS("翻转2-伺服当前值", "VD2000", 1, 1));
        add(new Res_PLCADDRESS("翻转2-点动速度", "VD2004", 1, 1));
        add(new Res_PLCADDRESS("翻转2-回原点速度", "VD2008", 1, 1));
        add(new Res_PLCADDRESS("翻转2-定位运行速度", "VD2012", 1, 1));

        add(new Res_PLCADDRESS("翻转2-点动正转", "M18.0", 0, 1));
        add(new Res_PLCADDRESS("翻转2-点动反转", "M18.1", 0, 1));
        add(new Res_PLCADDRESS("翻转2-回原点",  "M18.2", 0, 1));
        add(new Res_PLCADDRESS("翻转2-去1号位", "M18.3", 0, 1));
        add(new Res_PLCADDRESS("翻转2-去2号位", "M18.4", 0, 1));
        add(new Res_PLCADDRESS("翻转2-去3号位", "M18.5", 0, 1));
        add(new Res_PLCADDRESS("翻转2-去4号位", "M18.6", 0, 1));

        add(new Res_PLCADDRESS("翻转2-1号位置值", "VD2016", 1, 1));
        add(new Res_PLCADDRESS("翻转2-1#位置设定", "M19.0", 0, 1));
        add(new Res_PLCADDRESS("翻转2-2号位置值", "VD2020", 1, 1));
        add(new Res_PLCADDRESS("翻转2-2#位置设定", "M19.1", 0, 1));
        add(new Res_PLCADDRESS("翻转2-3号位置值", "VD2024", 1, 1));
        add(new Res_PLCADDRESS("翻转2-3#位置设定", "M19.2", 0, 1));
        add(new Res_PLCADDRESS("翻转2-4号位置值", "VD2028", 1, 1));
        add(new Res_PLCADDRESS("翻转2-4#位置设定", "M19.3", 0, 1));
        add(new Res_PLCADDRESS("倒菜启动2", "M19.4", 0, 1));


        add(new Res_PLCADDRESS("温度模拟输入量", "-------------", 0, 0));
        add(new Res_PLCADDRESS("温度模拟量上限", "VW1050", 1, 1));
        add(new Res_PLCADDRESS("温度模拟量下限", "VW1052", 1, 1));
        add(new Res_PLCADDRESS("温度模拟量", "VW1054", 1, 1));
        add(new Res_PLCADDRESS("温度量程上限", "VD1060", 1, 1));
        add(new Res_PLCADDRESS("温度量程下限", "VD1056", 1, 1));

        add(new Res_PLCADDRESS("电流模拟输入量", "-------------", 0, 0));
        add(new Res_PLCADDRESS("电流模拟量上限", "VW1070", 1, 1));
        add(new Res_PLCADDRESS("电流模拟量下限", "VW1072", 1, 1));
        add(new Res_PLCADDRESS("电流模拟量", "VW1074", 1, 1));
        add(new Res_PLCADDRESS("电流量程上限", "VD1080", 1, 1));
        add(new Res_PLCADDRESS("电流量程下限", "VD1076", 1, 1));
        add(new Res_PLCADDRESS("电流报警设置", "VW1092", 1, 1));
        add(new Res_PLCADDRESS("异常加热故障信息", "M42.1", 1, 1));

        //反馈信号
        add(new Res_PLCADDRESS("反馈信号", "-------------", 0, 0));
        add(new Res_PLCADDRESS("初始化完成", "M40.0", 1, 0));
        add(new Res_PLCADDRESS("设备急停", "M40.1", 1, 0));
        add(new Res_PLCADDRESS("原点位反馈", "M40.2", 1, 0));
        add(new Res_PLCADDRESS("抽料位反馈", "M40.3", 1, 0));
        add(new Res_PLCADDRESS("炒菜位1反馈", "M40.4", 1, 0));
        add(new Res_PLCADDRESS("炒菜位2反馈", "M40.5", 1, 0));
        add(new Res_PLCADDRESS("炒菜位3反馈", "M40.6", 1, 0));
        add(new Res_PLCADDRESS("倒菜位反馈", "M40.7", 1, 0));
        add(new Res_PLCADDRESS("投料位反馈", "M41.0", 1, 0));
        add(new Res_PLCADDRESS("清洗位反馈", "M41.1", 1, 0));
        add(new Res_PLCADDRESS("料仓1下料完成", "M41.2", 1, 0));
        add(new Res_PLCADDRESS("料仓2下料完成", "M41.3", 1, 0));
        add(new Res_PLCADDRESS("料仓3下料完成", "M41.4", 1, 0));
        add(new Res_PLCADDRESS("料仓4下料完成", "M42.0", 1, 0));
        add(new Res_PLCADDRESS("炒锅清洗反馈", "M41.5", 1, 0));
        add(new Res_PLCADDRESS("出餐启动反馈", "M41.6", 1, 0));
        add(new Res_PLCADDRESS("炒锅倒菜减速位", "M41.7", 1, 0));
        add(new Res_PLCADDRESS("平移轴在1号位", "M43.0", 1, 0));
        add(new Res_PLCADDRESS("平移轴在2号位", "M43.1", 1, 0));
        add(new Res_PLCADDRESS("平移轴在3号位", "M43.2", 1, 0));
        add(new Res_PLCADDRESS("平移轴在4号位", "M43.3", 1, 0));

        add(new Res_PLCADDRESS("翻转轴1在1号位", "M44.0", 1, 0));
        add(new Res_PLCADDRESS("翻转轴1在2号位", "M44.1", 1, 0));
        add(new Res_PLCADDRESS("翻转轴1在3号位", "M44.2", 1, 0));
        add(new Res_PLCADDRESS("翻转轴1在4号位", "M44.3", 1, 0));
        add(new Res_PLCADDRESS("翻转轴1允许机器人放盒取盒", "M44.4", 1, 0));
        add(new Res_PLCADDRESS("1号位倒菜完成", "M44.7", 1, 0));


        add(new Res_PLCADDRESS("翻转轴2在1号位", "M45.0", 1, 0));
        add(new Res_PLCADDRESS("翻转轴2在2号位", "M45.1", 1, 0));
        add(new Res_PLCADDRESS("翻转轴2在3号位", "M45.2", 1, 0));
        add(new Res_PLCADDRESS("翻转轴2在4号位", "M45.3", 1, 0));
        add(new Res_PLCADDRESS("翻转轴2允许机器人放盒取盒", "M45.4", 1, 0));
        add(new Res_PLCADDRESS("2号位倒菜完成", "M45.7", 1, 0));

        add(new Res_PLCADDRESS("心跳位", "VW1000", 0, 1));

        //检测信号
        add(new Res_PLCADDRESS("监测信号", "-------------", 0, 0));
        add(new Res_PLCADDRESS("当前锅底温度", "VD300", 1, 0));
        add(new Res_PLCADDRESS("炒锅搅拌转速", "VD304", 1, 0));
        add(new Res_PLCADDRESS("当前加热档位", "VD308", 1, 0));
        add(new Res_PLCADDRESS("炒锅当前电压", "VD312", 1, 0));
        add(new Res_PLCADDRESS("炒锅当前电流", "VD316", 1, 0));
        add(new Res_PLCADDRESS("炒锅当前功率", "VD320", 1, 0));
        add(new Res_PLCADDRESS("搅拌频率", "VW324", 1, 0));
        add(new Res_PLCADDRESS("搅拌电机电流", "VW326", 1, 0));
        add(new Res_PLCADDRESS("搅拌电机电压", "VW328", 1, 0));
        add(new Res_PLCADDRESS("搅拌变频器温度", "VW330", 1, 0));
        add(new Res_PLCADDRESS("翻转频率", "VW332", 1, 0));
        add(new Res_PLCADDRESS("翻转电机电流", "VW334", 1, 0));
        add(new Res_PLCADDRESS("翻转电机电压", "VW336", 1, 0));
        add(new Res_PLCADDRESS("翻转变频器温度", "VW338", 1, 0));
        add(new Res_PLCADDRESS("编码器当前位值", "VD340", 1, 0));

        //状态上报
        add(new Res_PLCADDRESS("状态上报", "-------------", 0, 0));
        add(new Res_PLCADDRESS("搅拌电机", "VW350", 1, 0));
        add(new Res_PLCADDRESS("翻转电机", "VW352", 1, 0));
        add(new Res_PLCADDRESS("炒锅", "VW354", 1, 0));

    }};
    /**
     * 一拖四工序模型
     */
    public List<ProcessT> Process_一拖四 = new ArrayList<ProcessT>() {{
        add(new ProcessT("搅拌", Arrays.asList("搅拌速度", "延迟(秒)")));
        add(new ProcessT("位置", Arrays.asList("转动速度", "位置动作", "延迟(秒)")));
        add(new ProcessT("加热", Arrays.asList("加热功率", "延迟(秒)")));
        add(new ProcessT("主料", Arrays.asList("主料名称", "主料位置", "主料重量", "投料动作","炒制位置","烹饪(秒)")));
        add(new ProcessT("辅料", Arrays.asList("辅料名称", "炒制位置","烹饪(秒)")));
        add(new ProcessT("液体料", new ArrayList<>()));
        add(new ProcessT("并行出料", Arrays.asList("出料克数","等待(秒)")));
        add(new ProcessT("延迟", Arrays.asList("延迟(秒)")));
        add(new ProcessT("出菜", Arrays.asList("等待(秒)")));
        add(new ProcessT("清洗", Arrays.asList("等待(秒)")));
    }};

    /**
     * 主控地址列表
     */
    public ConcurrentHashMap<String, Integer> MainPlcAddress = new ConcurrentHashMap<String, Integer>() {{
        put("炒锅空闲状态",1);  //实时
        put("炒锅出餐完成",2);
        put("炒锅投主料完成",3);//准备就绪,开始烹饪
        put("炒锅请求投辅料",4);
        put("商品数据验证",5);
        put("投料机构状态",6);  //实时
        put("心跳",7);   //实时
        put("炒菜完成请求出餐",8);
        put("炒锅出餐减速到位",9); //实时
        put("炒锅请求投主料",10);
        put("强制结束任务完成",11);//炒锅反馈强制结束任务完成

        put("机器人准备就绪",51);//修改就绪信号
        put("机器人放辅料完成",52);
        put("机器人到达炒锅出餐位",53);
        put("商品下发",54);
        put("机器人急停",55);//true 异常 false 正常
        put("机器人投放主料完成",56);
        put("强制结束任务",57);

        put("商品信息",0);
    }};



    /**
     * 根据名称获取变量
     *
     * @param item
     * @return
     */
    public String GetProcessTypeVal(String item) {
        String data = "";
        if (item.equals("搅拌动作")) {
            data = "正转反转、一直正转、一直反转";
        } else if (item.equals("位置动作")) {
            data = "原点位、出餐启动、倒菜位、抽料位、清洗位、炒菜位1、炒菜位2、炒菜位3";
        } else if (item.equals("炒制位置")) {
            data = "炒菜位1、炒菜位2、炒菜位3、原点位";
        }else if (item.equals("投料动作")) {
            //data = "投出抖动三次、投出等待三秒、直接投出、手动投料";
            data = "投出等待三秒、直接投出、手动投料";
        } else if (item.equals("主料位置")) {
            data = "1号位、2号位、3号位、4号位";
        } else if (item.equals("正转速度") || item.equals("反转速度") || item.equals("转动速度") || item.equals("搅拌速度")) {
            data = "停止、最低、低速、中速、高速、最高、极高";
        } else if (item.equals("加热功率") || item.equals("热锅功率")) {
            data = "停止、一档、二档、三档、四档、五档、六档、七档、八档";
        }
        return data;
    }

    /**
     * 速度
     */
    public ConcurrentHashMap<String, Integer> StirringSpeed = new ConcurrentHashMap<String, Integer>() {{
        put("停止", 0);
        put("最低", 10);
        put("低速", 20);
        put("中速", 30);
        put("高速", 40);
        put("最高", 50);
        put("极高", 60);
    }};
    /**
     * 挡位 功率
     */
    public ConcurrentHashMap<String, Integer> HeatingGear = new ConcurrentHashMap<String, Integer>() {{
        put("停止", 0);
        put("一档", 1);
        put("二档", 2);
        put("三档", 3);
        put("四档", 4);
        put("五档", 5);
        put("六档", 6);
        put("七档", 7);
        put("八档", 8);
    }};
    public Map<String, Integer> HeatingGearL = new LinkedHashMap<String, Integer>() {{
        put("二档", 0);
        put("三档", 1);
        put("四档", 2);
        put("五档", 3);
        put("六档", 4);
        put("七档", 5);
        put("八档", 6);
    }};

    //region 火力最大级别
    /**
     * 最大火力级别
     */
    public String HuoLi="八档";
    /**
     * 最大温度：默认温度
     */
    public int MaxTemp=200;
    /**
     * 是否打开火力
     */
    public boolean IsOpenHuoLi=false;
    //endregion
    /**
     * 炒锅状态上报信息
     */
    public List<StatusMode> statusModes = new ArrayList<StatusMode>() {{
        //硬件设备 初始化
        add(new StatusMode("急停", false, R.mipmap.jiting, R.mipmap.jiting, 0));
        add(new StatusMode("炒锅正限位报警", false, R.mipmap.cg_sxw, R.mipmap.cg_sxw, 2));
        add(new StatusMode("炒锅负限位报警", false, R.mipmap.cgxxw, R.mipmap.cgxxw, 3));
        add(new StatusMode("编码器通讯异常", false, R.mipmap.bmq, R.mipmap.bmq, 4));
        add(new StatusMode("搅拌电机变频器通讯异常", false, R.mipmap.bpq, R.mipmap.bpq, 6));
        add(new StatusMode("翻转电机变频器通讯异常", false, R.mipmap.bpq, R.mipmap.bpq, 7));
        add(new StatusMode("炒锅加热异常", false, R.mipmap.hr, R.mipmap.hr, 8));
    }};
    /**
     * 电机状态上报信息
     */
    public ConcurrentHashMap<Integer, String> statusModes_电机 = new ConcurrentHashMap<Integer, String>() {{
        put(0, "无故障");
        put(1, "过电流");
        put(2, "过电压");
        put(3, "IGBT过热");
        put(4, "");
        put(5, "变频器过负载");
        put(6, "电机过负载");
        put(7, "过转矩");
        put(8, "外部异常");
        put(9, "加速中过电流");
        put(10, "减速中过电流");
        put(11, "恒速中过电流");
        put(12, "");
        put(13, "电压不足");
        put(14, "输入电压缺相");
        put(15, "");
        put(16, "不适用自动加减速设定");
        put(17, "软件参数密码保护");
        put(18, "CPU写入异常");
        put(19, "CPU读取异常");
        put(20, "端子保护线路异常");
        put(21, "0V保护线路异常");
        put(22, "");
        put(23, "");
        put(24, "U相硬件异常");
        put(25, "V相硬件异常");
        put(26, "W相硬件异常");
        put(27, "DC，bus 硬件异常");

    }};

    /**
     * Bottom 按钮
     */
    public List<String> BottomList = new ArrayList<String>() {{
        add("初始化");
        add("停止");
        add("复位");


        add("主料");
        add("出菜");
        add("原点位");
        add("投料位");
        add("倒菜位");
        add("抽料位");
        add("清洗位");
        add("炒菜位1");
        add("炒菜位2");
        add("炒菜位3");
        add("出餐启动");
        add("出餐启动");

        add("开始校正");
        add("料仓1下料");
        add("料仓2下料");
        add("料仓3下料");
        add("料仓4下料");


        add("平移-回原点");
        add("平移-去1号位");
        add("平移-去2号位");
        add("平移-去3号位");
        add("平移-去4号位");

        add("平移-1#位置设定");
        add("平移-2#位置设定");
        add("平移-3#位置设定");
        add("平移-4#位置设定");

        add("翻转-回原点");
        add("翻转-去1号位");
        add("翻转-去2号位");
        add("翻转-去3号位");
        add("翻转-去4号位");

        add("翻转-1#位置设定");
        add("翻转-2#位置设定");
        add("翻转-3#位置设定");
        add("翻转-4#位置设定");
        add("倒菜启动");
        //add("磁铁吸合");
    }};

    //endregion

    //region 云端数据
    /**
     * 云端数据
     */
    public ResALLData cloudData = null;
    /**
     * 云端商品
     */
    public List<CloudGood> cloudGoods = new ArrayList<>();
    //endregion

    //region 选配版本信息
    /**
     * 版本信息
     */
    public String[] versionSelectionValues = new String[]{"大炒版本", "大炒自动投料版本", "小炒版本","一拖四大炒","一拖二大炒"};
    /**
     * 选配版本信息
     */
    public String versionSelectionEnum = "大炒版本";
    //endregion

    //region 用户角色
    public List<String> UserRole = new ArrayList<String>() {{
        add("一般用户");
        add("研发用户");
        add("超级管理员");
    }};
    //endregion

    //region 料仓显示物料
    /**
     * 料仓显示物料
     */
    public ConcurrentHashMap<Integer,String > SilosDisplayMaterial = new ConcurrentHashMap<Integer,String >() {{
        put(1, "未设置");
        put(2, "未设置");
        put(3, "未设置");
        put(4, "未设置");
    }};


    //endregion

    //region 手动投料是否关闭
    /**
     * 手动投料是否关闭火力
     */
    public String WhetherManualFeedingSuspended="否";
    //endregion

    //region 计数累计
    /**
     * 锅口朝向次数
     */
    public int gkcxCount=0;
    /**
     * 搅拌分钟数
     */
    public int jiaobanCount = 0;//搅拌分钟数
    /**
     * 清洗次数
     */
    public int qingxiCount = 0;
    /**
     * 投料次数
     */
    public int touliaoCount = 0;
    /**
     * 液体料次数
     */
    public int yetiliaoCount = 0;

    /**
     * 延迟加热次数
     */
    public int yanchiCount = 0;
    /**
     * 加热次数
     */
    public int jiareCount = 0;
    /**
     * 加热稳定性次数
     */
    public int jiarewendingCount = 0;
    /**
     * 炒菜运行
     */
    public int RunCount = 0;
    //endregion

    //region 出餐和清洗时间
    /**
     * 出餐时间
     */
    public int AutoCCTime=10;
    /**
     * 清洗时间
     */
    public int AutoQXTime=10;
    //endregion
}
