// CVPRDlg.cpp : : Implementation file
//

#include "stdafx.h"
#include "RemoteTest.h"
#include "VPRDlg.h"
#include "RemoteTestDlg.h"


/////////////////////////////////////////////////////////////////////////////
// CVPRDlg  dialog

CVPRDlg::CVPRDlg(CVAIBO* vaibo, CWnd* pParent)
	: CDialog(CVPRDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CVPRDlg)
	//}}AFX_DATA_INIT

	m_vaibo = vaibo;
}

void CVPRDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CVPRDlg)
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CVPRDlg, CDialog)
	//{{AFX_MSG_MAP(CVPRDlg)
	ON_WM_DESTROY()
	ON_BN_CLICKED(IDC_BUTTON_TRAIN, OnButtonTrain)
	ON_BN_CLICKED(IDC_BUTTON_REMOVE, OnButtonRemove)
	ON_BN_CLICKED(IDC_BUTTON_QUERY, OnButtonQuery)
	ON_BN_CLICKED(IDC_BUTTON_FILENAME, OnButtonFilename)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CVPRDlg message handlers

BOOL	CVPRDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	SetDlgItemText( IDC_EDIT_ID, "00" );
	SetDlgItemText( IDC_EDIT_SUBID, "0000" );
	SetDlgItemText( IDC_EDIT_POLICY, "0" );

	return TRUE;   // return TRUE  unless you set the focus to a control
}

void	CVPRDlg::OnDestroy()
{
	CDialog::OnDestroy();
}

void	CVPRDlg::OnButtonTrain()
{
	CRemoteTestApp *pApp = ( CRemoteTestApp* )AfxGetApp();

	char	strID[ 3 ], strSubID[ 5 ], strPolicy[ 2 ];
	GetDlgItemText( IDC_EDIT_ID, strID, 3 );
	GetDlgItemText( IDC_EDIT_SUBID, strSubID, 5 );
	GetDlgItemText( IDC_EDIT_POLICY, strPolicy, 2 );

	int		nModelID = pApp->StringHexToNum( strID );
	int		nModelSubID = pApp->StringHexToUnsignedInt( strSubID );
	int		nPolicy = pApp->StringHexToNum( strPolicy );

	CButton*	pButton = ( CButton* )GetDlgItem( IDC_BUTTON_TRAIN );
	pButton->EnableWindow( false );
	m_vaibo->VPRTrainModel( nModelID, nModelSubID, ( EVPRPOLICY )nPolicy );
	pButton->EnableWindow( true );
}

void	CVPRDlg::OnButtonRemove()
{
	CRemoteTestApp *pApp = ( CRemoteTestApp* )AfxGetApp();

	char	strID[ 3 ], strSubID[ 5 ];
	GetDlgItemText( IDC_EDIT_ID, strID, 3 );
	GetDlgItemText( IDC_EDIT_SUBID, strSubID, 5 );

	int		nModelID = pApp->StringHexToNum( strID );
	int		nModelSubID = pApp->StringHexToUnsignedInt( strSubID );

	m_vaibo->VPRRemoveModel( nModelID, nModelSubID );
}

void	CVPRDlg::OnButtonQuery()
{
	CRemoteTestApp *pApp = ( CRemoteTestApp* )AfxGetApp();

	char	strID[ 3 ];
	GetDlgItemText( IDC_EDIT_ID, strID, 3 );

	int		nModelID = pApp->StringHexToNum( strID );

	m_vaibo->VPRQueryModel( nModelID );
}

void	CVPRDlg::OnButtonFilename()
{
	CRemoteTestApp *pApp = ( CRemoteTestApp* )AfxGetApp();

	char	strID[ 3 ], strSubID[ 5 ];
	GetDlgItemText( IDC_EDIT_ID, strID, 3 );
	GetDlgItemText( IDC_EDIT_SUBID, strSubID, 5 );

	int		nModelID = pApp->StringHexToNum( strID );
	int		nModelSubID = pApp->StringHexToUnsignedInt( strSubID );

	char	strFileName[ 256 ];

	if ( m_vaibo->VPRGetImage( nModelID, nModelSubID, strFileName ) ) {
		CString	strDebug;
		strDebug.Format( "VPR file: %s\n", strFileName );
		AfxMessageBox( strDebug );
	}
	else {
		AfxMessageBox( "VPR file does not exist\n" );
	}
}
