|
|
// 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;
|
|
|
}
|
|
|
}
|
|
|
} |