public void SetErr(Eidentify_error e, string sErrorNumber) { ErrorMessageStruct temp = new ErrorMessageStruct(e, sErrorNumber); ErrorList[ErrorCount] = temp; //언젠간 데이터 닐라고 리셋해야야됨 기본셋 1000개 ErrorCount++; SetTable(temp); ErrMessageFormShowEvent(); }
//DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff") public ErrorMessageStruct(Eidentify_error e, string ErrorNumber) { int index = (int)e; //오류번호 //CyborgRobot_HTR = 0, //Nano300 = 1, //Aligner_PA300C = 2, //CyMechsRobot = 3, int errNumber = 0; Int32.TryParse(ErrorNumber, out errNumber); if (errNumber == 0) { mErrorTarget = e.ToString(); mbClearError = false; mErrorCount = Test.GlobalVariable.Instance.ErrorCount; mErrorCauseTime = DateTime.Now.ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss"); mErrorNumber = ErrorNumber; Test.ErrorPopUpmaMassage.Instance.mErrorNumber = ErrorNumber; Test.ErrorPopUpmaMassage.Instance.mbClearError = mbClearError; Test.ErrorPopUpmaMassage.Instance.mErrorAction = "알수없는 에러"; Test.ErrorPopUpmaMassage.Instance.mErrorCause = "알수없는 에러"; Test.ErrorPopUpmaMassage.Instance.mErrorCauseTime = mErrorCauseTime; Test.ErrorPopUpmaMassage.Instance.mErrorCount = mErrorCount; Test.ErrorPopUpmaMassage.Instance.mErrorEndTime = mErrorEndTime; Test.ErrorPopUpmaMassage.Instance.mErrorMessage = "알수없는 에러"; Test.ErrorPopUpmaMassage.Instance.mErrorTarget = mErrorTarget; return; //숫자변경못햇을시 //에러남기거나 무언가해야함 } string errorNumber = string.Format("{0:D5}", errNumber); string Path_CyborgRobot_HTR = @"ErrorList\CyborgRobot_HTR.txt"; //ok string Path_Nano300 = @"ErrorList\Nano300.txt"; //ok string Path_Aligner_PA300C = @"ErrorList\Aligner_PA300C.txt"; //ok string Path_CyMechsRobot = @"ErrorList\CyMechsRobot.txt"; //ok string[] pathArray = { Path_CyborgRobot_HTR, Path_Nano300, Path_Aligner_PA300C, Path_CyMechsRobot }; string errFilePath = pathArray[index]; // 사용할 파일 path string[] temp = new string[4]; string message = ""; string cause = ""; string action = ""; string[] StrArray_ErrorList = null; if (File.Exists(errFilePath)) // 파일이존재한다면 { try //파읽있는중 혹시나 오류생길 수 있음 { StrArray_ErrorList = File.ReadAllLines(errFilePath); } catch (Exception ex) { //로그남겨야함 } if (StrArray_ErrorList == null) { return; //파일 못읽었다면 그냥 리턴 } //로그남겨야함 //어떤 오류창이라도 띄워야함, foreach (var i in StrArray_ErrorList) { //ErrorNumber 포맷에 맞게 변경해야함 -> 00001 if (i.Contains(errorNumber)) // 에러번호 //ErrorString -> 번호,message,cause,action 순으로 이루어짐 { temp = i.Split(','); message = temp[1]; cause = temp[2]; action = temp[3]; break; } if (!i.Contains(errorNumber)) { temp = i.Split(','); message = "정의되지않은에러"; cause = "정의되지않은에러"; action = "정의되지않은에러"; } if (e == 0 && errNumber < 0 && errNumber > -4101) //CyborgRobot_HTR 이고 해당범위라면 { //PA Controller Error if (errNumber <= -200 && errNumber >= -299) // Standard System Errors { message = "Standard System Errors"; } if (errNumber <= -300 && errNumber >= -499) // Hardware Device Related Errors { message = "Hardware Device Related Errors"; } if (errNumber <= -500 && errNumber >= -699) // Input and Output Errors { message = "nput and Output Errors"; } if (errNumber <= -700 && errNumber >= -999) // Language Related Errors { message = "Language Related Errors"; } if (errNumber <= -1000 && errNumber >= -1499) // Robot Related Errors { message = "Robot Related Errors"; } if (errNumber <= -1500 && errNumber >= -1699) // Configuration Parameter Database, Datalogger, and CPU Monitor Errors { message = "Configuration Parameter Database, Datalogger, and CPU Monitor Errors"; } if (errNumber <= -1500 && errNumber >= -1699) // Controller Errors { message = "Controller Errors"; } if (errNumber <= -1700 && errNumber >= -1799) // Network, Socket, and Communication Errors { message = "Network, Socket, and Communication Errors"; } if (errNumber <= -3000 && errNumber >= -3999) // Servo Related Errors { message = "Servo Related Errors"; } if (errNumber <= -4000 && errNumber >= -4100) // Vision Related Errors { message = "Vision Related Errors"; } cause = "PA Controller 관련 에러 입니다."; action = "PA Controller 를 확인하십시오."; break; } } } mErrorTarget = e.ToString(); mbClearError = false; mErrorNumber = errorNumber; mErrorCount = Test.GlobalVariable.Instance.ErrorCount; mErrorCauseTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); mErrorMessage = message; mErrorCause = cause; mErrorAction = action; Test.ErrorPopUpmaMassage.Instance.mbClearError = mbClearError; Test.ErrorPopUpmaMassage.Instance.mErrorAction = mErrorAction; Test.ErrorPopUpmaMassage.Instance.mErrorCause = mErrorCause; Test.ErrorPopUpmaMassage.Instance.mErrorCauseTime = mErrorCauseTime; Test.ErrorPopUpmaMassage.Instance.mErrorCount = mErrorCount; Test.ErrorPopUpmaMassage.Instance.mErrorEndTime = mErrorEndTime; Test.ErrorPopUpmaMassage.Instance.mErrorMessage = mErrorMessage; Test.ErrorPopUpmaMassage.Instance.mErrorNumber = mErrorNumber; Test.ErrorPopUpmaMassage.Instance.mErrorTarget = mErrorTarget; }