package com.fizz.business.service.manager;

import com.fizz.business.constants.enums.OpcMessageType;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import io.swagger.v3.oas.annotations.media.Schema;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

@Component
public class OpcMessageIdsManager {

    public static List<String> msgTriggers = Lists.newArrayList();

    public static Map<String,String> lineMeasureIds = Maps.newHashMap();

    public static Map<String,String> entryLineMeasureIds = Maps.newHashMap();
    public static Map<String,String> procLineMeasureIds = Maps.newHashMap();
    public static Map<String,String> furLineMeasureIds = Maps.newHashMap();

    public static Map<String,String> exitLineMeasureIds = Maps.newHashMap();

    public static Map<String,String> entryMoveIds = Maps.newHashMap();
    public static Map<String,String> exitCutIds = Maps.newHashMap();
    public static Map<String,String> exitMoveIds = Maps.newHashMap();
    public static Map<String,String> exitMeasureIds = Maps.newHashMap();
    public static Map<String,String> l2HeartIds = Maps.newHashMap();

    public static Map<String,String> pdiSetupIds = Maps.newHashMap();

    public static String DEVICE_NAME = "ns=2;s=ProcessCGL.";

    @PostConstruct
    public static void init() {

        //TODO load from database
        loadEntryMoveIds();
        loadExitCutIds();
        loadExitMoveIds();
        loadExitMeasureIds();
        loadL2HeartIds();

        loadMsgTriggers();
        loadEntryLineMeasureIds();
        loadProcLineMeasureIds();
        loadFurLineMeasureIds();
        loadExitLineMeasureIds();
        loadL2SetupIds();
    }


    public static void loadEntryMoveIds(){
        entryMoveIds.put("trigger","PLCLine.EntryMove.counter");
        entryMoveIds.put("ns=2;s=ProcessCGL.PLCLine.EntryMove.src","materialPlaceSource");
        entryMoveIds.put("ns=2;s=ProcessCGL.PLCLine.EntryMove.des","materialPlaceDestination");
    }

    public static void loadExitCutIds(){
        exitCutIds.put("trigger","PLCLine.ExitCut.counter");
        exitCutIds.put("ns=2;s=ProcessCGL.PLCLine.ExitCut.cutType","cutType");
        exitCutIds.put("ns=2;s=ProcessCGL.PLCLine.ExitCut.cutLength","cutLength");
        exitCutIds.put("ns=2;s=ProcessCGL.PLCLine.ExitCut.outerDiameter","outerDiameter");
        exitCutIds.put("ns=2;s=ProcessCGL.PLCLine.ExitCut.leftLength","leftLength");
        exitCutIds.put("ns=2;s=ProcessCGL.PLCLine.ExitCut.breakPosition","breakPosition");
    }

    public static void loadExitMoveIds(){
        exitMoveIds.put("trigger","PLCLine.ExitMove.counter");
        exitMoveIds.put("ns=2;s=ProcessCGL.PLCLine.ExitMove.src","exSrc");
        exitMoveIds.put("ns=2;s=ProcessCGL.PLCLine.ExitMove.des","exDesc");
    }

    public static void loadExitMeasureIds(){
        exitMeasureIds.put("trigger","PLCLine.ExitMeasure.counter");
        exitMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ExitMeasure.weight","weight");
    }
    public static void loadL2HeartIds(){
        l2HeartIds.put("trigger","PLCLine.L2Heart.counter");
    }

    public static void loadEntryLineMeasureIds(){

        entryLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.EntryLineMeasure.coilID","entryCoilId");
        entryLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.EntryLineMeasure.stripLocation","stripLocation");
        entryLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.EntryLineMeasure.PORFlag","payOffReelNumber");
        entryLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.EntryLineMeasure.PORTension","tensionPorBr1");
        entryLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.EntryLineMeasure.BR1Tension","tensionBr1Br2");
        entryLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.EntryLineMeasure.BR2Tension","tensionBr2Br3");
        entryLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.EntryLineMeasure.StripSpeed","stripSpeed");
        entryLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.EntryLineMeasure.celLength","celLength");
        entryLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.EntryLineMeasure.celLengthMax","celLengthMax");
        entryLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.EntryLineMeasure.celLengthMin","celLengthMin");
        entryLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.EntryLineMeasure.celPercent","celCapacity");
//        entryLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.EntryLineMeasure.weight","tensionCel");
        entryLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.EntryLineMeasure.cleaningVoltage","cleaningVoltage");
        entryLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.EntryLineMeasure.cleaningCurrent","cleaningCurrent");
        entryLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.EntryLineMeasure.alkaliConcentration","alkaliConcentration");
        entryLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.EntryLineMeasure.alkaliTemperature","alkaliTemperature");
        entryLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.EntryLineMeasure.rinseConductivity","rinseConductivity");
        entryLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.EntryLineMeasure.rinseTemperature","rinseTemperature");
        entryLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.EntryLineMeasure.dryingTemperature","dryingTemperature");
        entryLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.EntryLineMeasure.hotAirFlow","hotAirFlow");
        entryLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.EntryLineMeasure.hotAirPressure","hotAirPressure");
        entryLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.EntryLineMeasure.BR4or5toBR6Tension","bR4or5toBR6Tension");
    }

    public static void loadProcLineMeasureIds(){
        procLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ProcLineMeasure.stripLocation", "stripLocation");
        procLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ProcLineMeasure.measurementCount", "measurementCount");
        procLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ProcLineMeasure.avrCoatingWeightTop", "avrCoatingWeightTop");
        procLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ProcLineMeasure.stdCoatingWeightTop", "stdCoatingWeightTop");
        procLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ProcLineMeasure.maxCoatingWeightTop", "maxCoatingWeightTop");
        procLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ProcLineMeasure.minCoatingWeightTop", "minCoatingWeightTop");
        procLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ProcLineMeasure.avrCoatingWeightBottom", "avrCoatingWeightBottom");
        procLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ProcLineMeasure.stdCoatingWeightBottom", "stdCoatingWeightBottom");
        procLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ProcLineMeasure.maxCoatingWeightBottom", "maxCoatingWeightBottom");
        procLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ProcLineMeasure.minCoatingWeightBottom", "minCoatingWeightBottom");
        procLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ProcLineMeasure.airKnifePressure", "airKnifePressure");
        procLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ProcLineMeasure.airKnifeFlow", "airKnifeFlow");
        procLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ProcLineMeasure.airKnifeGap", "airKnifeGap");
        procLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ProcLineMeasure.stripSpeedTmExit", "stripSpeedTmExit");
        procLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ProcLineMeasure.tensionBr8Tm", "tensionBr8Tm");
        procLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ProcLineMeasure.tensionTmBr9", "tensionTmBr9");
        procLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ProcLineMeasure.tensionBr8Br9", "tensionBr8Br9");
        procLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ProcLineMeasure.tmMask", "tmMask");
        procLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ProcLineMeasure.tmElongation", "tmElongation");
        procLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ProcLineMeasure.rollForceOperator", "rollForceOperator");
        procLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ProcLineMeasure.rollForceDrive", "rollForceDrive");
        procLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ProcLineMeasure.motorTorque", "motorTorque");
        procLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ProcLineMeasure.bendingForce", "bendingForce");
        procLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ProcLineMeasure.antiCrimpingRollMesh", "antiCrimpingRollMesh");
        procLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ProcLineMeasure.billyRollMesh", "billyRollMesh");
        procLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ProcLineMeasure.spare1", "spare1");
        procLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ProcLineMeasure.spare2", "spare2");
        procLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ProcLineMeasure.spare3", "spare3");
        procLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ProcLineMeasure.tensionTlBr10Br11", "tensionTlBr10Br11");
        procLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ProcLineMeasure.tensionBr9toBr10Br11", "tensionBr9toBr10Br11");
        procLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ProcLineMeasure.tlFlag", "tlFlag");
        procLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ProcLineMeasure.tlElongation", "tlElongation");
        procLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ProcLineMeasure.levelingUnit1Mesh", "levelingUnit1Mesh");
        procLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ProcLineMeasure.levelingUnit2Mesh", "levelingUnit2Mesh");
        procLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ProcLineMeasure.antiCrossBowUnitMesh", "antiCrossBowUnitMesh");
        procLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ProcLineMeasure.tensionBr10Br11toBr12", "tensionBr10Br11Br12");
        procLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ProcLineMeasure.stripSpeedAfp", "stripSpeedAfp");
        procLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ProcLineMeasure.coatingFlag", "coatingFlag");
        procLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ProcLineMeasure.stripTempAfp", "stripTempAfp");
        procLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ProcLineMeasure.tensionBr6toBr7Br8", "tensionBr6toBr7Br8");
        procLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ProcLineMeasure.PotTemperature", "potTemperature");
        procLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ProcLineMeasure.CoolingTowerTemperature", "coolingTowerTemperature");
        procLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ProcLineMeasure.PotPower", "potPower");
    }

    public static void loadFurLineMeasureIds() {
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.EntryCoilIdentification", "EntryCoilIdentification");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.Striplocation", "Striplocation");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.PHFurnaceTemperatureActualValue", "phFurnaceTemperatureActual");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOF1FurnaceTemperatureActualValue", "nof1FurnaceTemperatureActual");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOF1FurnaceTemperatureSettingValue", "nof1FurnaceTemperatureSet");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOF1FurnaceTemperatureControlOutputValue", "nof1FurnaceTemperatureControlOutput");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOF1GasFlowRateActualValue", "nof1GasFlowActual");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOF1GasFlowRateSettingValue", "nof1GasFlowSet");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOF1GasFlowRateControlOutputValue", "nof1GasFlowControlOutput");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOF1AirFlowRateActualValue", "nof1AirFlowActual");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOF1AirsFlowRateSettingValue", "nof1AirFlowSet");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOF1AirFlowRateControlOutputValue", "nof1AirFlowControlOutput");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOF1UtheisaKongCombustionRatioActualValue", "nof1UtheisaKongCombustionRatioActualValue");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOF1UtheisaKongCombustionRatioSettingValue", "nof1UtheisaKongCombustionRatioSettingValue");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOF2FurnaceTemperatureActualValue", "nof2FurnaceTemperatureActual");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOF2FurnaceTemperatureSettingValue", "nof2FurnaceTemperatureSet");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOF2FurnaceTemperatureControlOutputValue", "nof2FurnaceTemperatureControlOutput");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOF2GasFlowRateActualValue", "nof2GasFlowActual");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOF2GasFlowRateSettingValue", "nof2GasFlowSet");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOF2GasFlowRateControlOutputValue", "nof2GasFlowControlOutput");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOF2AirFlowRateActualValue", "nof2AirFlowActual");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOF2AirsFlowRateSettingValue", "nof2AirFlowSet");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOF2AirFlowRateControlOutputValue", "nof2AirFlowControlOutput");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOF2UtheisaKongCombustionRatioActualValue", "nof2UtheisaKongCombustionRatioActualValue");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOF2UtheisaKongCombustionRatioSettingValue", "nof2UtheisaKongCombustionRatioSettingValue");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOF3FurnaceTemperatureActualValue", "nof3FurnaceTemperatureActual");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOF3FurnaceTemperatureSettingValue", "nof3FurnaceTemperatureSet");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOF3FurnaceTemperatureControlOutputValue", "nof3FurnaceTemperatureControlOutput");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOF3GasFlowRateActualValue", "nof3GasFlowActual");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOF3GasFlowRateSettingValue", "nof3GasFlowSet");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOF3GasFlowRateControlOutputValue", "nof3GasFlowControlOutput");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOF3AirFlowRateActualValue", "nof3AirFlowActual");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOF3AirsFlowRateSettingValue", "nof3AirFlowSet");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOF3AirFlowRateControlOutputValue", "nof3AirFlowControlOutput");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOF3UtheisaKongCombustionRatioActualValue", "nof3UtheisaKongCombustionRatioActualValue");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOF3UtheisaKongCombustionRatioSettingValue", "nof3UtheisaKongCombustionRatioSettingValue");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOF4FurnaceTemperatureActualValue", "nof4FurnaceTemperatureActual");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOF4FurnaceTemperatureSettingValue", "nof4FurnaceTemperatureSet");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOF4FurnaceTemperatureControlOutputValue", "nof4FurnaceTemperatureControlOutput");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOF4GasFlowRateActualValue", "nof4GasFlowActual");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOF4GasFlowRateSettingValue", "nof4GasFlowSet");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOF4GasFlowRateControlOutputValue", "nof4GasFlowControlOutput");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOF4AirFlowRateActualValue", "nof4AirFlowActual");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOF4AirsFlowRateSettingValue", "nof4AirFlowSet");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOF4AirFlowRateControlOutputValue", "nof4AirFlowControlOutput");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOF4UtheisaKongCombustionRatioActualValue", "nof4UtheisaKongCombustionRatioActualValue");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOF4UtheisaKongCombustionRatioSettingValue", "nof4UtheisaKongCombustionRatioSettingValue");
        // ===================== RTF1炉体相关=====================
        // 温度相关
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.RTF1FurnaceTemperatureActualValue", "rtf1FurnaceTemperatureActual");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.RTF1FurnaceTemperatureSettingValue", "rtf1FurnaceTemperatureSet");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.RTF1FurnaceTemperatureControlOutputValue", "rtf1FurnaceTemperatureControlOutput");
        // 燃气流量相关
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.RTF1GasFlowRateActualValue", "rtf1GasFlowActual");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.RTF1GasFlowRateSettingValue", "rtf1GasFlowSet");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.RTF1GasFlowRateControlOutputValue", "rtf1GasFlowControlOutput");
        // 空气流量相关
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.RTF1AirFlowRateActualValue", "rtf1AirFlowActual");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.RTF1AirFlowRateSettingValue", "rtf1AirFlowSet");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.RTF1AirFlowRateControlOutputValue", "rtf1AirFlowControlOutput");
        // 空燃比相关
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.RTF1UtheisaKongCombustionRatioActualValue", "rtf1UtheisaKongCombustionRatioActualValue");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.RTF1UtheisaKongCombustionRatioSettingValue", "rtf1UtheisaKongCombustionRatioSettingValue");

        // ===================== RTF2炉体相关 =====================
        // 温度相关
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.RTF2FurnaceTemperatureActualValue", "rtf2FurnaceTemperatureActual");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.RTF2FurnaceTemperatureSettingValue", "rtf2FurnaceTemperatureSet");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.RTF2FurnaceTemperatureControlOutputValue", "rtf2FurnaceTemperatureControlOutput");
        // 燃气流量相关
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.RTF2GasFlowRateActualValue", "rtf2GasFlowActual");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.RTF2GasFlowRateSettingValue", "rtf2GasFlowSet");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.RTF2GasFlowRateControlOutputValue", "rtf2GasFlowControlOutput");
        // 空气流量相关
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.RTF2AirFlowRateActualValue", "rtf2AirFlowActual");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.RTF2AirFlowRateSettingValue", "rtf2AirFlowSet");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.RTF2AirFlowRateControlOutputValue", "rtf2AirFlowControlOutput");
        // 空燃比相关
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.RTF2UtheisaKongCombustionRatioActualValue", "rtf2UtheisaKongCombustionRatioActualValue");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.RTF2UtheisaKongCombustionRatioSettingValue", "rtf2UtheisaKongCombustionRatioSettingValue");

        // ===================== SF炉体相关 =====================
        // 温度相关
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.SFFurnaceTemperatureActualValue", "sfFurnaceTemperatureActual");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.SFFurnaceTemperatureSettingValue", "sfFurnaceTemperatureSet");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.SFFurnaceTemperatureControlOutputValue", "sfFurnaceTemperatureControlOutput");
        // 燃气流量相关
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.SFGasFlowRateActualValue", "sfGasFlowActual");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.SFGasFlowRateSettingValue", "sfGasFlowSet");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.SFGasFlowRateControlOutputValue", "sfGasFlowControlOutput");
        // 空气流量相关
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.SFAirFlowRateActualValue", "sfAirFlowActual");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.SFAirFlowRateSettingValue", "sfAirFlowSet");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.SFAirFlowRateControlOutputValue", "sfAirFlowControlOutput");
        // 空燃比相关
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.SFUtheisaKongCombustionRatioActualValue", "sfUtheisaKongCombustionRatioActualValue");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.SFUtheisaKongCombustionRatioSettingValue", "sfUtheisaKongCombustionRatioSettingValue");

        // ===================== 板材温度相关 =====================
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOFBoardTemperatureActualValue", "nofPlateTemperatureActual");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.RTFBoardTemperatureActualValue", "rtfPlateTemperatureActual");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.SFBoardTemperatureActualValue", "sfPlateTemperatureActual");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.TDSBoardTemperatureActualValue", "tdsPlateTemperatureActual");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.PHFurnacePressureActualValue", "PHFurnacePressureActualValue");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.PHFurnacePressureSettingValue", "PHFurnacePressureSettingValue");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.PHFurnacePressureControlOutputValue", "PHFurnacePressureControlOutputValue");
        // ===================== 炉压相关（非PH炉体） =====================
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOFFurnacePressureActualValue", "nofFurnacePressureActual");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.RTFFurnacePressureActualValue", "rtfFurnacePressureActual");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.TDSFurnacePressureActualValue", "tdsFurnacePressureActual");

        // ===================== JCF炉体相关 =====================
        // JCF1
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.JCF1FurnaceTemperatureActualValue", "jcf1FurnaceTemperatureActual");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.JCF1FurnaceTemperatureSettingValue", "jcf1FurnaceTemperatureSet");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.JCF1FurnaceTemperatureControlOutputValue", "jcf1FurnaceTemperatureControlOutput");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.JCF1PhaseACurrentValue", "jcf1PhaseACurrent");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.JCF1PhaseBCurrentValue", "jcf1PhaseBCurrent");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.JCF1PhaseCCurrentValue", "jcf1PhaseCCurrent");

        // ===================== LTH炉体相关 =====================
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.LTH1FurnaceTemperatureActualValue", "lthFurnaceTemperatureActual");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.LTH1FurnaceTemperatureSettingValue", "lthFurnaceTemperatureSet");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.LTH1FurnaceTemperatureControlOutputValue", "lthFurnaceTemperatureControlOutput");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.LTH1PhaseACurrent", "lthPhaseACurrent");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.LTH1PhaseBCurrent", "lthPhaseBCurrent");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.LTH1PhaseCCurrent", "lthPhaseCCurrent");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.LTH2FurnaceTemperatureActualValue", "LTH2FurnaceTemperatureActualValue");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.LTH2FurnaceTemperatureSettingValue", "LTH2FurnaceTemperatureSettingValue");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.LTH2FurnaceTemperatureControlOutputValue", "LTH2FurnaceTemperatureControlOutputValue");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.LTH2PhaseACurrent", "lth2PhaseACurrent");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.LTH2PhaseBCurrent", "lth2PhaseBCurrent");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.LTH2PhaseCCurrent", "lth2PhaseCCurrent");

        // ===================== TDS炉体相关 =====================
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.TDSFurnaceTemperatureActualValue", "tdsFurnaceTemperatureActual");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.TDSFurnaceTemperatureSettingValue", "tdsFurnaceTemperatureSet");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.TDSFurnaceTemperatureControlOutputValue", "tdsFurnaceTemperatureControlOutput");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.TDSPhaseACurrentValue", "tdsPhaseACurrent");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.TDSPhaseBCurrentValue", "tdsPhaseBCurrent");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.TDSPhaseCCurrentValue", "tdsPhaseCCurrent");

        // ===================== LBZ炉体相关 =====================
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.LBZFurnaceTemperatureActualValue", "lbzFurnaceTemperatureActual");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.LBZFurnaceTemperatureSettingValue", "lbzFurnaceTemperatureSet");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.LBZFurnaceTemperatureControlOutputValue", "lbzFurnaceTemperatureControlOutput");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.LBZPhaseACurrentValue", "lbzPhaseACurrent");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.LBZPhaseBCurrentValue", "lbzPhaseBCurrent");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.LBZPhaseCCurrentValue", "lbzPhaseCCurrent");

        // ===================== JCF风扇相关 =====================
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.JCFFan1ActualSpeed", "jcfFan1ActualSpeed");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.JCFFan1SettingSpeed", "jcfFan1SetSpeed");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.JCFFan2ActualSpeed", "jcfFan2ActualSpeed");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.JCFFan2SettinglSpeed", "jcfFan2SetSpeed");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.JCFFan3ActualSpeed", "jcfFan3ActualSpeed");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.JCFFan3SettingSpeed", "jcfFan3SetSpeed");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.JCFFan4ActualSpeed", "jcfFan4ActualSpeed");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.JCFFan4SettingSpeed", "jcfFan4SetSpeed");


        // ===================== 烟气温度相关 =====================
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOFUtetheisaKongFlueGasTemperatureBeforeHeatExchange", "NOFUtetheisaKongFlueGasTemperatureBeforeHeatExchange");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOFUtetheisaKongFlueGasTemperatureAfterHeatExchange", "NOFUtetheisaKongFlueGasTemperatureAfterHeatExchange");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOFWaterFlueGasTemperatureBeforeHeatExchange", "NOFWaterFlueGasTemperatureBeforeHeatExchange");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOFWaterFlueGasTemperatureAfterHeatExchange", "NOFWaterFlueGasTemperatureAfterHeatExchange");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOFCombustionSupportingAirTemperature", "NOFCombustionSupportingAirTemperature");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.RTFHotWindGasTemperatureBeforeHeatExchange", "RTFHotWindGasTemperatureBeforeHeatExchange");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.RTFSmokeExhaustFanInletGasTemperature", "RTFSmokeExhaustFanInletGasTemperature");

        // ===================== 压力相关 =====================
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOFGasPressure", "nofGasPressure");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.IgnitionGasPressure", "ignitionGasPressure");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOFAirPressure", "nofAirPressure");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.RTFGasPressure", "rtfGasPressure");

        // NOF空气压力控制
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOFAirPressureActualValue", "nofAirPressureActual");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOFAirPressureSettingValue", "nofAirPressureSet");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOFAirPressureControlOutputValue", "nofAirPressureControlOutput");

        // NOF烟气压力控制
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOFGasPressureActualValue", "nofGasPressureActual");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOFGasPressureSettingValue", "nofGasPressureSet");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.NOFGasPressureControlOutputValue", "nofGasPressureControlOutput");

        // RTF空气压力控制
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.RTFAirPressureActualValue", "rtfAirPressureActual");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.RTFAirPressureSettingValue", "rtfAirPressureSet");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.RTFAirPressureControlOutputValue", "rtfAirPressureControlOutput");

        // RTF烟气压力控制
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.RTFGasPressureActualValue", "rtfGasPressureActual");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.RTFGasPressureSettingValue", "rtfGasPressureSet");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.RTFGasPressureControlOutputValue", "rtfGasPressureControlOutput");

        // ===================== 炉内气氛相关 =====================
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.FurnaceAtmosphereTraceOxygenContent", "furnaceAtmosphereOxygenContent");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.FurnaceAtmosphereHydrogenContent", "furnaceAtmosphereHydrogenContent");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.FurnaceAtmosphereDewPointTemperature", "furnaceAtmosphereDewPoint");

        // ===================== 燃气消耗相关 =====================
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.InstantaneousGasFlowRate", "InstantaneousGasFlowRate");
        furLineMeasureIds.put("ns=2;s=ProcessCGL.PLCFur.FurLineMeasure.InstantaneousGasConsumption", "InstantaneousGasConsumption");
    }
    public static void loadExitLineMeasureIds() {
        exitLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ExitLineMeasure.stripLocation", "stripLocation");
        exitLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ExitLineMeasure.tensionBr8Br9", "tensionBr8Br9");
        exitLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ExitLineMeasure.cxlLength", "cxlLength");
        exitLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ExitLineMeasure.cxlLengthMax", "cxlLengthMax");
        exitLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ExitLineMeasure.cxlLengthMin", "cxlLengthMin");
        exitLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ExitLineMeasure.cxlPercent", "cxlCapacity");
//        exitLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ExitLineMeasure.tensionCxl", "tensionCxl");
        exitLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ExitLineMeasure.oilingFlag", "oilingFlag");
        exitLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ExitLineMeasure.oilingAmountTop", "oilingAmountTop");
        exitLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ExitLineMeasure.oilingAmountBottom", "oilingAmountBottom");
        exitLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ExitLineMeasure.tensionBr9Tr", "tensionBr9Tr");
        exitLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ExitLineMeasure.speedExitSection", "speedExitSection");
        exitLineMeasureIds.put("ns=2;s=ProcessCGL.PLCLine.ExitLineMeasure.coilLength", "coilLength");
    }

    public static void loadL2SetupIds(){
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.coilId", "coilId");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.PORFlag", "PORFlag");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.counter", "counter");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.entryCoilWeight", "entryCoilWeight");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.entryCoilLength", "entryCoilLength");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.entryCoilWidth", "entryCoilWidth");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.entryCoilThick", "entryCoilThick");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.entryCoilInnerDia", "entryCoilInnerDia");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.entryCoilOuterDia", "entryCoilOuterDia");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.alloyCode", "alloyCode");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.steelGrade", "steelGrade");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.splitNum", "splitNum");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.exitLength1", "exitLength1");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.exitLength2", "exitLength2");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.exitLength3", "exitLength3");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.exitLength4", "exitLength4");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.exitLength5", "exitLength5");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.exitLength6", "exitLength6");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.tensionPorBR1", "tensionPorBR1");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.tensionBR1BR2", "tensionBR1BR2");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.tensionBR2BR3", "tensionBR2BR3");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.tensionBR3", "tensionBR3");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.tensionFur1", "tensionFur1");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.tensionFur2", "tensionFur2");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.tensionBR4BR5", "tensionBR4BR5");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.aimCoatingWeightTop", "aimCoatingWeightTop");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.aimCoatingWeightBottom", "aimCoatingWeightBottom");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.TMFlag", "TMFlag");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.TMType", "TMType");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.TMMode", "TMMode");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.tensionBR5BR6", "tensionBR5BR6");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.tensionBR5TM", "tensionBR5TM");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.tensionTMBR6", "tensionTMBR6");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.TMElongation", "TMElongation");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.TMRollforce", "TMRollforce");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.TMBendforce", "TMBendforce");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.ACRMesh", "ACRMesh");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.BRMesh", "BRMesh");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.TLFlag", "TLFlag");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.TLElongation", "TLElongation");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.tensionBR6BR7", "tensionBR6BR7");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.tensionTLBR7","tensionTLBR7");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.LevelingMesh1","LevelingMesh1");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.LevelingMesh2","LevelingMesh2");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.AntiCrossBowUnitMesh","AntiCrossBowUnitMesh");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.tensionBR7BR8","tensionBR7BR8");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.chromatingFlag","chromatingFlag");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.chromatingCode","chromatingCode");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.tensionBR8BR9","tensionBR8BR9");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.tensionBR9TR","tensionBR9TR");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.oilingFlag","oilingFlag");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.oilingAmountTop","oilingAmountTop");
        pdiSetupIds.put("ns=2;s=ProcessCGL.PLCLine.L2Setup.oilingAmountBottom","oilingAmountBottom");
    }

    public static void loadMsgTriggers(){
        msgTriggers.add(DEVICE_NAME+entryMoveIds.get("trigger"));
        msgTriggers.add(DEVICE_NAME+exitCutIds.get("trigger"));
        msgTriggers.add(DEVICE_NAME+exitMoveIds.get("trigger"));
        msgTriggers.add(DEVICE_NAME+exitMeasureIds.get("trigger"));
        msgTriggers.add(DEVICE_NAME+l2HeartIds.get("trigger"));
    }
}
