// SvsDlg.cpp : implementation file
//

#include "stdafx.h"
#include "dashboard.h"
#include "SvsDlg.h"
#include "DashboardRecipient.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

#define SVS_TIMER 1
#define SVS_TIMER_ELAPSE 2000

/////////////////////////////////////////////////////////////////////////////
// CSvsDlg dialog


CSvsDlg::CSvsDlg(CWnd* pParent /*=NULL*/)
	: CTestDlg(CSvsDlg::IDD, pParent, IDC_SVS_STATUS)
{
	//{{AFX_DATA_INIT(CSvsDlg)
	m_speedM = 0.0f;
	//}}AFX_DATA_INIT
}


void CSvsDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CSvsDlg)
	DDX_OCFloat(pDX, IDC_SPEEDM, DISPID(7), m_speedM);
	DDX_Control(pDX, IDC_SPEED_GAUGE, m_speedGaugeControl);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CSvsDlg, CTestDlg)
	//{{AFX_MSG_MAP(CSvsDlg)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSvsDlg message handlers

void CSvsDlg::initSubClassDlg()
{
	SetTimer(SVS_TIMER, SVS_TIMER_ELAPSE,0);
}

void CSvsDlg::requestUpdate()
{
	Assert(m_recipient);
	m_recipient->requestData(MMAgentRequest::Start,
		ModemMessage::tMMSvs, 2);
}

void CSvsDlg::stopRequests()
{
	Assert(m_recipient);
	m_recipient->requestData(MMAgentRequest::Stop,
		ModemMessage::tMMSvs, -1);

	resetDialog();
}

void CSvsDlg::resetDialog()
{
	m_speedM = 0.0f;
	UpdateData(FALSE);
}

void CSvsDlg::setSvs(double rawTOF, double speedM, double speedMm)
{
	receiveData();
	m_speedM = speedMm;
	m_speedGaugeControl.SetValue(COleVariant(speedMm));
	UpdateData(FALSE);
}
