Ongoing80 #4220 CF AOI Review 알람 추가
1. 모터와 15초이상 통신 불가시 알람 발생
2. 현재사용중인 Signal File이 업로드 실패하는 경우도 더러 발생하여 Raw, MicroImage, ReviewImage, Signal 파일 중 2개이상이 실패시 알람 발생
3. 물류데이터내 생산코드가 RW가 아닌글래스 중 리뷰스케쥴링 후 1개이상 좌표를 찍어야 하지만 0개 찍은경우 설정한 n번째 글래스에서 발생
| | |
| | | |
| | | //if(1) ReadMuraFile(pData); 211012 KJG - QD Macro 개별 업로드 하므로 Macro 데이터 적제 제거 요청 |
| | | |
| | | if(WriteAOIFile(pData) == FALSE) |
| | | return FALSE; |
| | | |
| | | //210126 CJH - Review End에서만 RTMS 결과파일 생성하도록 변경 |
| | | if (m_GlassRawRTMS.WriteAOIFile(pData) == FALSE) |
| | | return FALSE; |
| | | |
| | | if(1) |
| | | if (1) |
| | | { |
| | | _grmGlassData* pGlassData = pData->GetGlassData(); |
| | | |
| | |
| | | SendMessageFTPUploadImage(pGlassData, FTPCMD_MURA_IMAGE);//0405nwh |
| | | |
| | | } |
| | | |
| | | if(WriteAOIFile(pData) == FALSE) |
| | | return FALSE; |
| | | |
| | | //210126 CJH - Review End에서만 RTMS 결과파일 생성하도록 변경 |
| | | if (m_GlassRawRTMS.WriteAOIFile(pData) == FALSE) |
| | | return FALSE; |
| | | |
| | | |
| | | |
| | | |
| | | |
| | |
| | | |
| | | BOOL CFTPThreadPool::Process_UploadAck(int nResultCode, const CFTPUploadParam& uploadParam) |
| | | { |
| | | if (uploadParam.m_nSendResultCode==0) |
| | | { |
| | | return TRUE; |
| | | } |
| | | // if (uploadParam.m_nSendResultCode==0) |
| | | // { |
| | | // return TRUE; |
| | | // } |
| | | |
| | | HWND hWnd = uploadParam.GetSenderWnd(); |
| | | //HWND hWnd = uploadParam.GetSenderWnd(); |
| | | HWND hWnd = ::FindWindow(NULL, "ReviewSystem"); |
| | | if (hWnd==NULL) |
| | | { |
| | | return FALSE; |
| | |
| | | m_nAutoEnable = 0; |
| | | m_nAutoEnablePrev = 0; |
| | | |
| | | /*< LYW 20220704 - #4220 ADD Start >*/ |
| | | m_nMotorAlive = 0; |
| | | m_nMotorAlivePrev = 0; |
| | | dwLastAliveTick = GetTickCount(); |
| | | /*< LYW 20220704 - #4220 ADD End >*/ |
| | | |
| | | // wsi signal |
| | | m_nWsiMotionEndPrev = 0; |
| | | |
| | |
| | | |
| | | if (m_nAxisCount<1) return; |
| | | |
| | | //Alive |
| | | if (ReadAddressValue(50, m_nMotorAlive)) |
| | | { |
| | | if (m_nMotorAlivePrev != m_nMotorAlive) |
| | | { |
| | | dwLastAliveTick = GetTickCount(); |
| | | } |
| | | m_nAutoEnablePrev = m_nAutoEnable; |
| | | |
| | | if (GetTickCount() - dwLastAliveTick >15000 && dwLastAliveTick != 0) |
| | | { |
| | | m_pMC2P->IMC2P_SendMotorAliveErrorAlram(); |
| | | m_pMC2P->IMC2P_DisplayMessage(m_nIndex, _T("Motor Alive Error!")); |
| | | dwLastAliveTick = GetTickCount(); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | m_pMC2P->IMC2P_SendMotorAliveErrorAlram(); |
| | | m_pMC2P->IMC2P_DisplayMessage(m_nIndex, _T("Motor Alive Read Fail!")); |
| | | dwLastAliveTick = GetTickCount(); |
| | | } |
| | | |
| | | // auto enable |
| | | const CMotorCommonAddr *pAddr = m_ControlInfo.GetMotorCommonAddr(); |
| | | if (pAddr && pAddr->m_nAllAutoEnableAddr!=MOTOR_ADDRESS_NONE) |
| | |
| | | m_bUpdateImageOriginal = FALSE; |
| | | m_nImageRotate = 0; |
| | | m_nImageFlip = 0; |
| | | |
| | | m_nZeroReviewAlarm = 0; |
| | | m_strZeroReviewAlarmExcept = _T(""); |
| | | } |
| | | |
| | | void CNetworkInfo::SetInfo(const CNetworkInfo& rhs) |
| | |
| | | m_bUpdateImageOriginal = rhs.m_bUpdateImageOriginal; |
| | | m_nImageRotate = rhs.m_nImageRotate; |
| | | m_nImageFlip = rhs.m_nImageFlip; |
| | | |
| | | m_nZeroReviewAlarm = rhs.m_nZeroReviewAlarm; |
| | | m_strZeroReviewAlarmExcept = rhs.m_strZeroReviewAlarmExcept; |
| | | } |
| | | |
| | | void CNetworkInfo::GetInfo(CNetworkInfo& rhs) |
| | |
| | | rhs.m_bUpdateImageOriginal = m_bUpdateImageOriginal; |
| | | rhs.m_nImageRotate = m_nImageRotate; |
| | | rhs.m_nImageFlip = m_nImageFlip; |
| | | |
| | | rhs.m_nZeroReviewAlarm = m_nZeroReviewAlarm; |
| | | rhs.m_strZeroReviewAlarmExcept = m_strZeroReviewAlarmExcept; |
| | | } |
| | |
| | | |
| | | strItem.Format(_T("SYS_NETWORK_SAVE_ORIGINAL_IMAGE")); |
| | | macroFile.SetItem(strItem, networkInfo.m_bUpdateImageOriginal); |
| | | |
| | | strItem.Format(_T("SYS_NETWORK_REVIEW_ZERO_ALARM_CONDITION")); |
| | | macroFile.SetItem(strItem, networkInfo.m_nZeroReviewAlarm); |
| | | |
| | | strItem.Format(_T("SYS_NETWORK_REVIEW_ZERO_ALARM_EXCEPTION")); |
| | | macroFile.SetItem(strItem, networkInfo.m_strZeroReviewAlarmExcept); |
| | | } |
| | | |
| | | void CSys_NetworkManager::GetProfile(CMacroFile& macroFile) |
| | |
| | | strItem.Format(_T("SYS_NETWORK_SAVE_ORIGINAL_IMAGE")); |
| | | macroFile.GetItem(strItem, networkInfo.m_bUpdateImageOriginal); |
| | | |
| | | strItem.Format(_T("SYS_NETWORK_REVIEW_ZERO_ALARM_CONDITION")); |
| | | macroFile.GetItem(strItem, networkInfo.m_nZeroReviewAlarm, 0); |
| | | |
| | | strItem.Format(_T("SYS_NETWORK_REVIEW_ZERO_ALARM_EXCEPTION")); |
| | | macroFile.GetItem(strItem, networkInfo.m_strZeroReviewAlarmExcept, _T("")); |
| | | |
| | | m_networkInfo.SetInfo(networkInfo); |
| | | } |
| | |
| | | |
| | | switch(pCopyDataStruct->dwData) |
| | | { |
| | | case COPYDATA_RAW_DOWNLOAD_ACK: |
| | | case COPYDATA_RAW_UPLOAD_ACK: |
| | | case COPYDATA_LOT_UPLOAD_ACK: |
| | | case COPYDATA_IMAGE_UPLOAD_ACK: |
| | | { |
| | | CFTPCopyDataParam ftpCopyDataParam; |
| | | |
| | | ftpCopyDataParam = *(static_cast<CFTPCopyDataParam*>(pCopyDataStruct->lpData)); |
| | | if (ftpCopyDataParam.m_nSendResultCode == FALSE) |
| | | { |
| | | CMainFrame* pMain = static_cast<CMainFrame*>(AfxGetMainWnd()); |
| | | CSequenceProcessor* pSequenceProcessor = pMain->IRP2P_GetSequenceProcessor(); |
| | | if (pSequenceProcessor == NULL) return FALSE; |
| | | pSequenceProcessor->sendUploadResult2SequenceProcessor(ftpCopyDataParam.m_nSendResultCode); |
| | | } |
| | | |
| | | } |
| | | break; |
| | | case COPYDATA_SYSTEMSETTING2REVIEWSYSTEM: |
| | | { |
| | | COPYDATA_SYSTEM2REV* pCopyData = (COPYDATA_SYSTEM2REV*)pCopyDataStruct->lpData; |
| | |
| | | g_pLog->DisplayMessage(_T("[WSI_%d] Send Motion End to WSI SUCCESS! [%02d][%02d]"), nWsiIndex, nModuleIndex, nWsiIndex); |
| | | } |
| | | |
| | | void CReviewInterface::IMC2P_SendMotorAliveErrorAlram() |
| | | { |
| | | IRP2P_GetSequenceProcessor()->SendSignalToSignalControl(PCControlSendSignalIndex_State, PCControlSend_Review_Motor_Communication_Fail, 1000); |
| | | |
| | | return; |
| | | } |
| | | |
| | | void CReviewInterface::IWC2P_SetScanEnd( int nIndex, int nPointIndex, int nPositionX, int nPositionY ) |
| | | { |
| | | int nModuleIndex=-1, nWsiIndex=-1; |
| | |
| | | #include "M_AutoDiagnosisManager/DiagnosisManager.h" |
| | | #include "DlgSelfDiagnosis.h" |
| | | |
| | | #include "FTPUploadParam.h" |
| | | |
| | | typedef std::vector<CMotorCalibrator> VectorMotorCalibrator; |
| | | typedef std::vector<CMotorCalibrator>::iterator VectorMotorCalibratorIt; |
| | | typedef std::vector<CMotorCalibrator>::const_iterator constVectorMotorCalibratorIt; |
| | |
| | | virtual void IMC2P_GantrySoftWareTrigger(int nIndex, int nGantryIdx, int nTrigger); |
| | | virtual void IMC2P_WsiGantrySoftWareTrigger(int nIndex, int nGantryIdx, int nTrigger); |
| | | virtual void IMC2P_UpdateWsiMotionEnd(int nIndex, int nGantryIdx); |
| | | virtual void IMC2P_SendMotorAliveErrorAlram(); |
| | | virtual BOOL IMC2P_GetUseWsi(); |
| | | |
| | | // WSI Controller 2 parent |
| | |
| | | <ClCompile> |
| | | <Optimization>Disabled</Optimization> |
| | | <IntrinsicFunctions>true</IntrinsicFunctions> |
| | | <AdditionalIncludeDirectories>../include;../../Internal_Library/include;../../External_Library/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> |
| | | <AdditionalIncludeDirectories>../include;../../Internal_Library/include;../../External_Library/include;../../FTPUploader/FTPUploader;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> |
| | | <PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
| | | <MinimalRebuild>false</MinimalRebuild> |
| | | <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> |
| | |
| | | virtual void SetEndTickCount(DWORD dwTick) = 0; |
| | | virtual DWORD GetStartTickCount() = 0; |
| | | virtual DWORD GetEndTickCount() = 0; |
| | | virtual void sendUploadResult2SequenceProcessor(int UploadResult) = 0; |
| | | |
| | | protected: |
| | | int m_nCheckWSIEnd; |
| | |
| | | { |
| | | m_bUseAFMHomePosition = TRUE; |
| | | m_nGlassCount = 0; |
| | | m_nStackZeroReviewCondition = 0; |
| | | m_nUploadResultFailCount = 0; |
| | | CDitGlassRawClient* pDitGlassRaw = CDitGlassRawClient::GetInstance(); |
| | | if(pDitGlassRaw->ConnectServer() == FALSE) |
| | | { |
| | |
| | | SetLastPointCheck(FALSE); |
| | | |
| | | SetReviewComplete(FALSE); |
| | | SetUploadResultFailCount(0); |
| | | |
| | | bFileFind = FALSE; |
| | | |
| | |
| | | CDlgDefocusList::GetInstance()->SetDefocusData(strTime,pGlassResult->m_strGlassID,pGlassResult->m_nDeFocusCount); |
| | | |
| | | } |
| | | |
| | | if (CheckZeroReviewAlarm() == FALSE && m_pSP2P->ISP2P_System_GetNetworkInfo()->m_nZeroReviewAlarm != 0) |
| | | { |
| | | STransferData* pTransferData = m_pSP2P->ISP2P_GetCurrentTransferData(); |
| | | if (pTransferData->strProdType != m_pSP2P->ISP2P_System_GetNetworkInfo()->m_strZeroReviewAlarmExcept) |
| | | { |
| | | m_nStackZeroReviewCondition++; |
| | | if (m_nStackZeroReviewCondition >= m_pSP2P->ISP2P_System_GetNetworkInfo()->m_nZeroReviewAlarm) |
| | | { |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("Zero Review Alarm! %d ea Glass Is Zero Review!"), m_nStackZeroReviewCondition); |
| | | SendSignalToSignalControl(PCControlSendSignalIndex_State, PCControlSend_Review_0Count_Alarm, 1000); |
| | | m_nStackZeroReviewCondition = 0; |
| | | } |
| | | } |
| | | else m_nStackZeroReviewCondition = 0; |
| | | } |
| | | else m_nStackZeroReviewCondition = 0; |
| | | |
| | | /*< LYW 20211109 - #3662 Delete Start >*/ |
| | | // g_pLog->DisplayMessage(_T("History map Start")); |
| | |
| | | |
| | | return; |
| | | } |
| | | |
| | | BOOL CSequenceProcessor_CPJT::CheckZeroReviewAlarm() |
| | | { |
| | | CGlassResult* pGlassResult = m_pSP2P->ISP2P_GetCurrentGlassResult(); |
| | | if (pGlassResult == NULL) return FALSE; |
| | | |
| | | int TotalCount = 0; |
| | | |
| | | //Defect |
| | | const VectorReviewResult *pVecReviewResult = pGlassResult->GetVectorReviewResult(); |
| | | if (pVecReviewResult != NULL) |
| | | { |
| | | for (constVectorReviewResultIt it = pVecReviewResult->begin(); it != pVecReviewResult->end(); it++) |
| | | { |
| | | const CReviewResult *pReviewResult = static_cast<const CReviewResult*>(&(*it)); |
| | | |
| | | TotalCount += pReviewResult->m_vecSReviewResult.size(); |
| | | |
| | | for (constVectorSReviewResultIt its = pReviewResult->m_vecSReviewResult.begin(); its != pReviewResult->m_vecSReviewResult.end(); its++) |
| | | { |
| | | if (its->nResultCode > ReviewResult_None) |
| | | { |
| | | return TRUE; |
| | | } |
| | | else |
| | | { |
| | | continue; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | //DefectWSI |
| | | const VectorReviewResult *pVecWsiResult = pGlassResult->GetVectorWsiResult(); |
| | | if (pVecWsiResult != NULL) |
| | | { |
| | | for (constVectorReviewResultIt it = pVecWsiResult->begin(); it != pVecWsiResult->end(); it++) |
| | | { |
| | | const CReviewResult *pWsiResult = static_cast<const CReviewResult*>(&(*it)); |
| | | |
| | | TotalCount += pWsiResult->m_vecSReviewResult.size(); |
| | | |
| | | for (constVectorSReviewResultIt its = pWsiResult->m_vecSReviewResult.begin(); its != pWsiResult->m_vecSReviewResult.end(); its++) |
| | | { |
| | | if (its->nResultCode > WsiResult_None) |
| | | { |
| | | return TRUE; |
| | | } |
| | | else |
| | | { |
| | | continue; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | //User Review |
| | | const VectorReviewResult *pVecUserReviewResult = pGlassResult->GetVectorUserResult(); |
| | | if (pVecUserReviewResult != NULL) |
| | | { |
| | | for (constVectorReviewResultIt it = pVecUserReviewResult->begin(); it != pVecUserReviewResult->end(); it++) |
| | | { |
| | | const CReviewResult *pUserReviewResult = static_cast<const CReviewResult*>(&(*it)); |
| | | |
| | | TotalCount += pUserReviewResult->m_vecSReviewResult.size(); |
| | | |
| | | for (constVectorSReviewResultIt its = pUserReviewResult->m_vecSReviewResult.begin(); its != pUserReviewResult->m_vecSReviewResult.end(); its++) |
| | | { |
| | | if (its->nResultCode > ReviewResult_None) |
| | | { |
| | | return TRUE; |
| | | } |
| | | else |
| | | { |
| | | continue; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | //User WSI |
| | | const VectorReviewResult *pVecUserWsiResult = pGlassResult->GetVectorUserWsiResult(); |
| | | if (pVecUserWsiResult != NULL) |
| | | { |
| | | for (constVectorReviewResultIt it = pVecUserWsiResult->begin(); it != pVecUserWsiResult->end(); it++) |
| | | { |
| | | const CReviewResult *pUserWsiResult = static_cast<const CReviewResult*>(&(*it)); |
| | | |
| | | TotalCount += pUserWsiResult->m_vecSReviewResult.size(); |
| | | |
| | | for (constVectorSReviewResultIt its = pUserWsiResult->m_vecSReviewResult.begin(); its != pUserWsiResult->m_vecSReviewResult.end(); its++) |
| | | { |
| | | if (its->nResultCode > WsiResult_None) |
| | | { |
| | | return TRUE; |
| | | } |
| | | else |
| | | { |
| | | continue; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | if (TotalCount == 0) return TRUE; |
| | | |
| | | return FALSE; |
| | | } |
| | | |
| | | void CSequenceProcessor_CPJT::sendUploadResult2SequenceProcessor(int UploadResult) |
| | | { |
| | | int UploadResultFailCount = GetUploadResultFailCount(); |
| | | if (UploadResult == FALSE) |
| | | { |
| | | UploadResultFailCount++; |
| | | if (UploadResultFailCount >= 2) |
| | | { |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("ResultFile Upload Fail!")); |
| | | SendSignalToSignalControl(PCControlSendSignalIndex_State, PCControlSend_ResultData_Upload_Fail, 1000); |
| | | SetUploadResultFailCount(-1); |
| | | } |
| | | SetUploadResultFailCount(UploadResultFailCount); |
| | | } |
| | | } |
| | | |
| | | //#3358 KYH FDC ADD END |
| | | |
| | | DWORD CSequenceProcessor_CPJT::GetDiskUsage() |
| | |
| | | PCControlSend_RecipeASCEND, |
| | | PCControlSend_WSIError, |
| | | PCControlSend_Defoucs, |
| | | PCControlSend_Diagnosis //0412 자가진단 코드추가 |
| | | PCControlSend_Diagnosis, //0412 자가진단 코드추가 |
| | | /*< LYW 20220704 - #4220 ADD Start >*/ |
| | | PCControlSend_Review_Motor_Communication_Fail, |
| | | PCControlSend_ResultData_Upload_Fail, |
| | | PCControlSend_Review_0Count_Alarm |
| | | /*< LYW 20220704 - #4220 ADD End >*/ |
| | | }; |
| | | |
| | | enum PCControlRecvSignalState_WSI |
| | |
| | | int nReviewCount; |
| | | void SetReviewCount(int nCount) { nReviewCount = nCount; }; |
| | | int GetReviewCount() { return nReviewCount; }; |
| | | |
| | | void SetUploadResultFailCount(int nCount) { m_nUploadResultFailCount = nCount; }; |
| | | int GetUploadResultFailCount() { return m_nUploadResultFailCount; }; |
| | | //#3358 KYH FDC 데이터 전송 시점 개선 ADD START |
| | | virtual void MakeDVData2(); |
| | | //#3358 KYH FDC 데이터 전송 시점 개선 ADD END |
| | | BOOL CheckZeroReviewAlarm(); |
| | | virtual void sendUploadResult2SequenceProcessor(int UploadResult); |
| | | |
| | | int nHistoryCount = 0; |
| | | void SetHistoryCount(int nCount) { nHistoryCount = nCount; } |
| | |
| | | BOOL bLastPointEndCheck; |
| | | |
| | | BOOL bFileFind; |
| | | int m_nStackZeroReviewCondition; |
| | | int m_nUploadResultFailCount; |
| | | }; |
| | | |
| | |
| | | , m_strUploadDefectMapImagePath(_T("")) |
| | | , m_dUpdateImageScale(1.0) |
| | | , m_strWsiImagePath(_T("")) |
| | | , m_nZeroReviewAlarm(0) |
| | | , m_strZeroReviewAlarmExcept(_T("")) |
| | | { |
| | | m_nUpdateImageWidth = 1224; |
| | | m_nUpdateImageHeight = 1024; |
| | |
| | | DDX_Text(pDX, IDC_EDIT_SYS_NETWORK_UPLOAD_IMAGE_PATH, m_strUploadImagePath); |
| | | DDX_Text(pDX, IDC_EDIT_SYS_NETWORK_UPLOAD_DEFECTMAP_IMAGE_PATH, m_strUploadDefectMapImagePath); |
| | | |
| | | DDX_Text(pDX, IDC_EDIT_SYS_NETWORK_UPLOAD_IMAGE_WIDTH, m_nUpdateImageWidth); |
| | | DDX_Text(pDX, IDC_EDIT_SYS_NETWORK_UPLOAD_IMAGE_HEIGHT, m_nUpdateImageHeight); |
| | | DDX_Text(pDX, IDC_EDIT_SYS_NETWORK_UPLOAD_IMAGE_SIZE, m_nUpdateImageSize); |
| | | DDX_Text(pDX, IDC_EDIT_SYS_NETWORK_UPLOAD_IMAGE_START_QUALTY, m_nUpdateImageQuality); |
| | | DDX_Text(pDX, IDC_EDIT_SYS_NETWORK_UPLOAD_IMAGE_STEP_QUALTY, m_nUpdateImageStep); |
| | | DDX_Text(pDX, IDC_EDIT_SYS_NETWORK_UPLOAD_IMAGE_WIDTH, m_nUpdateImageWidth); |
| | | DDX_Text(pDX, IDC_EDIT_SYS_NETWORK_UPLOAD_IMAGE_HEIGHT, m_nUpdateImageHeight); |
| | | DDX_Text(pDX, IDC_EDIT_SYS_NETWORK_UPLOAD_IMAGE_SIZE, m_nUpdateImageSize); |
| | | DDX_Text(pDX, IDC_EDIT_SYS_NETWORK_UPLOAD_IMAGE_START_QUALTY, m_nUpdateImageQuality); |
| | | DDX_Text(pDX, IDC_EDIT_SYS_NETWORK_UPLOAD_IMAGE_STEP_QUALTY, m_nUpdateImageStep); |
| | | |
| | | DDX_Text(pDX, IDC_EDIT_SYS_NETWORK_UPLOAD_IMAGE_SCALE, m_dUpdateImageScale); |
| | | |
| | |
| | | DDX_Control(pDX, IDC_COMBO2, m_ctrlComboImageFlip); |
| | | DDX_Text(pDX, IDC_EDIT_SYS_NETWORK_WSI_IMAGE_PATH, m_strWsiImagePath); |
| | | DDV_MaxChars(pDX, m_strWsiImagePath, 255); |
| | | DDX_Text(pDX, IDC_EDIT_SYS_NETWORK_UPLOAD_ZERO_COUNT_ALARM_CONDITION, m_nZeroReviewAlarm); |
| | | DDX_Text(pDX, IDC_EDIT_SYS_NETWORK_UPLOAD_ZERO_COUNT_ALARM_CONDITION_2, m_strZeroReviewAlarmExcept); |
| | | } |
| | | |
| | | BEGIN_MESSAGE_MAP(CDlgNetwork, CDialog) |
| | |
| | | m_nImageRotate = pNetworkInfo->m_nImageRotate; |
| | | m_nImageFlip = pNetworkInfo->m_nImageFlip; |
| | | |
| | | m_nZeroReviewAlarm = pNetworkInfo->m_nZeroReviewAlarm; |
| | | m_strZeroReviewAlarmExcept = pNetworkInfo->m_strZeroReviewAlarmExcept; |
| | | |
| | | m_ctrlButtonUseSaveOrignalImage.SetCheck(m_bUpdateImageOriginal); |
| | | m_ctrlComboImageRotate.SetCurSel(m_nImageRotate); |
| | | m_ctrlComboImageFlip.SetCurSel(m_nImageFlip); |
| | |
| | | m_nImageRotate = 0; |
| | | m_nImageFlip = -1; |
| | | |
| | | m_nZeroReviewAlarm = 0; |
| | | m_strZeroReviewAlarmExcept = _T(""); |
| | | |
| | | UpdateData(FALSE); |
| | | } |
| | | |
| | |
| | | pNetworkInfo->m_bUpdateImageOriginal = m_bUpdateImageOriginal; |
| | | pNetworkInfo->m_nImageRotate = m_nImageRotate; |
| | | pNetworkInfo->m_nImageFlip = m_nImageFlip; |
| | | |
| | | pNetworkInfo->m_nZeroReviewAlarm = m_nZeroReviewAlarm; |
| | | pNetworkInfo->m_strZeroReviewAlarmExcept = m_strZeroReviewAlarmExcept; |
| | | } |
| | | } |
| | | m_ctrlEditImageHeight.EnableWindow(TRUE); |
| | |
| | | CComboBox m_ctrlComboImageRotate; |
| | | CComboBox m_ctrlComboImageFlip; |
| | | |
| | | int m_nZeroReviewAlarm; |
| | | CString m_strZeroReviewAlarmExcept; |
| | | }; |
| | |
| | | RTEXT "Upload DefectMap Image File Path :",IDC_STATIC,7,111,93,14,SS_CENTERIMAGE |
| | | RTEXT "WSI Image File Path :",IDC_STATIC,7,127,93,14,SS_CENTERIMAGE |
| | | EDITTEXT IDC_EDIT_SYS_NETWORK_WSI_IMAGE_PATH,105,129,267,14,ES_AUTOHSCROLL |
| | | RTEXT "Review 0 Count Alarm : ",IDC_STATIC,15,289,85,14,SS_CENTERIMAGE |
| | | GROUPBOX "Alarm Condition",IDC_STATIC,7,282,365,135 |
| | | EDITTEXT IDC_EDIT_SYS_NETWORK_UPLOAD_ZERO_COUNT_ALARM_CONDITION,105,290,55,14,ES_AUTOHSCROLL |
| | | LTEXT "매 이상 연속 0리뷰시 발생",IDC_STATIC,162,289,85,14,SS_CENTERIMAGE |
| | | EDITTEXT IDC_EDIT_SYS_NETWORK_UPLOAD_ZERO_COUNT_ALARM_CONDITION_2,249,289,55,14,ES_AUTOHSCROLL |
| | | LTEXT "일 경우 제외",IDC_STATIC,305,290,59,14,SS_CENTERIMAGE |
| | | END |
| | | |
| | | IDD_DIALOG_SYS_SETTING_SYSTEM_GANTRY DIALOGEX 0, 0, 363, 345 |
| | |
| | | 0 |
| | | END |
| | | |
| | | IDD_DIALOG_SYS_SETTING_NETWORK AFX_DIALOG_LAYOUT |
| | | BEGIN |
| | | 0 |
| | | END |
| | | |
| | | |
| | | ///////////////////////////////////////////////////////////////////////////// |
| | | // |
| | |
| | | #define IDC_EDIT_SYS_NETWORK_UPLOAD_DEFECTMAP_IMAGE_PATH2 1039 |
| | | #define IDC_EDIT_SYS_NETWORK_WSI_IMAGE_PATH 1039 |
| | | #define IDC_BUTTON_SYS_SYSTEM_LIGHT_RESET 1040 |
| | | #define IDC_EDIT_SYS_NETWORK_UPLOAD_ZERO_COUNT_ALARM_CONDITION 1040 |
| | | #define IDC_BUTTON_SYS_SYSTEM_LIGHT_APPLY 1041 |
| | | #define IDC_EDIT_SYS_NETWORK_UPLOAD_ZERO_COUNT_ALARM_CONDITION_2 1041 |
| | | #define IDC_GRID_SYSTEM_LIGHT_INFO 1042 |
| | | #define IDC_EDIT_SYS_SG_GANTRY_IDX 1043 |
| | | #define IDC_EDIT_SYS_SG_HEADER_IDX 1044 |
| | |
| | | // |
| | | #ifdef APSTUDIO_INVOKED |
| | | #ifndef APSTUDIO_READONLY_SYMBOLS |
| | | #define _APS_NEXT_RESOURCE_VALUE 145 |
| | | #define _APS_NEXT_RESOURCE_VALUE 146 |
| | | #define _APS_NEXT_COMMAND_VALUE 32771 |
| | | #define _APS_NEXT_CONTROL_VALUE 1094 |
| | | #define _APS_NEXT_SYMED_VALUE 107 |
| | |
| | | long m_nAutoEnable; |
| | | long m_nAutoEnablePrev; |
| | | |
| | | /*< LYW 20220704 - #4220 ADD Start >*/ |
| | | long m_nMotorAlive; |
| | | long m_nMotorAlivePrev; |
| | | DWORD dwLastAliveTick; |
| | | /*< LYW 20220704 - #4220 ADD End >*/ |
| | | |
| | | // wsi signal |
| | | long m_nWsiMotionEndPrev; |
| | | BOOL m_bUseWsi; |
| | |
| | | virtual void IMC2P_GantrySoftWareTrigger(int nIndex, int nGantryIdx, int nTrigger) = 0; |
| | | virtual void IMC2P_WsiGantrySoftWareTrigger(int nIndex, int nGantryIdx, int nTrigger) = 0; |
| | | virtual void IMC2P_UpdateAutoEnable(int nIndex, int nAutoEnable){return;}; |
| | | virtual void IMC2P_SendMotorAliveErrorAlram() = 0; |
| | | virtual void IMC2P_UpdateWsiMotionEnd(int nIndex, int nGantryIdx) = 0; |
| | | virtual BOOL IMC2P_GetUseWsi() = 0; |
| | | }; |
| | |
| | | |
| | | int m_nImageRotate; |
| | | int m_nImageFlip; |
| | | |
| | | int m_nZeroReviewAlarm; |
| | | CString m_strZeroReviewAlarmExcept; |
| | | }; |
| | | |