// MtnDlg.cpp : Implementation file
//

#include "stdafx.h"
#include "RemoteTest.h"
#include "MtnDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CMtnDlg  dialog


CMtnDlg::CMtnDlg(CVAIBO *vaibo, CWnd* pParent /*=NULL*/)
	: CDialog(CMtnDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CMtnDlg)
	//}}AFX_DATA_INIT
	m_vaibo = vaibo;
	m_exdF = false;
	m_infF = false;
}


void CMtnDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CMtnDlg)
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CMtnDlg, CDialog)
	//{{AFX_MSG_MAP(CMtnDlg)
	ON_BN_CLICKED(IDC_CHK_EXD, OnChkExtend)
	ON_BN_CLICKED(IDC_CHK_INF, OnChkInfinity)
	ON_BN_CLICKED(IDC_BTN_PLAY, OnBtnPlay)
	ON_WM_DESTROY()
	ON_BN_CLICKED(IDC_BTN_NSTOP, OnBtnNstop)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMtnDlg message handlers

void CMtnDlg::OnChkExtend() 
{
	if ( m_exdF ) {
		m_exdF = false;
	} else {
		m_exdF = true;
	}
}

void CMtnDlg::OnChkInfinity() 
{
	if ( m_infF ) {
		m_infF = false;
	} else {
		m_infF = true;
	}
}

void CMtnDlg::OnBtnPlay() 
{
	CRemoteTestApp *pApp = (CRemoteTestApp*)AfxGetApp();

	char	szLID[3], szMID[3], szSID[3], szLevel[3];
	char	szTarget[ 9 ];
	int		lID, mID, sID, level;
	unsigned int	unTarget;
	long	lmsParam;


	GetDlgItemText( IDC_EDIT_LID, szLID, 3 );
	GetDlgItemText( IDC_EDIT_MID, szMID, 3 );
	GetDlgItemText( IDC_EDIT_SID, szSID, 3 );
	GetDlgItemText( IDC_EDIT_LEVEL, szLevel, 3 );
	GetDlgItemText( IDC_EDIT_TARGET, szTarget, 9 );

	lID = pApp->StringHexToNum( szLID );
	mID = pApp->StringHexToNum( szMID );
	sID = pApp->StringHexToNum( szSID );
	level = pApp->StringHexToNum( szLevel );
	unTarget = pApp->StringHexToUnsignedInt( szTarget );

	lmsParam = lID << 24 | mID << 16 | sID << 8 | level;


	BOOL	isWait = ( ( CButton* )GetDlgItem( IDC_CHK_WAITF ) )->GetCheck();

	m_vaibo->PlayMotion( lmsParam, m_exdF, isWait/*true*/, m_infF, unTarget );
}

BOOL CMtnDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	SetDlgItemText( IDC_EDIT_LID, "00" );
	SetDlgItemText( IDC_EDIT_MID, "00" );
	SetDlgItemText( IDC_EDIT_SID, "00" );
	SetDlgItemText( IDC_EDIT_LEVEL, "00" );
	SetDlgItemText( IDC_EDIT_TARGET, "00000000" );
	
	( ( CButton* )GetDlgItem( IDC_CHK_WAITF ) )->SetCheck( true );

	return TRUE;
}

void CMtnDlg::OnDestroy() 
{
	CDialog::OnDestroy();
}


void CMtnDlg::OnBtnNstop() 
{
	m_vaibo->MotionStop();
}
