#if !defined(AFX_DLG7KSONARPARAMS_H__4FD97994_240A_427B_8B84_D9B3CDB13983__INCLUDED_)
#define AFX_DLG7KSONARPARAMS_H__4FD97994_240A_427B_8B84_D9B3CDB13983__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// Dlg7kSonarParams.h : header file
//
#include "6046DryEndDlg.h"
#include "xShadeButton.h"


/////////////////////////////////////////////////////////////////////////////
// CDlg7kSonarParams dialog

class CDlg7kSonarParams : public CDialog
{
// Construction
public:
	CDlg7kSonarParams(CWnd* pParent = NULL);   // standard constructor

// Dialog Data
	//{{AFX_DATA(CDlg7kSonarParams)
	enum { IDD = IDD_DLG_7KSONAR };
	CStatic		m_ctrlStaticGain;
	CScrollBar	m_ctrlScrollBarGain;
	CScrollBar	m_ctrlScrollBarMaxPingRate;
	CScrollBar	m_ctrlScrollBarRange;
	CScrollBar	m_ctrlScrollBarPulseLength;
	CScrollBar	m_ctrlScrollBarPower;
	CStatic	m_ctrlStaticRate;
	CStatic	m_ctrlStaticPulse;
	CStatic	m_ctrlStaticRange;
	CStatic	m_ctrlStaticPower;
	CxShadeButton	m_ctrlCheckPing;
	CxShadeButton	m_ctrlBtnUpdate;
	//}}AFX_DATA
	
	BOOL				m_bPingEnabled;
	
	void				SetSensorIndex			(	UINT			index );

	void				InitControls			(	void );
	
	UINT				m_dSensorIndex;

	CToolTipCtrl		m_ToolTips;

	DWORD				UpdatePulseLength		(	float			fPulseLength);
	DWORD				UpdateGain				(	float			fGain);
	DWORD				UpdatePower				(	float			fPower);
	DWORD				UpdateRange				(	float			fRange);
	DWORD				UpdateMaxPingRate		(	float			fMaxPingRate);
	DWORD				UpdatePingState			(	BOOL			state );


	double              m_dMinRange;
	double              m_dMaxRange;
	double              m_dMinGain;
	double              m_dMaxGain;
	double              m_dMinPower;
	double              m_dMaxPower;
	double				m_dPowerRange;
	double              m_dMinPulseLength;
	double              m_dMaxPulseLength;
	double              m_dMaxPingRate;
	double              m_dMinMaxPingRate;
	double              m_dMaxMaxPingRate;
	float				m_fLastSampRate;

	//double              m_dMinTxBeamWidthX;
	//double              m_dMaxTxBeamWidthX;
	//double				m_dCurrentTxBeamWidth;
	//double              m_dTxBeamWidthX;
	//double              m_dTxBeamWidthZ;
	//double              m_dMinTxBeamSteerX;
	//double              m_dMaxTxBeamSteerX;
	//double              m_dTxBeamSteerX;
	//double              m_dTxBeamSteerZ;
	//BOOL                m_bTxBeamWidth;
	//BOOL                m_bTxBeamSteer;
	
	// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CDlg7kSonarParams)
	public:
	virtual BOOL PreTranslateMessage(MSG* pMsg);
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:

	// Generated message map functions
	//{{AFX_MSG(CDlg7kSonarParams)
	afx_msg void OnButtonUpdate();
	virtual BOOL OnInitDialog();
	afx_msg void OnCheckPing();
	afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()


	CMy6046DryEndDlg	*m_pMainWnd;
	CSystemConfig		*m_pConfig;
	
	void				SaveSettings			(	void );
	void				LoadSettings			(	void );

	//current vals
	float				range, pulse, rate, power, soundspeed,gain;

	double				m_dPowerPercent;
	
	BOOL				bPingOn;
	DWORD				m_dwSysID;
	WORD				m_wSysEnum;
	char				m_chSysText[128];
	BOOL				m_bFLS;
	
	//int					m_iPowerMin, m_iPowerMax, m_iPowIndex;
	//float				m_fRangeMin, m_fRangeMax, m_fRangeIndex;
	//double				m_dPulseMin, m_dPulseMax, m_dPulseIndex;
	//float				m_fRateMax;

};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_DLG7KSONARPARAMS_H__4FD97994_240A_427B_8B84_D9B3CDB13983__INCLUDED_)
