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); }
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)); } } }
//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; } }
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 { } }
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(); } }