// JoyStickControlDlg.cpp : 实现文件
//

#include "stdafx.h"
#include "CH91PayloadSoftware.h"
#include "JoyStickControlDlg.h"
#include "afxdialogex.h"
#include "GlobalMember.h"
#include "Global.h"
#include "GlobalMessage.h"


// CJoyStickControlDlg 对话框

IMPLEMENT_DYNAMIC(CJoyStickControlDlg, CDialogEx)

	CJoyStickControlDlg::CJoyStickControlDlg(CWnd* pParent /*=NULL*/)
	: CDialogEx(CJoyStickControlDlg::IDD, pParent)
{

}

CJoyStickControlDlg::~CJoyStickControlDlg()
{
}

void CJoyStickControlDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialogEx::DoDataExchange(pDX);
}


BEGIN_MESSAGE_MAP(CJoyStickControlDlg, CDialogEx)
	ON_WM_TIMER()
END_MESSAGE_MAP()


// CJoyStickControlDlg 消息处理程序


BOOL CJoyStickControlDlg::OnInitDialog()
{
	CDialogEx::OnInitDialog();
	// 获取窗口句柄
	g_JoyStickControlDlgHwnd = GetSafeHwnd();
	// 摇杆变量初始化
	m_JoyStickListener = new JSParser::JoyStickListener();
	m_JoyStickListener->init(g_JoyStickControlDlgHwnd);

	// 设定时间变量
	SetTimer(1, 2000, nullptr);
	return TRUE;  // return TRUE unless you set the focus to a control
	// 异常: OCX 属性页应返回 FALSE
}


void CJoyStickControlDlg::OnTimer(UINT_PTR nIDEvent)
{
	//if (m_JoyStickListener->isInit())
	//{
	//	// 更新摇杆主轴状态
	//	m_JoyStickListener->UpdateStick(stick_Height, stick_Width);
	//	// 更新摇杆按键状态
	//	m_JoyStickListener->UpdateButtons(m_JoyStickButtons);

	//	// 更新指令
	//	UpdateControl();
	//} 
	//else
	//{
	//	m_JoyStickListener->init(g_JoyStickControlDlgHwnd);
	//}
	CDialogEx::OnTimer(nIDEvent);
}

void CJoyStickControlDlg::UpdateControl()
{
	if (g_bCtrlFromSoftware == FALSE)
	{
		// 手动跟踪,控制伺服
		if (m_JoyStickButtons[0] == true)
		{
			g_payloadCtrlProtocol = 1002;
			g_ServoSpeedUpDown = (int)(0 - stick_Height * 512);
			g_ServoSpeedLeftRight = (int)(stick_Width * 512);
			//TRACE("X:%d    Y:%d\n",g_ServoSpeedUpDown,g_ServoSpeedLeftRight);

		}
		// EO自动跟踪,控制波门
		else if (m_JoyStickButtons[3] == true)
		{
			g_payloadCtrlProtocol = 16;
			g_TrackOffset.y = (int)(0 - stick_Height * 540);
			g_TrackOffset.x = (int)(stick_Width * 960);
		}
		// IR自动跟踪,控制波门
		else if (m_JoyStickButtons[2] == true)
		{
			g_payloadCtrlProtocol = 17;
			g_TrackOffset.y = (int)(0 - stick_Height * 288);
			g_TrackOffset.x = (int)(stick_Width * 360);
		}
		// EO自动对焦
		else if (m_JoyStickButtons[1] == true)
		{
			g_payloadCtrlProtocol = 69;
		}
		// IR自动对焦
		else if (m_JoyStickButtons[4] == true)
		{
			g_payloadCtrlProtocol = 78;
		}
		// EO视场小
		else if (m_JoyStickButtons[6] == true)
		{
			g_payloadCtrlProtocol = 60;
		}
		// EO视场大
		else if (m_JoyStickButtons[8] == true)
		{
			g_payloadCtrlProtocol = 59;
		}
		// IR视场小
		else if (m_JoyStickButtons[10] == true)
		{
			g_payloadCtrlProtocol = 81;
		}
		// IR视场大
		else if (m_JoyStickButtons[12] == true)
		{
			g_payloadCtrlProtocol = 80;
		}
		// 波门上移
		else if (m_JoyStickButtons[14] == true)
		{
			g_payloadCtrlProtocol = 34;
		}
		// 波门下移
		else if (m_JoyStickButtons[16] == true)
		{
			g_payloadCtrlProtocol = 35;
		}
		// 波门右移
		else if (m_JoyStickButtons[15] == true)
		{
			g_payloadCtrlProtocol = 32;
		}
		// 波门左移
		else if (m_JoyStickButtons[17] == true)
		{
			g_payloadCtrlProtocol = 33;
		}
		// 其他操作,发送空指令
		else
		{
			g_payloadCtrlProtocol = 0;
		}
	}
}