//{{AFX_INCLUDES()
#include "cwslide.h"
//}}AFX_INCLUDES
#if !defined(AFX_BATTERYDLG_H__CE05727A_1C61_4356_8D02_0E7303EE1C92__INCLUDED_)
#define AFX_BATTERYDLG_H__CE05727A_1C61_4356_8D02_0E7303EE1C92__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// BatteryDlg.h : header file
//
#include "DataRecipient.h"
#include "DeviceDlg.h"
#include "StatusStatic.h"
#include "TestDlg.h"

class CDashboardRecipient;

/////////////////////////////////////////////////////////////////////////////
// CBatteryDlg dialog

class CBatteryDlg : public CTestDlg
{
// Construction
public:
	CBatteryDlg(CWnd* pParent = NULL);   // standard constructor

// Dialog Data
	//{{AFX_DATA(CBatteryDlg)
	enum { IDD = IDD_BATTERY_DIALOG };
	CButton	m_autoMode;
	double	m_batAlive;
	double	m_batOn;
	double	m_bat1Amps;
	double  m_bat1Volts;
	double  m_bat1Min;
	double  m_bat1Max;
	double  m_bat1Capacity;
	CCWSlide	m_bat1TempControl;
	double	m_bat2Amps;
	double  m_bat2Volts;
	double  m_bat2Min;
	double  m_bat2Max;
	double  m_bat2Capacity;
	CCWSlide	m_bat2TempControl;
	double	m_bat3Amps;
	double  m_bat3Volts;
	double  m_bat3Min;
	double  m_bat3Max;
	double  m_bat3Capacity;
	CCWSlide	m_bat3TempControl;
	double	m_globalAmps;
	double	m_globalCapacity;
	double	m_globalVolts;
	double	m_numBat;
	//}}AFX_DATA

	// My public members
	void requestUpdate();
	void stopRequests();
	void resetDialog();

	virtual void setBatteryGlobal(double voltage, double amps, double capacity, short errorLevel,
		int numBatteries, int numAlive, int numOn);
	virtual void setBatteryInfo(int num, double voltage, double amps, double minV, 
		double maxV, double temp, double capacity, char state, char errorState, int comms,
		int errorLevel);

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CBatteryDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:

	// My members
	void initSubClassDlg();

	CStatusStatic m_globalStatus;
	CStatusStatic m_bat1Status;
	CStatusStatic m_bat1Error;
	CStatusStatic m_bat2Status;
	CStatusStatic m_bat2Error;
	CStatusStatic m_bat3Status;
	CStatusStatic m_bat3Error;

	// Generated message map functions
	//{{AFX_MSG(CBatteryDlg)
	afx_msg void OnUpdate();
	afx_msg void OnBat1Off();
	afx_msg void OnBat1On();
	afx_msg void OnBat2Off();
	afx_msg void OnBat2On();
	afx_msg void OnBat3Off();
	afx_msg void OnBat3On();
	afx_msg void OnAutoMode();
	afx_msg void OnManualMode();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_BATTERYDLG_H__CE05727A_1C61_4356_8D02_0E7303EE1C92__INCLUDED_)
