using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;

namespace INT_PT002.DataStore
{
    public class CommunicationCommand
    {
        // 노멀 모드 : 메인화면, Status 화면
        public static readonly string ModeNormal = "Csn00";
        // 메뉴 모드 : 메뉴화면
        public static readonly string ModeMenu = "Csm00";
        // IO 테스트모드
        public static readonly string ModeIOTest = "Cst00";
        // 장비 테스트모드 : 매뉴얼
        public static readonly string ModeEquipmentTest = "Csy00";

        // Cut 신호
        public static readonly string CutInpupt = "Cbc00";
        // 공장초기화
        public static readonly string Initialization = "Cbi00";
        // 운전
        public static readonly string Start = "Cbs00";
        // 정지
        public static readonly string Stop = "Cbt00";
        // 영점
        public static readonly string Zero = "Cbz00";

        // 모터 원점
        public static readonly string MotorOrigin = "Cmo00";
        // 모터 Step
        public static readonly string MotorStep = "Cms00";
        // 모터 알람 리셋
        public static readonly string MotorAlarmReset = "Cma00";
        // 모터 동작 1
        public static readonly string MotorMove1 = "Cmc00";
        // 모터 동작 2
        public static readonly string MotorMove2 = "Cmr00";

        // 파라미터 쓰기
        public static readonly string Write = "Pw000";
        // 파라미터 읽기
        public static readonly string Read = "Pr000";
        // IO테스트 - OUT
        public static readonly string IOTest = "Pt000";
    }

    public class CommunicationID
    {
        public static readonly string MainBoard = "0";
        public static readonly string SubBoard1 = "A";
        public static readonly string SubBoard2 = "B";
        public static readonly string SubBoard3 = "C";
        public static readonly string SubBoard4 = "D";
        public static readonly string SubBoard5 = "E";
        public static readonly string SubBoard6 = "F";
        public static readonly string SubBoard7 = "G";
        public static readonly string SubBoard8 = "H";
        public static readonly string SubBoard9 = "I";
        public static readonly string SubBoard10 = "J";
        public static readonly string SubBoard11 = "K";
        public static readonly string SubBoard12 = "L";
        public static readonly string SubBoardAll = "Z";
    }

    public class CommunicationAddress
    {
        // Address None
        public static readonly string None = "0000";

        // 메인보드 버전 읽기
        public static readonly string _1502_ProgramVersion = "1502";

        // 시스템설정 - 업데이트
        public static readonly string _1651_UpdateForMain = "1651";
        // 시스템설정 - 센서보드_차압센서 필터
        public static readonly string _1706_SbDiffFilter = "1706";
        // 시스템설정 - 데이터 전송 주기
        public static readonly string _1710_LcdDataPeriod = "1710";

        // 품번
        public static readonly string _2001_ProductNumber = "2001";

        // 상한 설정값
        public static readonly string _2301_OverRange = "2301";

        // 진공시간
        public static readonly string _5504_VacuumRelief = "5504";
        // 진공유지시간1
        public static readonly string _5505_VacuumHold1 = "5505";
        // 진공유지시간2
        public static readonly string _5506_VacuumHold2 = "5506";
        // 진공파기시간
        public static readonly string _5507_VacuumBlowoff = "5507";
        // 동작 지연시간
        public static readonly string _5508_CuttingWait = "5508";
        // 변위센서 - std level
        public static readonly string _5509_DispStdLevel = "5509";
        // 변위센서 - min level
        public static readonly string _5510_DispMinLevel = "5510";
        // 변위센서 - empty level
        public static readonly string _5511_DispEmptyLevel = "5511";
        // 변위센서 - delay
        public static readonly string _5512_DispHoldDelay = "5512";
        // 차압센서 - lr second
        public static readonly string _5513_DiffLrSecond = "5513";
        // 차압센서 - lr total
        public static readonly string _5514_DiffLrTotal = "5514";
        // 차압센서 - lr mean
        public static readonly string _5515_DiffLrMean = "5515";
        // 차압센서 - delay
        public static readonly string _5516_DiffHoldDelay = "5516";
        // 압력게이지 기준압력
        public static readonly string _5517_VacuumGaugeStdLevel = "5517";

        // 옵션 - 부저 동작 시간
        public static readonly string _6001_BuzzerOP = "6001";
        // 옵션 - 채터링
        public static readonly string _6006_Chattering = "6006";

        // 통신,IO설정 - INPUT ALL
        public static readonly string _7500_InputAll = "7500";
        // 통신,IO설정 = OUTPUT1
        public static readonly string _7701_Output1 = "7701";
        // 통신,IO설정 = OUTPUT2
        public static readonly string _7702_Output2 = "7702";
        // 통신,IO설정 = OUTPUT3
        public static readonly string _7703_Output3 = "7703";
        // 통신,IO설정 = OUTPUT4
        public static readonly string _7704_Output4 = "7704";
        // 통신,IO설정 = OUTPUT5
        public static readonly string _7705_Output5 = "7705";
        // 통신,IO설정 = OUTPUT6
        public static readonly string _7706_Output6 = "7706";
        // 통신,IO설정 = OUTPUT7
        public static readonly string _7707_Output7 = "7707";
        // 통신,IO설정 = OUTPUT8
        public static readonly string _7708_Output8 = "7708";
        // 통신,IO설정 = OUTPUT9
        public static readonly string _7709_Output9 = "7709";
        // 통신,IO설정 = OUTPUT10
        public static readonly string _7710_Output10 = "7710";
        // 통신,IO설정 = OUTPUT11
        public static readonly string _7711_Output11 = "7711";
        // 통신,IO설정 = OUTPUT12
        public static readonly string _7712_Output12 = "7712";
        // 통신,IO설정 = OUTPUT13
        public static readonly string _7713_Output13 = "7713";
        // 통신,IO설정 = OUTPUT14
        public static readonly string _7714_Output14 = "7714";
        // 통신,IO설정 = OUTPUT15
        public static readonly string _7715_Output15 = "7715";
        // 통신,IO설정 = OUTPUT16
        public static readonly string _7716_Output16 = "7716";

        // 시스템 파라미터 모두 쓰기 
        public static readonly string _9039_ParameterAll = "9039";
        // Recipe 파라미터 모두 쓰기
        public static readonly string _9043_RecipeParameter = "9043";
    }
}
