Exemplo n.º 1
0
        private void AddEvent(CHSMS _hsms)
        {
            _hsms.Connected          += new ConnectEventHandler(_hsms_Connected);
            _hsms.Disconnected       += new DisconnectEventHandler(_hsms_Disconnected);
            _hsms.PrimaryIn          += new PrimaryInEventHandler(_hsms_PrimaryIn);
            _hsms.PrimaryOut         += new PrimaryOutEventHandler(_hsms_PrimaryOut);
            _hsms.SecondaryIn        += new SecondaryInEventHandler(_hsms_SecondaryIn);
            _hsms.SecondaryOut       += new SecondaryOutEventHandler(_hsms_SecondaryOut);
            _hsms.SecsError          += new SecsErrorEventHandler(_hsms_SecsError);
            _hsms.SecsTimeOut        += new SecsTimeOutHandler(_hsms_SecsTimeOut);
            _hsms.SecsUnknownMessage += new SecsUnknownMessageHandler(_hsms_SecsUnknownMessage);

            _hsms.MakeMessageList();

            //ARE YOU THERE REQUEST
            _hsms.S1F1.OnReceived += new CHSMS.delegateS1F1Received(S1F1_OnReceived);
            _hsms.S1F2.OnReceived += new CHSMS.delegateS1F2Received(S1F2_OnReceived);

            //AF_DATA_SEND
            _hsms.S6F1.OnReceived += new CHSMS.delegateS6F1Received(S6F1_OnReceived);
            _hsms.S6F2.OnReceived += new CHSMS.delegateS6F2Received(S6F2_OnReceived);

            //LAMI_DATA_SEND
            _hsms.S6F3.OnReceived += new CHSMS.delegateS6F3Received(S6F3_OnReceived);
            _hsms.S6F4.OnReceived += new CHSMS.delegateS6F4Received(S6F4_OnReceived);

            //DELETE_REQUEST
            _hsms.S6F5.OnReceived += new CHSMS.delegateS6F5Received(S6F5_OnReceived);
            _hsms.S6F6.OnReceived += new CHSMS.delegateS6F6Received(S6F6_OnReceived);
        }
Exemplo n.º 2
0
        void _hsms_Connected(object sender, SecsEventArgs e)
        {
            //HSMSConnect = enumHSMSConnect.Connect;
            CHSMS oHsms = sender as CHSMS;

            if (oHsms != null)
            {
                try
                {
                    int iPort = oHsms.m_LocalPort;
                    if (SecsConnectChange != null)
                    {
                        string EQPName = "";
                        if (oMain.SystemConfig.SPECIAL_EQP_TYPE == enumSPECIAL_EQP_TYPE.FPC)
                        {
                            EQPName = GetFPCConnectEQPName(iPort);
                            SecsConnectChange(EQPName, true);
                        }
                        else if (oMain.SystemConfig.SPECIAL_EQP_TYPE == enumSPECIAL_EQP_TYPE.LAMI)
                        {
                            EQPName = GetLAMIConnectEQPName(iPort);
                            SecsConnectChange(EQPName, true);
                        }
                    }
                }
                catch (Exception ex)
                {
                    CLogManager.Instance.Log(new CExceptionLogFormat(Catagory.Error, "EMP", ex));
                }
            }
        }
Exemplo n.º 3
0
        //private enumHostConnect _hostConnect = enumHostConnect.Disconnect;
        //private enumHSMSConnect _hsmsConnect = enumHSMSConnect.Disconnect;

        //public enumHSMSConnect HSMSConnect
        //{
        //    get { return _hsmsConnect; }
        //    set { _hsmsConnect = value; }
        //}

        public CSECSManager(CMain main)
        {
            _main = main;
            string EQPID = oMain.SystemConfig.EQPID;
            int    EQPNO = int.Parse(EQPID.Substring(EQPID.Length - 1, 1));

            if (main.SystemConfig.SPECIAL_EQP_TYPE == enumSPECIAL_EQP_TYPE.FPC)
            {
                //FPC는 EQPNO가 1 or 2 가 나올것임.
                for (int i = 0; i < 5; i++)
                {
                    int            iOpenPort = 7000 + EQPNO + (i * 2); //EQP1 : 1,3,5,7,9     EQP2 : 2,4,6,8,10
                    SecsProperties oProp     = new SecsProperties();
                    CHSMS          oHSMS     = new CHSMS(EQPID + "_" + iOpenPort.ToString(), oProp);

                    oProp.Library             = new SecsLibrary();
                    oProp.Library.Description = "LIBRARY";
                    string strFileName = "OGS_PASSIVE_" + iOpenPort.ToString() + ".lic";
                    string path        = AppDomain.CurrentDomain.SetupInformation.ApplicationBase + @"\Config\" + strFileName;
                    oHSMS.Load(path);

                    //PORT NO로 EQP 관련 정보를 찾을 수 있도록 고정화 시킴.
                    //개별 파일로 Load하게 수정 해당 코드 주석
                    //oHSMS.Properties.IsActive = false;
                    //oHSMS.m_LocalPort = iOpenPort;

                    AddEvent(oHSMS);

                    HSMSCollection.Add(iOpenPort.ToString(), oHSMS);
                }
            }
            else if (main.SystemConfig.SPECIAL_EQP_TYPE == enumSPECIAL_EQP_TYPE.LAMI)
            {
                for (int i = 0; i < 2; i++)
                {
                    int iOpenPort = 0;   //EQP1 : 7, 8     EQP2 : 9, 10
                    if (EQPNO == 1)
                    {
                        iOpenPort = 7007 + i;
                    }
                    else if (EQPNO == 2)
                    {
                        iOpenPort = 7009 + i;
                    }
                    else
                    {
                        oMain.ExceptionOccured("EQP NO 정보 이상 기준 정보 확인 필요", "CSECSManager");
                        return;
                    }
                    SecsProperties oProp = new SecsProperties();
                    CHSMS          oHSMS = new CHSMS(EQPID + "_" + iOpenPort.ToString(), oProp);

                    oProp.Library             = new SecsLibrary();
                    oProp.Library.Description = "LIBRARY";
                    string strFileName = "OGS_ACTIVE_" + iOpenPort.ToString() + ".lic";
                    string path        = AppDomain.CurrentDomain.SetupInformation.ApplicationBase + @"\Config\" + strFileName;
                    oHSMS.Load(path);

                    //PORT NO로 EQP 관련 정보를 찾을 수 있도록 고정화 시킴.
                    //개별 파일로 Load하게 수정 해당 코드 주석
                    //oHSMS.Properties.IsActive = true;
                    //oHSMS.m_RemotePort = iOpenPort;
                    //oHSMS.m_LocalPort = iOpenPort;
                    //oHSMS.m_RemoteIP = oMain.SystemConfig.IP_ADDRESS;
                    //oHSMS.Properties.RemotePort = iOpenPort;


                    AddEvent(oHSMS);

                    HSMSCollection.Add(iOpenPort.ToString(), oHSMS);
                }
            }
            else
            {
                return;
            }
        }
Exemplo n.º 4
0
        public void Reconnect(string EQPID)
        {
            try
            {
                int SecsPort_01 = -1;
                int SecsPort_02 = -1;
                switch (EQPID)
                {
                case "AF01":
                    SecsPort_01 = 7001;
                    SecsPort_02 = 7002;
                    break;

                case "AF02":
                    SecsPort_01 = 7003;
                    SecsPort_02 = 7004;
                    break;

                case "AF03":
                    SecsPort_01 = 7005;
                    SecsPort_02 = 7006;
                    break;

                case "LAMI01":
                case "FPC01":
                    SecsPort_01 = 7007;
                    SecsPort_02 = 7008;
                    break;

                case "LAMI02":
                case "FPC02":
                    SecsPort_01 = 7009;
                    SecsPort_02 = 7010;
                    break;

                case "FPC":
                    SecsPort_01 = 7011;
                    SecsPort_02 = 7011;
                    break;

                case "GIB":
                    SecsPort_01 = 7021;
                    SecsPort_02 = 7022;
                    break;
                }
                CHSMS oReconHSMS = null;

                foreach (CHSMS oHSMS in HSMSCollection.Values)
                {
                    //if (oHSMS.CurrentState == HsmsStateConst.Selected)
                    //{
                    if (SecsPort_01 != -1)
                    {
                        if (GetHSMS(SecsPort_01) != null)
                        {
                            oReconHSMS = GetHSMS(SecsPort_01);
                            break;
                        }
                    }
                    if (SecsPort_02 != -1)
                    {
                        if (GetHSMS(SecsPort_02) != null)
                        {
                            oReconHSMS = GetHSMS(SecsPort_02);
                            break;
                        }
                    }
                    //}
                }

                if (oReconHSMS != null)
                {
                    oReconHSMS.Close();
                    System.Threading.Thread.Sleep(300);
                    oReconHSMS.Open();
                }
            }
            catch { }
        }
Exemplo n.º 5
0
 public void SendS6F3(string EQPID, string LOTID, string CSTID, string GLSID, string TYPE, string DATA, CHSMS oHSMS)
 {
     if (oHSMS.CurrentState == HsmsStateConst.Selected)
     {
         oHSMS.S6F3.LOT_ID(LOTID);
         oHSMS.S6F3.CST_ID(CSTID);
         oHSMS.S6F3.GLASS_ID(GLSID);
         oHSMS.S6F3.TYPE(TYPE);
         oHSMS.S6F3.DATA(DATA);
         oHSMS.S6F3.Send();
     }
 }