// DlgCommand.cpp : 구현 파일입니다.
|
//
|
|
#include "stdafx.h"
|
#include "ReviewSystem.h"
|
#include "DlgCommand.h"
|
|
#include "MainFrm.h" //0420 종료버튼 추가
|
|
#include "CHReviewSetting/SystemInfo.h"
|
|
// CDlgCommand 대화 상자입니다.
|
|
IMPLEMENT_DYNAMIC(CDlgCommand, CDialog)
|
|
CDlgCommand::CDlgCommand(CWnd* pParent /*=NULL*/)
|
: CDialog(CDlgCommand::IDD, pParent)
|
{
|
m_pDC2P = NULL;
|
m_nMachineType = -1;
|
}
|
|
CDlgCommand::~CDlgCommand()
|
{
|
}
|
|
void CDlgCommand::DoDataExchange(CDataExchange* pDX)
|
{
|
CDialog::DoDataExchange(pDX);
|
DDX_Control(pDX, IDC_STATIC_SIGNAL_SIGNAL_LOADING, m_ctrlSignalLoading);
|
DDX_Control(pDX, IDC_STATIC_SIGNAL_SIGNAL_ALIGN_START, m_ctrlSignalAlignStart);
|
DDX_Control(pDX, IDC_STATIC_SIGNAL_SIGNAL_READ_RAWFILE, m_ctrlSignalReadRawFile);
|
DDX_Control(pDX, IDC_STATIC_SIGNAL_SIGNAL_REVIEW_START, m_ctrlSignalReviewStart);
|
DDX_Control(pDX, IDC_STATIC_SIGNAL_SIGNAL_REVIEW_END, m_ctrlSignalReviewEnd);
|
DDX_Control(pDX, IDC_STATIC_SIGNAL_SIGNAL_UNLOADING, m_ctrlSignalUnloading);
|
DDX_Control(pDX, IDC_STATIC_DATE_TIME, m_ctrlDateTime);
|
DDX_Control(pDX, IDC_BUTTON_PROGRAMEXIT, m_ButtonExit);
|
}
|
|
|
BEGIN_MESSAGE_MAP(CDlgCommand, CDialog)
|
ON_BN_CLICKED(IDOK, &CDlgCommand::OnBnClickedOk)
|
ON_BN_CLICKED(IDCANCEL, &CDlgCommand::OnBnClickedCancel)
|
ON_WM_TIMER()
|
#if REVIEW_SIMULATION_TEST_ENABLE
|
ON_STN_DBLCLK(IDC_STATIC_SIGNAL_SIGNAL_LOADING, &CDlgCommand::OnStnDblclickStaticPlcSignalLoading)
|
ON_STN_DBLCLK(IDC_STATIC_SIGNAL_SIGNAL_ALIGN_START, &CDlgCommand::OnStnDblclickStaticPlcSignalAlignStart)
|
ON_STN_DBLCLK(IDC_STATIC_SIGNAL_SIGNAL_READ_RAWFILE, &CDlgCommand::OnStnDblclickStaticPlcSignalReadRawFile)
|
ON_STN_DBLCLK(IDC_STATIC_SIGNAL_SIGNAL_REVIEW_START, &CDlgCommand::OnStnDblclickStaticPlcSignalReviewStart)
|
ON_STN_DBLCLK(IDC_STATIC_SIGNAL_SIGNAL_REVIEW_END, &CDlgCommand::OnStnDblclickStaticPlcSignalReviewEnd)
|
ON_STN_DBLCLK(IDC_STATIC_SIGNAL_SIGNAL_UNLOADING, &CDlgCommand::OnStnDblclickStaticPlcSignalUnloading)
|
#endif
|
ON_MESSAGE(UM_SIGNAL_SIGNAL_UPDATE, &CDlgCommand::OnPlcSignalUpdate)
|
ON_MESSAGE(UM_PROCESS_STATUS_UPDATE, &CDlgCommand::OnProcessStatusUpdate)
|
ON_STN_DBLCLK(IDC_STATIC_DATE_TIME, &CDlgCommand::OnStnDblclickStaticDateTime)
|
ON_WM_ERASEBKGND()
|
ON_WM_CTLCOLOR()
|
ON_BN_CLICKED(IDC_BUTTON_PROGRAMEXIT, &CDlgCommand::OnBnClickedButtonProgramexit)
|
END_MESSAGE_MAP()
|
|
|
// CDlgCommand 메시지 처리기입니다.
|
|
void CDlgCommand::OnBnClickedOk()
|
{
|
// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
|
//OnOK();
|
}
|
|
void CDlgCommand::OnBnClickedCancel()
|
{
|
// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
|
// OnCancel();
|
}
|
|
BOOL CDlgCommand::OnInitDialog()
|
{
|
CDialog::OnInitDialog();
|
|
// TODO: 여기에 추가 초기화 작업을 추가합니다.
|
CString strFont = _T("MS Sans Serif");
|
m_ctrlSignalLoading.SetFontStatic(strFont, 9, RGB(240,240,240), FS_CENTER | FS_BOLD);
|
m_ctrlSignalLoading.SetBackground(RGB(10,10,10));
|
m_ctrlSignalLoading.SetWindowText(_T("LOADING"));
|
|
m_ctrlSignalAlignStart.SetFontStatic(strFont, 9, RGB(240,240,240), FS_CENTER | FS_BOLD);
|
m_ctrlSignalAlignStart.SetBackground(RGB(10,10,10));
|
m_ctrlSignalAlignStart.SetWindowText(_T("ALIGN START"));
|
|
m_ctrlSignalReadRawFile.SetFontStatic(strFont, 9, RGB(240,240,240), FS_CENTER | FS_BOLD);
|
m_ctrlSignalReadRawFile.SetBackground(RGB(10,10,10));
|
m_ctrlSignalReadRawFile.SetWindowText(_T("READRAWFILE"));
|
|
m_ctrlSignalReviewStart.SetFontStatic(strFont, 9, RGB(240,240,240), FS_CENTER | FS_BOLD);
|
m_ctrlSignalReviewStart.SetBackground(RGB(10,10,10));
|
m_ctrlSignalReviewStart.SetWindowText(_T("REVIEW START"));
|
|
m_ctrlSignalReviewEnd.SetFontStatic(strFont, 9, RGB(240,240,240), FS_CENTER | FS_BOLD);
|
m_ctrlSignalReviewEnd.SetBackground(RGB(10,10,10));
|
m_ctrlSignalReviewEnd.SetWindowText(_T("REVIEW END"));
|
|
m_ctrlSignalUnloading.SetFontStatic(strFont, 9, RGB(240,240,240), FS_CENTER | FS_BOLD);
|
m_ctrlSignalUnloading.SetBackground(RGB(10,10,10));
|
m_ctrlSignalUnloading.SetWindowText(_T("UNLOADING"));
|
|
m_ctrlDateTime.SetFontStatic(_T("Arial"), 20, RGB(255,255,0), FS_BOLD | FS_ANTIALIAS | FS_CENTER);
|
m_ctrlDateTime.SetBackground(RGB(0,0,0));
|
m_ctrlDateTime.SetWindowText(_T(""));
|
|
m_ButtonExit.LoadBitmaps(IDB_BITMAP2, NULL, NULL, NULL); // 0421 kyh 종료 버튼 비트맵추가
|
m_ButtonExit.SizeToContent(); // 0421 kyh 종료 버튼 비트맵추가
|
|
SetTimer(100, 1000, NULL);
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
// 예외: OCX 속성 페이지는 FALSE를 반환해야 합니다.
|
}
|
|
void CDlgCommand::OnTimer(UINT_PTR nIDEvent)
|
{
|
// TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을 호출합니다.
|
CTime time =CTime::GetCurrentTime();
|
|
CString strTime = _T("");
|
strTime.Format(_T("%04d-%02d-%02d %02d:%02d:%02d"), time.GetYear(), time.GetMonth(), time.GetDay(), time.GetHour(), time.GetMinute(), time.GetSecond());
|
m_ctrlDateTime.SetWindowText(strTime);
|
|
CDialog::OnTimer(nIDEvent);
|
}
|
|
BOOL CDlgCommand::PreTranslateMessage(MSG* pMsg)
|
{
|
// TODO: 여기에 특수화된 코드를 추가 및/또는 기본 클래스를 호출합니다.
|
|
return CDialog::PreTranslateMessage(pMsg);
|
}
|
|
LRESULT CDlgCommand::OnProcessStatusUpdate(WPARAM wParam, LPARAM lParam)
|
{
|
switch (m_nLineType)
|
{
|
case SystemLine_CPJT:
|
{
|
switch(m_nProcessStatus)
|
{
|
case PCControlSignal_0: // Loading
|
m_ctrlSignalLoading.SetBackground(RGB(0,200,0));
|
|
m_ctrlSignalAlignStart.SetBackground(RGB(10,10,10));
|
m_ctrlSignalReadRawFile.SetBackground(RGB(10,10,10));
|
m_ctrlSignalReviewStart.SetBackground(RGB(10,10,10));
|
m_ctrlSignalReviewEnd.SetBackground(RGB(10,10,10));
|
m_ctrlSignalUnloading.SetBackground(RGB(10,10,10));
|
break;
|
|
case PCControlSignal_1: // Align Start
|
m_ctrlSignalAlignStart.SetBackground(RGB(0,200,0));
|
|
m_ctrlSignalLoading.SetBackground(RGB(10,10,10));
|
m_ctrlSignalReadRawFile.SetBackground(RGB(10,10,10));
|
m_ctrlSignalReviewStart.SetBackground(RGB(10,10,10));
|
m_ctrlSignalReviewEnd.SetBackground(RGB(10,10,10));
|
m_ctrlSignalUnloading.SetBackground(RGB(10,10,10));
|
break;
|
|
case PCControlSignal_2: // Align End
|
m_ctrlSignalReadRawFile.SetBackground(RGB(0,200,0));
|
|
m_ctrlSignalLoading.SetBackground(RGB(10,10,10));
|
m_ctrlSignalAlignStart.SetBackground(RGB(10,10,10));
|
m_ctrlSignalReviewStart.SetBackground(RGB(10,10,10));
|
m_ctrlSignalReviewEnd.SetBackground(RGB(10,10,10));
|
m_ctrlSignalUnloading.SetBackground(RGB(10,10,10));
|
break;
|
|
case PCControlSignal_3: // Review Start
|
m_ctrlSignalReviewStart.SetBackground(RGB(0,200,0));
|
|
m_ctrlSignalLoading.SetBackground(RGB(10,10,10));
|
m_ctrlSignalAlignStart.SetBackground(RGB(10,10,10));
|
m_ctrlSignalReadRawFile.SetBackground(RGB(10,10,10));
|
m_ctrlSignalReviewEnd.SetBackground(RGB(10,10,10));
|
m_ctrlSignalUnloading.SetBackground(RGB(10,10,10));
|
break;
|
|
case PCControlSignal_4: // Review End
|
m_ctrlSignalReviewEnd.SetBackground(RGB(0,200,0));
|
|
m_ctrlSignalLoading.SetBackground(RGB(10,10,10));
|
m_ctrlSignalAlignStart.SetBackground(RGB(10,10,10));
|
m_ctrlSignalReadRawFile.SetBackground(RGB(10,10,10));
|
m_ctrlSignalReviewStart.SetBackground(RGB(10,10,10));
|
m_ctrlSignalUnloading.SetBackground(RGB(10,10,10));
|
break;
|
|
case PCControlSignal_5: // Unloading
|
m_ctrlSignalUnloading.SetBackground(RGB(0,200,0));
|
|
m_ctrlSignalLoading.SetBackground(RGB(10,10,10));
|
m_ctrlSignalAlignStart.SetBackground(RGB(10,10,10));
|
m_ctrlSignalReadRawFile.SetBackground(RGB(10,10,10));
|
m_ctrlSignalReviewStart.SetBackground(RGB(10,10,10));
|
m_ctrlSignalReviewEnd.SetBackground(RGB(10,10,10));
|
break;
|
}
|
|
m_ctrlSignalLoading.Invalidate(TRUE);
|
m_ctrlSignalAlignStart.Invalidate(TRUE);
|
m_ctrlSignalReadRawFile.Invalidate(TRUE);
|
m_ctrlSignalReviewStart.Invalidate(TRUE);
|
m_ctrlSignalReviewEnd.Invalidate(TRUE);
|
m_ctrlSignalUnloading.Invalidate(TRUE);
|
}
|
break;
|
}
|
|
return 0;
|
}
|
|
LRESULT CDlgCommand::OnPlcSignalUpdate(WPARAM wParam, LPARAM lParam)
|
{
|
switch (m_nLineType)
|
{
|
case SystemLine_CPJT:
|
{
|
switch(m_nProcessStatus)
|
{
|
case PCControlSignal_0:
|
m_ctrlSignalLoading.SetBackground(RGB(0,200,0));
|
m_ctrlSignalAlignStart.SetBackground(RGB(10,10,10));
|
m_ctrlSignalReadRawFile.SetBackground(RGB(10,10,10));
|
m_ctrlSignalReviewStart.SetBackground(RGB(10,10,10));
|
m_ctrlSignalReviewEnd.SetBackground(RGB(10,10,10));
|
m_ctrlSignalUnloading.SetBackground(RGB(10,10,10));
|
break;
|
|
case PCControlSignal_1:
|
m_ctrlSignalAlignStart.SetBackground(RGB(0,200,0));
|
m_ctrlSignalLoading.SetBackground(RGB(10,10,10));
|
m_ctrlSignalReadRawFile.SetBackground(RGB(10,10,10));
|
m_ctrlSignalReviewStart.SetBackground(RGB(10,10,10));
|
m_ctrlSignalReviewEnd.SetBackground(RGB(10,10,10));
|
m_ctrlSignalUnloading.SetBackground(RGB(10,10,10));
|
break;
|
|
case PCControlSignal_2:
|
m_ctrlSignalReadRawFile.SetBackground(RGB(0,200,0));
|
|
m_ctrlSignalLoading.SetBackground(RGB(10,10,10));
|
m_ctrlSignalAlignStart.SetBackground(RGB(10,10,10));
|
m_ctrlSignalReviewStart.SetBackground(RGB(10,10,10));
|
m_ctrlSignalReviewEnd.SetBackground(RGB(10,10,10));
|
m_ctrlSignalUnloading.SetBackground(RGB(10,10,10));
|
break;
|
|
case PCControlSignal_3:
|
m_ctrlSignalReviewStart.SetBackground(RGB(0,200,0));
|
|
m_ctrlSignalLoading.SetBackground(RGB(10,10,10));
|
m_ctrlSignalAlignStart.SetBackground(RGB(10,10,10));
|
m_ctrlSignalReadRawFile.SetBackground(RGB(10,10,10));
|
m_ctrlSignalReviewEnd.SetBackground(RGB(10,10,10));
|
m_ctrlSignalUnloading.SetBackground(RGB(10,10,10));
|
break;
|
|
case PCControlSignal_4:
|
m_ctrlSignalReviewEnd.SetBackground(RGB(0,200,0));
|
|
m_ctrlSignalLoading.SetBackground(RGB(10,10,10));
|
m_ctrlSignalAlignStart.SetBackground(RGB(10,10,10));
|
m_ctrlSignalReadRawFile.SetBackground(RGB(10,10,10));
|
m_ctrlSignalReviewStart.SetBackground(RGB(10,10,10));
|
m_ctrlSignalUnloading.SetBackground(RGB(10,10,10));
|
break;
|
|
case PCControlSignal_5:
|
m_ctrlSignalUnloading.SetBackground(RGB(0,200,0));
|
|
m_ctrlSignalLoading.SetBackground(RGB(10,10,10));
|
m_ctrlSignalAlignStart.SetBackground(RGB(10,10,10));
|
m_ctrlSignalReadRawFile.SetBackground(RGB(10,10,10));
|
m_ctrlSignalReviewStart.SetBackground(RGB(10,10,10));
|
m_ctrlSignalReviewEnd.SetBackground(RGB(10,10,10));
|
break;
|
}
|
|
m_ctrlSignalLoading.Invalidate(TRUE);
|
m_ctrlSignalAlignStart.Invalidate(TRUE);
|
m_ctrlSignalReadRawFile.Invalidate(TRUE);
|
m_ctrlSignalReviewStart.Invalidate(TRUE);
|
m_ctrlSignalReviewEnd.Invalidate(TRUE);
|
m_ctrlSignalUnloading.Invalidate(TRUE);
|
}
|
break;
|
}
|
|
return 0;
|
}
|
|
|
void CDlgCommand::UpdateProcessStatus(int nLineType, int nMachineType, int nProcessStatus, const CGlassResult* pGlassResult)
|
{
|
if (pGlassResult==NULL) return;
|
|
m_nProcessStatus = nProcessStatus;
|
|
this->PostMessage(UM_PROCESS_STATUS_UPDATE);
|
}
|
|
|
void CDlgCommand::OnStnDblclickStaticPlcSignalLoading()
|
{
|
if (m_pDC2P)
|
{
|
m_ctrlSignalLoading.SetBackground(RGB(200,200,0));
|
switch(m_nLineType)
|
{
|
case SystemLine_CPJT:
|
m_pDC2P->DC2P_SetUserCommand(PCControlSignal_0);
|
break;
|
default:
|
m_pDC2P->DC2P_SetUserCommand(PCControlSignal_4);
|
break;
|
}
|
}
|
}
|
|
void CDlgCommand::OnStnDblclickStaticPlcSignalAlignStart()
|
{
|
if (m_pDC2P)
|
{
|
m_ctrlSignalAlignStart.SetBackground(RGB(200,200,0));
|
switch(m_nLineType)
|
{
|
case SystemLine_CPJT:
|
m_pDC2P->DC2P_SetUserCommand(PCControlSignal_1);
|
break;
|
default:
|
m_pDC2P->DC2P_SetUserCommand(PCControlSignal_5);
|
break;
|
}
|
}
|
|
}
|
|
void CDlgCommand::OnStnDblclickStaticPlcSignalReadRawFile()
|
{
|
if (m_pDC2P)
|
{
|
m_ctrlSignalReadRawFile.SetBackground(RGB(200,200,0));
|
switch(m_nLineType)
|
{
|
case SystemLine_CPJT:
|
m_pDC2P->DC2P_SetUserCommand(PCControlSignal_2);
|
break;
|
default:
|
m_pDC2P->DC2P_SetUserCommand(PCControlSignal_6);
|
break;
|
}
|
}
|
}
|
|
void CDlgCommand::OnStnDblclickStaticPlcSignalReviewStart()
|
{
|
if (m_pDC2P)
|
{
|
m_ctrlSignalReviewStart.SetBackground(RGB(200,200,0));
|
|
switch(m_nLineType)
|
{
|
case SystemLine_CPJT:
|
{
|
m_pDC2P->DC2P_SetUserCommand(PCControlSignal_3);
|
break;
|
}
|
default:
|
{
|
break;
|
}
|
}
|
}
|
}
|
|
void CDlgCommand::OnStnDblclickStaticPlcSignalReviewEnd()
|
{
|
if (m_pDC2P)
|
{
|
m_ctrlSignalReviewEnd.SetBackground(RGB(200,200,0));
|
|
switch(m_nLineType)
|
{
|
case SystemLine_CPJT:
|
{
|
m_pDC2P->DC2P_SetUserCommand(PCControlSignal_4);
|
break;
|
}
|
default:
|
{
|
break;
|
}
|
}
|
}
|
}
|
|
void CDlgCommand::OnStnDblclickStaticPlcSignalUnloading()
|
{
|
if (m_pDC2P)
|
{
|
m_ctrlSignalUnloading.SetBackground(RGB(200,200,0));
|
|
switch(m_nLineType)
|
{
|
case SystemLine_CPJT:
|
{
|
m_pDC2P->DC2P_SetUserCommand(PCControlSignal_12);
|
break;
|
}
|
default:
|
{
|
break;
|
}
|
}
|
}
|
}
|
|
void CDlgCommand::OnStnDblclickStaticDateTime()
|
{
|
// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
|
if (m_pDC2P)
|
{
|
m_pDC2P->DC2P_SetUserCommand(-1);
|
}
|
}
|
|
BOOL CDlgCommand::SetLineType(int nType)
|
{
|
m_nLineType = nType;
|
return TRUE;
|
}
|
|
BOOL CDlgCommand::SetMachineType(int nType)
|
{
|
m_nMachineType = nType;
|
return TRUE;
|
}
|
|
BOOL CDlgCommand::OnEraseBkgnd(CDC* pDC)
|
{
|
// TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을 호출합니다.
|
CRect rect;
|
GetClientRect(&rect);
|
__super::OnEraseBkgnd(pDC);
|
pDC->FillSolidRect(rect, RGB(38,38,38) );
|
|
return TRUE;
|
|
}
|
|
HBRUSH CDlgCommand::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
|
|
{
|
HBRUSH hbr = __super::OnCtlColor(pDC, pWnd, nCtlColor);
|
|
CRect rect;
|
CString strClass = _T("");
|
UINT nID = pWnd->GetDlgCtrlID();
|
|
if(nCtlColor == CTLCOLOR_STATIC)
|
{
|
pDC->SetTextColor(RGB(255,255,255));
|
pDC->SetBkColor(RGB(38,38,38));
|
hbr = (HBRUSH)GetStockObject(NULL_BRUSH);
|
}
|
|
|
// TODO: 기본값이 적당하지 않으면 다른 브러시를 반환합니다.
|
return hbr;
|
|
}
|
|
|
void CDlgCommand::OnBnClickedButtonProgramexit() //0420 kyh 리뷰 종료 버튼 추가
|
{
|
// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
|
|
CMainFrame *pMain = (CMainFrame*)AfxGetMainWnd();
|
pMain->OnClose();
|
|
}
|