// AuvMonDlg.h : header file
//

#pragma once

#include "ClrButton.h"
#include "Serial.h"
#include "smac.h"

// CAuvMonDlg dialog
class CAuvMonDlg : public CDialog
{
// Construction
public:
	CAuvMonDlg(CWnd* pParent = NULL);	// standard constructor

// Dialog Data
	enum { IDD = IDD_AUVMON_DIALOG };

	protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV support


// Implementation
protected:
	HICON m_hIcon;

	// Generated message map functions
	virtual BOOL OnInitDialog();
	afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	afx_msg void OnTimer(UINT nIDEvent);
	DECLARE_MESSAGE_MAP()
public:
	afx_msg void OnLbnSelchangeList1();
	afx_msg void OnEnChangeEdit7();
	afx_msg void OnBnClickedGpscon();
	afx_msg void OnBnClickedUsblcon();
	afx_msg void OnBnClickedAuvcon();
	afx_msg void OnBnClickedButton1();

protected:
	CClrButton _gpsBtn, _usblBtn, _auvBtn, _xmitBtn;
	unsigned _gpsConnected, _auvConnected, _usblConnected, _xmit;
	CSerial _gpsPort, _usblPort, _auvPort;
	float _auvLat, _auvLong, _auvHead, _auvDepth, _auvAlt, _auvVolt, _auvHumid;
	float _usblLat, _usblLong, _usblSlant;
	int _usblhh, _usblmm, _usblss;

	CString _auvBehavior;
	CString _auvAbort;

	long _lastXmitTime;
	int _period;

	void WriteStat(const char *msg);
	void WriteRecList(const char *msg);
	void Update();
	int GetAuvData();
	int GetUsblData();
	void UpdateAuvData(SMAC_STAT_RECORD rec);
	void SendNavPacket(long timestamp);

	CListCtrl *statList;
	CListCtrl *recList;

	UINT_PTR _timerId;

public:
	afx_msg void OnBnClickedOk();
	afx_msg void OnEnChangeXmitperiod();
	afx_msg void OnBnClickedReqstat();
	afx_msg void OnBnClickedAbortmssn();
	afx_msg void OnBnClickedStartsrvy();
};
