//{{AFX_INCLUDES()
#include "cwknob.h"
#include "cwslide.h"
#include "indicator2.h"
//}}AFX_INCLUDES
#if !defined(AFX_TAILCONEDLG_H__1017118C_C374_4BA1_9ACA_3BCAAECB97EE__INCLUDED_)
#define AFX_TAILCONEDLG_H__1017118C_C374_4BA1_9ACA_3BCAAECB97EE__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// TailconeDlg.h : header file
//
#include "DataRecipient.h"
#include "DeviceDlg.h"
#include "StatusStatic.h"
#include "TestDlg.h"

class CDashboardRecipient;

/////////////////////////////////////////////////////////////////////////////
// CTailconeDlg dialog

class CTailconeDlg : public CTestDlg
{
// Construction
public:
	CTailconeDlg(CWnd* pParent = NULL);   // standard constructor

// Dialog Data
	//{{AFX_DATA(CTailconeDlg)
	enum { IDD = IDD_TAILCONE_DIALOG };
	CCWKnob	m_elevatorControl;
	double	m_elevatorIndicator1;
	double	m_elevatorIndicator2;
	CCWSlide	m_elevatorSlider;
	double	m_rawElevator;
	double	m_rawRudder;
	double	m_rawThrottle;
	CCWKnob	m_rpmControl;
	double	m_rpmIndicator1;
	double	m_rpmIndicator2;
	CCWKnob	m_rpmKnob;
	CCWKnob	m_rudderControl;
	double	m_rudderIndicator1;
	double	m_rudderIndicator2;
	CCWSlide	m_rudderSlider;
	double	m_rawRpm;
	//}}AFX_DATA

	// My functions
	void requestUpdate();
	void stopRequests();
	void resetDialog();

	void setTailcone(double rpm, double elevator, double rudder);
	void setTailconeRaw(short propeller, short elevator,
		short rudder, short throttle);

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CTailconeDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:

	// My members
	bool m_touchWatchdog;
	void sendCommand();
	void initSubClassDlg();

	// Generated message map functions
	//{{AFX_MSG(CTailconeDlg)
	afx_msg void OnPointerValueCommittedRudderSlider(long Pointer, VARIANT FAR* Value);
	afx_msg void OnPointerValueCommittedRpmKnob(long Pointer, VARIANT FAR* Value);
	afx_msg void OnPointerValueCommittedElevatorSlider(long Pointer, VARIANT FAR* Value);
	afx_msg void OnPointerValueChangedRudderSlider(long Pointer, VARIANT FAR* Value);
	afx_msg void OnPointerValueChangedRpmKnob(long Pointer, VARIANT FAR* Value);
	afx_msg void OnPointerValueChangedElevatorSlider(long Pointer, VARIANT FAR* Value);
	afx_msg void OnResetTailcone();
	afx_msg void OnTimer(UINT nIDEvent);
	DECLARE_EVENTSINK_MAP()
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_TAILCONEDLG_H__1017118C_C374_4BA1_9ACA_3BCAAECB97EE__INCLUDED_)
