优化13所吊舱控制协议帧
parent
006dfa62b8
commit
90eaa784fe
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,34 @@
|
||||
#include "StdAfx.h"
|
||||
#include "CYHMudpSend.h"
|
||||
/*×é²¥·¢ËÍ*/
|
||||
CYHMudpSend::CYHMudpSend()
|
||||
{
|
||||
|
||||
}
|
||||
CYHMudpSend::~CYHMudpSend()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
bool CYHMudpSend::initMUDP(const char *IP,u_short Port)
|
||||
{
|
||||
WSAStartup(MAKEWORD(2, 2), &wsaData);
|
||||
sock = socket(AF_INET, SOCK_DGRAM, 0);
|
||||
n = 0;
|
||||
setsockopt(sock, IPPROTO_IP, IP_MULTICAST_TTL, (char*)&n, sizeof(n));
|
||||
|
||||
addr.sin_addr.S_un.S_addr = inet_addr(IP);
|
||||
addr.sin_family = AF_INET;
|
||||
addr.sin_port = htons(Port);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CYHMudpSend::SendData(BYTE* const bufs,int length)
|
||||
{
|
||||
char* buf = (char*)bufs;
|
||||
//sendto(sock, buf, strlen(buf) + 1, 0, (sockaddr*)&addr, sizeof(sockaddr));
|
||||
sendto(sock, buf, length, 0, (sockaddr*)&addr, sizeof(sockaddr));
|
||||
return true;
|
||||
}
|
||||
|
@ -0,0 +1,19 @@
|
||||
#pragma once
|
||||
#include <stdio.h>
|
||||
#include <winsock2.h>
|
||||
#include <ws2tcpip.h>
|
||||
class CYHMudpSend
|
||||
{
|
||||
public:
|
||||
CYHMudpSend();
|
||||
~CYHMudpSend();
|
||||
public:
|
||||
WSADATA wsaData;
|
||||
SOCKET sock;
|
||||
int n;
|
||||
sockaddr_in addr;
|
||||
public:
|
||||
bool initMUDP(const char* IP, u_short Port);
|
||||
bool SendData(BYTE* const,int);
|
||||
};
|
||||
|
@ -0,0 +1,214 @@
|
||||
#ifndef _CDCFrameCkCmdFrame_
|
||||
#define _CDCFrameCkCmdFrame_
|
||||
|
||||
//数据注入指令从控发送数据协议
|
||||
|
||||
#pragma once
|
||||
//#include "framelib/basetype.h"
|
||||
//#include "framelib/DataInject.h"
|
||||
#pragma pack(1)
|
||||
|
||||
typedef struct struProtocalDataInject_DC
|
||||
{
|
||||
UINT8 DCtype; //吊舱类型
|
||||
union
|
||||
{
|
||||
struct
|
||||
{
|
||||
UINT8 SwitchCmd; //开关指令
|
||||
INT16 param1; //参数1
|
||||
INT16 param2; //参数2
|
||||
UINT8 reserve[9]; //保留
|
||||
}DC_13Ins;//13所吊舱控制指令
|
||||
struct
|
||||
{
|
||||
BYTE param; //参数
|
||||
BYTE param2; //参数
|
||||
BYTE param3; //参数
|
||||
BYTE param4; //参数
|
||||
BYTE param5; //参数
|
||||
BYTE param6; //参数
|
||||
BYTE param7; //参数
|
||||
BYTE param8; //参数
|
||||
BYTE param9; //参数
|
||||
BYTE param10; //参数
|
||||
BYTE param11; //参数
|
||||
BYTE param12; //参数
|
||||
BYTE param13; //参数
|
||||
BYTE param14; //参数
|
||||
}DC_WHTJ; //天进吊舱控制指令
|
||||
BYTE DataIn[14];//14个字节
|
||||
};
|
||||
}ProtocalDataInject_DC;
|
||||
|
||||
typedef struct struDataInject_DC
|
||||
{
|
||||
UINT8 DCtype; //吊舱类型
|
||||
union
|
||||
{
|
||||
struct
|
||||
{
|
||||
UINT8 SwitchCmd; //开关指令
|
||||
double param1; //参数1
|
||||
double param2; //参数2
|
||||
UINT8 reserve[9]; //保留
|
||||
}DC_13Ins;//13所吊舱控制指令
|
||||
struct
|
||||
{
|
||||
BYTE param; //参数
|
||||
BYTE param2; //参数
|
||||
BYTE param3; //参数
|
||||
BYTE param4; //参数
|
||||
BYTE param5; //参数
|
||||
BYTE param6; //参数
|
||||
BYTE param7; //参数
|
||||
BYTE param8; //参数
|
||||
BYTE param9; //参数
|
||||
BYTE param10; //参数
|
||||
BYTE param11; //参数
|
||||
BYTE param12; //参数
|
||||
BYTE param13; //参数
|
||||
BYTE param14; //参数
|
||||
}DC_WHTJ;//天进吊舱控制指令
|
||||
BYTE DC_Data[14];//14个字节
|
||||
};
|
||||
}DataInject_DC;
|
||||
|
||||
|
||||
//数据注入指令从控发送数据帧---13所吊舱
|
||||
typedef struct struDCFrameCkCmd
|
||||
{
|
||||
UINT8 FrameHead[2]; //帧头EB 90
|
||||
UINT8 fcode; //数据注入指令码
|
||||
ProtocalDataInject_DC protocalDataInject_DC;
|
||||
UINT16 crc16; //校验位
|
||||
}DCFrameCkCmd;
|
||||
|
||||
|
||||
#pragma pack()
|
||||
//数据结构体
|
||||
typedef struct struDCFrameCkCmdData
|
||||
{
|
||||
UINT8 fcode; //数据注入指令码
|
||||
DataInject_DC dataInject_DC;
|
||||
UINT16 crc16; //校验位
|
||||
}DCFrameCkCmdData;
|
||||
#pragma pack()
|
||||
|
||||
class CDCFrameCkCmdFrame : public CFrameAbstract
|
||||
{
|
||||
public:
|
||||
DCFrameCkCmdData Data;
|
||||
public:
|
||||
CDCFrameCkCmdFrame()
|
||||
{
|
||||
//具体数据长度
|
||||
_tcscpy(Name, _T("DateInject_CK_DC"));//数据注入 从控 吊舱
|
||||
FrameLength = 20;
|
||||
HeadLength = 2;
|
||||
Head[0] = 0xEB;
|
||||
Head[1] = 0x90;
|
||||
memcpy(Addr(), Head, HeadLength);//把Head的第一位到HeadLength位的值赋值给Addr()
|
||||
CheckLength = 2;
|
||||
CheckPos = FrameLength - 2;
|
||||
FrameType = ftFKu;
|
||||
memset(&Data,0,sizeof(DCFrameCkCmdData));//将Data中的数据全都初始化为0
|
||||
}
|
||||
|
||||
virtual ~CDCFrameCkCmdFrame(){}
|
||||
virtual void Encode()
|
||||
{
|
||||
DCFrameCkCmd *pBuff = (DCFrameCkCmd*) Addr();
|
||||
pBuff->fcode = Data.fcode;
|
||||
pBuff->protocalDataInject_DC.DCtype = Data.dataInject_DC.DCtype;
|
||||
switch(Data.dataInject_DC.DCtype)
|
||||
{
|
||||
case 0x01:
|
||||
pBuff->protocalDataInject_DC.DC_13Ins.SwitchCmd = Data.dataInject_DC.DC_13Ins.SwitchCmd;
|
||||
pBuff->protocalDataInject_DC.DC_13Ins.param1 = Data.dataInject_DC.DC_13Ins.param1;
|
||||
pBuff->protocalDataInject_DC.DC_13Ins.param2 = Data.dataInject_DC.DC_13Ins.param2;
|
||||
memset(&(pBuff->protocalDataInject_DC.DC_13Ins.reserve),0,sizeof(pBuff->protocalDataInject_DC.DC_13Ins.reserve));
|
||||
break;
|
||||
case 0x02:
|
||||
pBuff->protocalDataInject_DC.DC_WHTJ.param = Data.dataInject_DC.DC_WHTJ.param;
|
||||
pBuff->protocalDataInject_DC.DC_WHTJ.param2 = Data.dataInject_DC.DC_WHTJ.param2;
|
||||
pBuff->protocalDataInject_DC.DC_WHTJ.param3 = Data.dataInject_DC.DC_WHTJ.param3;
|
||||
pBuff->protocalDataInject_DC.DC_WHTJ.param4 = Data.dataInject_DC.DC_WHTJ.param4;
|
||||
pBuff->protocalDataInject_DC.DC_WHTJ.param5 = Data.dataInject_DC.DC_WHTJ.param5;
|
||||
pBuff->protocalDataInject_DC.DC_WHTJ.param6 = Data.dataInject_DC.DC_WHTJ.param6;
|
||||
pBuff->protocalDataInject_DC.DC_WHTJ.param7 = Data.dataInject_DC.DC_WHTJ.param7;
|
||||
pBuff->protocalDataInject_DC.DC_WHTJ.param8 = Data.dataInject_DC.DC_WHTJ.param8;
|
||||
pBuff->protocalDataInject_DC.DC_WHTJ.param9 = Data.dataInject_DC.DC_WHTJ.param9;
|
||||
pBuff->protocalDataInject_DC.DC_WHTJ.param10 = Data.dataInject_DC.DC_WHTJ.param10;
|
||||
pBuff->protocalDataInject_DC.DC_WHTJ.param11 = Data.dataInject_DC.DC_WHTJ.param11;
|
||||
pBuff->protocalDataInject_DC.DC_WHTJ.param12 = Data.dataInject_DC.DC_WHTJ.param12;
|
||||
pBuff->protocalDataInject_DC.DC_WHTJ.param13 = Data.dataInject_DC.DC_WHTJ.param13;
|
||||
pBuff->protocalDataInject_DC.DC_WHTJ.param14 = Data.dataInject_DC.DC_WHTJ.param14;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
/*
|
||||
switch(Data.fcode)
|
||||
{
|
||||
case 0x70:
|
||||
if(Data.details.DataZ70.DCtype == 0x01){
|
||||
EncodeUZ70( &( pBuff->details ),&( Data.details ));
|
||||
}
|
||||
if(Data.details.DataZ70_TJDC.DCTpye == 0x02){
|
||||
EncodeUZ70_TJDC( &( pBuff->details ),&( Data.details ));
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
*/
|
||||
}
|
||||
virtual void Decode()
|
||||
{
|
||||
DCFrameCkCmd *pBuff = (DCFrameCkCmd*) Addr();
|
||||
Data.fcode = pBuff->fcode;
|
||||
Data.dataInject_DC.DCtype = pBuff->protocalDataInject_DC.DCtype;
|
||||
switch(pBuff->protocalDataInject_DC.DCtype)
|
||||
{
|
||||
case 0x01:
|
||||
Data.dataInject_DC.DC_13Ins.SwitchCmd = pBuff->protocalDataInject_DC.DC_13Ins.SwitchCmd;
|
||||
Data.dataInject_DC.DC_13Ins.param1 = pBuff->protocalDataInject_DC.DC_13Ins.param1;
|
||||
Data.dataInject_DC.DC_13Ins.param2 = pBuff->protocalDataInject_DC.DC_13Ins.param2;
|
||||
memset(&(Data.dataInject_DC.DC_13Ins.reserve),0,sizeof(Data.dataInject_DC.DC_13Ins.reserve));
|
||||
break;
|
||||
case 0x02:
|
||||
Data.dataInject_DC.DC_WHTJ.param = pBuff->protocalDataInject_DC.DC_WHTJ.param;
|
||||
Data.dataInject_DC.DC_WHTJ.param2 = pBuff->protocalDataInject_DC.DC_WHTJ.param2;
|
||||
Data.dataInject_DC.DC_WHTJ.param3 = pBuff->protocalDataInject_DC.DC_WHTJ.param3;
|
||||
Data.dataInject_DC.DC_WHTJ.param4 = pBuff->protocalDataInject_DC.DC_WHTJ.param4;
|
||||
Data.dataInject_DC.DC_WHTJ.param5 = pBuff->protocalDataInject_DC.DC_WHTJ.param5;
|
||||
Data.dataInject_DC.DC_WHTJ.param6 = pBuff->protocalDataInject_DC.DC_WHTJ.param6;
|
||||
Data.dataInject_DC.DC_WHTJ.param7 = pBuff->protocalDataInject_DC.DC_WHTJ.param7;
|
||||
Data.dataInject_DC.DC_WHTJ.param8 = pBuff->protocalDataInject_DC.DC_WHTJ.param8;
|
||||
Data.dataInject_DC.DC_WHTJ.param9 = pBuff->protocalDataInject_DC.DC_WHTJ.param9;
|
||||
Data.dataInject_DC.DC_WHTJ.param10 = pBuff->protocalDataInject_DC.DC_WHTJ.param10;
|
||||
Data.dataInject_DC.DC_WHTJ.param11 = pBuff->protocalDataInject_DC.DC_WHTJ.param11;
|
||||
Data.dataInject_DC.DC_WHTJ.param12 = pBuff->protocalDataInject_DC.DC_WHTJ.param12;
|
||||
Data.dataInject_DC.DC_WHTJ.param13 = pBuff->protocalDataInject_DC.DC_WHTJ.param13;
|
||||
Data.dataInject_DC.DC_WHTJ.param14 = pBuff->protocalDataInject_DC.DC_WHTJ.param14;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
Data.crc16 = pBuff->crc16;
|
||||
}
|
||||
//void Phrase(const BYTE* Src, const UINT32 Count)
|
||||
//{
|
||||
|
||||
//}
|
||||
|
||||
virtual struCHECK CheckCRC(BYTE* const p)
|
||||
{
|
||||
//return MakeCheckSum_WuHanTJDC(p,31);
|
||||
return MakeCheckCRC(p+2,16);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
#endif//_CDCFrameCkCmdFrame_
|
@ -0,0 +1,321 @@
|
||||
// DCOverrollDlg.cpp : 实现文件
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "DCOverrollDlg.h"
|
||||
#include "afxdialogex.h"
|
||||
|
||||
|
||||
// DCOverrollDlg 对话框
|
||||
|
||||
IMPLEMENT_DYNAMIC(DCOverrollDlg, CDialogEx)
|
||||
|
||||
DCOverrollDlg::DCOverrollDlg(CWnd* pParent /*=NULL*/)
|
||||
: CDialogEx(DCOverrollDlg::IDD, pParent)
|
||||
{
|
||||
//m_bkBrush.CreateSolidBrush(BKGCLR);
|
||||
|
||||
m_CurSelect = 99;
|
||||
}
|
||||
|
||||
DCOverrollDlg::~DCOverrollDlg()
|
||||
{
|
||||
/*关闭定时器*/
|
||||
DelateTimer();
|
||||
}
|
||||
//定时器回调函数
|
||||
void FAR PASCAL m_DCOverrollTimer(WORD IDEvent, WORD uReserved, DWORD dwUser, DWORD dwReserved1, DWORD dwReserve2)
|
||||
{
|
||||
DCOverrollDlg *m_pView = (DCOverrollDlg *)dwUser;
|
||||
m_pView->DC0verrollStep(dwUser);
|
||||
}
|
||||
void DCOverrollDlg::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialogEx::DoDataExchange(pDX);
|
||||
//DDX_Control(pDX, IDC_STATIC_DC, m_DCFrameInfoTab);
|
||||
DDX_Control(pDX, IDC_STATIC_DC, m_ShowPosition);
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(DCOverrollDlg, CDialogEx)
|
||||
//ON_COMMAND(ID_13Ins, &DCOverrollDlg::OnUpdate13Ins)
|
||||
//ON_UPDATE_COMMAND_UI(ID_WHTJ, &DCOverrollDlg::OnUpdateWHTJ)
|
||||
ON_WM_CTLCOLOR()
|
||||
ON_WM_CLOSE()
|
||||
ON_BN_CLICKED(IDC_BTN_SHOW, &DCOverrollDlg::OnBnClickedBtnShow)
|
||||
ON_CBN_SELCHANGE(IDC_DC_CHOSET, &DCOverrollDlg::OnCbnSelchangeDcChoset)
|
||||
ON_BN_CLICKED(IDC_RADIO1, &DCOverrollDlg::OnBnClickedRadio1)
|
||||
ON_BN_CLICKED(IDC_RADIO2, &DCOverrollDlg::OnBnClickedRadio2)
|
||||
ON_MESSAGE(WM_PROCESS_DC_CMD, ProcessDCCMD)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
HBRUSH DCOverrollDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
|
||||
{
|
||||
HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);
|
||||
|
||||
// TODO: 在此更改 DC 的任何特性
|
||||
/*
|
||||
if(nCtlColor==CTLCOLOR_STATIC)
|
||||
{
|
||||
pDC->SetBkColor(RGB(0,0,0));
|
||||
pDC->SetTextColor(TXTCLR);
|
||||
pDC->SetBkMode(TRANSPARENT);
|
||||
}*/
|
||||
// TODO: 如果默认的不是所需画笔,则返回另一个画笔
|
||||
return m_bkBrush;
|
||||
}
|
||||
|
||||
// DCOverrollDlg 消息处理程序
|
||||
BOOL DCOverrollDlg::OnInitDialog()
|
||||
{
|
||||
CDialogEx::OnInitDialog();
|
||||
DlgDCOverroll_Hwnd = GetSafeHwnd();//获得自身的窗口句柄
|
||||
|
||||
//CRect m_crect;
|
||||
//GetDlgItem(IDC_STATIC_DC_PUBLCI)->GetWindowRect(m_crect);
|
||||
//ScreenToClient(&m_crect);
|
||||
//this->MoveWindow(m_crect.left, m_crect.top, m_crect.Width()*1.05, m_crect.Height()*12);
|
||||
this->CenterWindow();
|
||||
|
||||
///*根据屏幕分辨率最大化显示*/
|
||||
//int cx = 0.65*GetSystemMetrics(SM_CXMAXIMIZED);
|
||||
//int cy = 0.5*GetSystemMetrics(SM_CYMAXIMIZED);
|
||||
//CRect rcRect(0,0,cx,cy);
|
||||
//this->MoveWindow(rcRect,true);
|
||||
//this->CenterWindow();
|
||||
|
||||
//CSize tabSize(180,25);
|
||||
//m_DCFrameInfoTab.SetItemSize(tabSize);
|
||||
//m_DCFrameInfoTab.SetNormalColor(RGB(230,230,230));
|
||||
//m_DCFrameInfoTab.SetSelectedColor(0x32CD32);
|
||||
|
||||
CreateAllDlg();
|
||||
|
||||
((CComboBox *)GetDlgItem(IDC_DC_CHOSET))->InsertString(0, "13所吊舱控制");
|
||||
((CComboBox *)GetDlgItem(IDC_DC_CHOSET))->InsertString(1, "天进吊舱控制");
|
||||
((CComboBox *)GetDlgItem(IDC_DC_CHOSET))->SetCurSel(0);
|
||||
|
||||
((CButton *)GetDlgItem(IDC_RADIO1))->SetCheck(true);
|
||||
|
||||
/*启动定时器*/
|
||||
//先关闭
|
||||
DelateTimer();
|
||||
//再启动
|
||||
if((DCDC0verrollTimerId = timeSetEvent(20, 10, (LPTIMECALLBACK)m_DCOverrollTimer, (DWORD)this, TIME_PERIODIC)) == 0)
|
||||
{
|
||||
MessageBox( "通用控制吊舱定时器启动错误!" );
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
BOOL DCOverrollDlg::CreateAllDlg()
|
||||
{
|
||||
CRect m_crect;
|
||||
GetDlgItem(IDC_STATIC_DC_PUBLCI)->GetWindowRect(m_crect);//获得IDC_STATIC_DC_PUBLCI的位置
|
||||
ScreenToClient(&m_crect);
|
||||
|
||||
CRect m_crect2;
|
||||
GetDlgItem(IDC_STATIC_DC)->GetWindowRect(m_crect2);//获得IDC_STATIC_DC的位置
|
||||
ScreenToClient(&m_crect2);
|
||||
|
||||
|
||||
//吊舱新的控制方式 默认显示
|
||||
if(!m_13InstituteDCNewDlg.GetSafeHwnd())
|
||||
{
|
||||
m_13InstituteDCNewDlg.Create(IDD_DIALOG_DC_13INSTITUTE_NEW,this);
|
||||
}
|
||||
|
||||
m_13InstituteDCNewDlg.MoveWindow(m_crect2);//将IDD_DIALOG_DC_13INSTITUTE_NEW移到IDC_STATIC_DC_PUBLCI所在的位置
|
||||
m_13InstituteDCNewDlg.ShowWindow(SW_SHOW);
|
||||
|
||||
if(!m_WHTJDCNewDlg.GetSafeHwnd())
|
||||
{
|
||||
m_WHTJDCNewDlg.Create(IDD_DIALOG_DC_WuHanTJ_NEW,this);
|
||||
}
|
||||
|
||||
m_WHTJDCNewDlg.MoveWindow(m_crect2);//将IDD_DIALOG_DC_13INSTITUTE_NEW移到IDC_STATIC_DC_PUBLCI所在的位置
|
||||
m_WHTJDCNewDlg.ShowWindow(SW_HIDE);
|
||||
|
||||
CRect m_RectShow; //显示部分的面积区域
|
||||
GetWindowRect(&m_RectLarge);
|
||||
GetDlgItem(IDC_STATIC_DC_PUBLCI)->GetWindowRect(&m_RectShow);
|
||||
m_RectSmall.left = m_RectLarge.left;
|
||||
m_RectSmall.top = m_RectLarge.top;
|
||||
m_RectSmall.right = m_RectShow.right;
|
||||
m_RectSmall.bottom = m_RectLarge.bottom;
|
||||
SetWindowPos(NULL,0,0,m_RectSmall.Width(),m_RectSmall.Height(),SWP_NOMOVE|SWP_NOZORDER);
|
||||
|
||||
return true;
|
||||
}
|
||||
//定时器处理函数
|
||||
void DCOverrollDlg::DC0verrollStep(DWORD)
|
||||
{
|
||||
|
||||
}
|
||||
void DCOverrollDlg::DelateTimer()
|
||||
{
|
||||
if(DCDC0verrollTimerId!=0)
|
||||
{
|
||||
timeKillEvent(DCDC0verrollTimerId);
|
||||
DCDC0verrollTimerId = 0;
|
||||
}
|
||||
}
|
||||
void DCOverrollDlg::OnClose()
|
||||
{
|
||||
// TODO: 在此添加消息处理程序代码和/或调用默认值
|
||||
/*关闭定时器*/
|
||||
DelateTimer();
|
||||
|
||||
m_CurSelect = 99;
|
||||
CDialogEx::OnClose();
|
||||
}
|
||||
|
||||
|
||||
void DCOverrollDlg::OnBnClickedBtnShow()
|
||||
{
|
||||
// TODO: 在此添加控件通知处理程序代码
|
||||
|
||||
CString str;
|
||||
GetDlgItemText(IDC_BTN_SHOW, str);
|
||||
if(str == _T("扩展显示>>"))
|
||||
{
|
||||
SetDlgItemText(IDC_BTN_SHOW, _T("隐藏显示<<"));
|
||||
SetWindowPos(NULL, 0, 0, m_RectLarge.Width(), m_RectLarge.Height(),SWP_NOMOVE|SWP_NOZORDER);
|
||||
}
|
||||
else if(str == _T("隐藏显示<<"))
|
||||
{
|
||||
SetDlgItemText(IDC_BTN_SHOW, _T("扩展显示>>"));
|
||||
SetWindowPos(NULL, 0, 0, m_RectSmall.Width(), m_RectSmall.Height(),SWP_NOMOVE|SWP_NOZORDER);
|
||||
}
|
||||
|
||||
}
|
||||
//LRESULT DCOverrollDlg::ProcessDCCMD(WPARAM wParam, LPARAM lParam)
|
||||
//{
|
||||
// if(!gCurGCSCtrlFlag)
|
||||
// {
|
||||
// return 0;
|
||||
// }
|
||||
// if(m_CurSelect == 1)
|
||||
// {
|
||||
// m_WHTJDCNewDlg.UpdateTJDCAction((int)lParam);
|
||||
// }
|
||||
// else if(m_CurSelect == 0 || m_CurSelect == 99)//默认控制13所吊舱
|
||||
// {
|
||||
// m_13InstituteDCNewDlg.UpdateDC13Action((int)lParam);
|
||||
// }
|
||||
//
|
||||
// return 0;
|
||||
//}
|
||||
|
||||
void DCOverrollDlg::OnCbnSelchangeDcChoset()
|
||||
{
|
||||
// TODO: 在此添加控件通知处理程序代码
|
||||
// TODO: 在此添加控件通知处理程序代码
|
||||
//int a = m_DCFrameInfoTab.GetCurSel();
|
||||
UpdateData( true );
|
||||
int iCount =((CComboBox *)GetDlgItem(IDC_DC_CHOSET))->GetCurSel();
|
||||
if(m_CurSelect != iCount)
|
||||
{
|
||||
m_CurSelect = iCount;
|
||||
|
||||
if(m_CurSelect == 0)
|
||||
{
|
||||
/*
|
||||
//吊舱旧的控制方式
|
||||
//删除天进吊舱对话框
|
||||
m_WuHanTJDCDlg.ShowWindow(SW_HIDE);
|
||||
m_WuHanTJDCDlg.DelateTimer();
|
||||
m_WuHanTJDCDlg.m_DCCommonDateProcess.DelateTimer();
|
||||
//显示13所吊舱控制对话框
|
||||
m_13InstituteDCDlg.ShowWindow(SW_SHOW);
|
||||
m_13InstituteDCDlg.InitializeTimer();
|
||||
*/
|
||||
|
||||
//吊舱新的控制方式
|
||||
//显示13所吊舱控制对话框
|
||||
m_13InstituteDCNewDlg.ShowWindow(SW_SHOW);
|
||||
//隐藏天进吊舱控制对话框
|
||||
m_WHTJDCNewDlg.ShowWindow(SW_HIDE);
|
||||
|
||||
Sleep(120);
|
||||
}
|
||||
if(m_CurSelect == 1)
|
||||
{
|
||||
/*
|
||||
//吊舱旧的控制方式
|
||||
//删除13所吊舱对话框
|
||||
m_13InstituteDCDlg.ShowWindow(SW_HIDE);
|
||||
m_13InstituteDCDlg.DelateTimer();
|
||||
m_13InstituteDCDlg.m_DCCommonDateProcess.DelateTimer();
|
||||
//显示天进吊舱控制对话框
|
||||
m_WuHanTJDCDlg.ShowWindow(SW_SHOW);
|
||||
m_WuHanTJDCDlg.InitializeTimer();
|
||||
*/
|
||||
|
||||
//吊舱新的控制方式
|
||||
//隐藏13所吊舱控制对话框
|
||||
m_13InstituteDCNewDlg.ShowWindow(SW_HIDE);
|
||||
//显示天进吊舱控制对话框
|
||||
m_WHTJDCNewDlg.ShowWindow(SW_SHOW);
|
||||
|
||||
Sleep(120);
|
||||
}
|
||||
if(m_CurSelect == 99)//默认显示13所吊舱
|
||||
{
|
||||
/*
|
||||
//吊舱旧的控制方式
|
||||
m_WuHanTJDCDlg.DelateTimer();
|
||||
m_WuHanTJDCDlg.ShowWindow(SW_HIDE);
|
||||
m_WuHanTJDCDlg.m_DCCommonDateProcess.DelateTimer();
|
||||
m_13InstituteDCDlg.DelateTimer();
|
||||
m_13InstituteDCDlg.ShowWindow(SW_HIDE);
|
||||
m_13InstituteDCDlg.m_DCCommonDateProcess.DelateTimer();
|
||||
*/
|
||||
|
||||
//吊舱新的控制方式
|
||||
//隐藏13所吊舱控制对话框
|
||||
m_13InstituteDCNewDlg.ShowWindow(SW_HIDE);
|
||||
//隐藏天进吊舱控制对话框
|
||||
m_WHTJDCNewDlg.ShowWindow(SW_HIDE);
|
||||
|
||||
Sleep(120);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void DCOverrollDlg::OnBnClickedRadio1()
|
||||
{
|
||||
|
||||
m_CurSelect = 0;
|
||||
//显示13所吊舱控制对话框
|
||||
m_13InstituteDCNewDlg.ShowWindow(SW_SHOW);
|
||||
//隐藏天进吊舱控制对话框
|
||||
m_WHTJDCNewDlg.ShowWindow(SW_HIDE);
|
||||
Sleep(120);
|
||||
}
|
||||
|
||||
|
||||
void DCOverrollDlg::OnBnClickedRadio2()
|
||||
{
|
||||
m_CurSelect = 1;
|
||||
//隐藏13所吊舱控制对话框
|
||||
m_13InstituteDCNewDlg.ShowWindow(SW_HIDE);
|
||||
//显示天进吊舱控制对话框
|
||||
m_WHTJDCNewDlg.ShowWindow(SW_SHOW);
|
||||
Sleep(120);
|
||||
}
|
||||
LRESULT DCOverrollDlg::ProcessDCCMD(WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
if(m_CurSelect == 1)
|
||||
{
|
||||
m_WHTJDCNewDlg.UpdateTJDCAction((int)lParam);
|
||||
}
|
||||
//else if(m_CurSelect == 0 || m_CurSelect == 99)//默认控制13所吊舱
|
||||
//{
|
||||
// m_13InstituteDCNewDlg.UpdateDC13Action((int)lParam);
|
||||
//}
|
||||
|
||||
return 0;
|
||||
}
|
@ -0,0 +1,61 @@
|
||||
#pragma once
|
||||
#include "resource.h"
|
||||
#include "DlgWHTJDCNew.h" //武汉天进对话框类新
|
||||
#include "Dlg13InstituteDCNew.h" //13所吊舱对话框类新
|
||||
|
||||
#include "afxwin.h"
|
||||
#include "CMDBtn.h"
|
||||
#include "BtnST.h"
|
||||
#include "afxdlgs.h"
|
||||
// DCOverrollDlg 对话框
|
||||
|
||||
class DCOverrollDlg : public CDialogEx
|
||||
{
|
||||
DECLARE_DYNAMIC(DCOverrollDlg)
|
||||
private:
|
||||
CBrush m_bkBrush; //界面背景画刷
|
||||
public:
|
||||
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
|
||||
public:
|
||||
DCOverrollDlg(CWnd* pParent = NULL); // 标准构造函数
|
||||
virtual ~DCOverrollDlg();
|
||||
|
||||
// 对话框数据
|
||||
enum { IDD = IDD_DIALOG_DC };
|
||||
virtual BOOL OnInitDialog();
|
||||
BOOL CreateAllDlg();
|
||||
//CXTabCtrl m_DCFrameInfoTab;
|
||||
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
|
||||
|
||||
DECLARE_MESSAGE_MAP()
|
||||
public:
|
||||
|
||||
//吊舱新的控制方式
|
||||
Dlg13InstituteDCNew m_13InstituteDCNewDlg; //13所吊舱新控制界面对话框
|
||||
DlgWHTJDCNew m_WHTJDCNewDlg; //武汉天进吊舱新控制界面对话框
|
||||
|
||||
|
||||
|
||||
private:
|
||||
CRect m_RectLarge; //整个,整体全部面积区域
|
||||
CRect m_RectSmall; //隐藏之后的面积区域
|
||||
|
||||
public:
|
||||
//CMFCToolBar m_wndToolBar;
|
||||
//afx_msg void OnUpdate13Ins();
|
||||
//afx_msg void OnUpdateWHTJ(CCmdUI *pCmdUI);
|
||||
void DC0verrollStep(DWORD); //定时器处理函数
|
||||
int DCDC0verrollTimerId; //定时ID
|
||||
int m_CurSelect;
|
||||
void DelateTimer(); //删除定时器
|
||||
afx_msg void OnBnClickedButton1();
|
||||
afx_msg void OnClose();
|
||||
afx_msg void OnBnClickedBtnShow();
|
||||
LRESULT ProcessDCCMD(WPARAM param, LPARAM lparam); //
|
||||
afx_msg void OnCbnSelchangeDcChoset();
|
||||
CStatic m_ShowPosition;
|
||||
afx_msg void OnBnClickedRadio1();
|
||||
afx_msg void OnBnClickedRadio2();
|
||||
};
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,106 @@
|
||||
#pragma once
|
||||
#include "resource.h"
|
||||
#include "global.h"
|
||||
#include <MMSystem.h>
|
||||
#include "afxwin.h"
|
||||
#include "DCFrameCkCmd.h"
|
||||
#include "CYHMudpSend.h"//自定义组播发送
|
||||
#include "CMDBtn.h"
|
||||
// Dlg13InstituteDCNew 对话框
|
||||
|
||||
|
||||
class Dlg13InstituteDCNew : public CDialogEx
|
||||
{
|
||||
DECLARE_DYNAMIC(Dlg13InstituteDCNew)
|
||||
|
||||
public:
|
||||
Dlg13InstituteDCNew(CWnd* pParent = NULL); // 标准构造函数
|
||||
virtual ~Dlg13InstituteDCNew();
|
||||
|
||||
// 对话框数据
|
||||
enum { IDD = IDD_DIALOG_DC_13INSTITUTE_NEW };
|
||||
virtual BOOL OnInitDialog();
|
||||
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
|
||||
|
||||
DECLARE_MESSAGE_MAP()
|
||||
public:
|
||||
void TimeStep(DWORD); //定时器处理函数
|
||||
int mTimerId; //定时ID
|
||||
int num; //指令计数
|
||||
bool injectstart; //吊舱装订开始的标志
|
||||
public:
|
||||
UINT8 SwitchCmd; //开关指令
|
||||
INT16 PitchControl; //俯仰控制量
|
||||
INT16 DirControl; //方位控制量
|
||||
INT16 PitchRecord; //俯仰量记录
|
||||
INT16 DirRecord; //方位量记录
|
||||
|
||||
public:
|
||||
void Update13InsNewCmdBuffer(HWND);//更新控制指令到吊舱协议
|
||||
void UpdateDataZ70_13Ins();//更新buffer到帧结构体
|
||||
void UpdateFrame(int&);
|
||||
void UpdateFrame2(int&);
|
||||
void UpdateFrame3(int&);
|
||||
void UpdateFrame4(int&);
|
||||
void UpdateFrame5();
|
||||
void UpdateFrame6();
|
||||
void UpdateFrame7();
|
||||
void UpdateFrame8();
|
||||
void UpdateFrame9(int&);
|
||||
void UpdateFrame10(int&);
|
||||
void UpdateFrame11(int&);
|
||||
void UpdateFrame12(int&);
|
||||
void UpdateFrame13(int&);
|
||||
void UpdateFrame14();
|
||||
void UpdateFrame15();
|
||||
void UpdateFrame16(int&);
|
||||
void UpdateFrame17(int&);
|
||||
void UpdateFrame18(int&);
|
||||
void UpdateFrame19(int&);
|
||||
void UpdateFrame20();
|
||||
void UpdateFrame21();
|
||||
void UpdateFrame22(int&);
|
||||
void UpdateFrame23(int&);
|
||||
void UpdateFrame24(int&);
|
||||
void UpdateFrame25(int&);
|
||||
void UpdateFrame26(int&);
|
||||
void UpdateFrame27(int&);
|
||||
void UpdateFrame28(int&);
|
||||
void UpdateFrame29(int&);
|
||||
void UpdateFrame30(int&);
|
||||
void UpdateFrame31(int&);
|
||||
void UpdateFrame32(int&);
|
||||
void UpdateFrame33(int&);
|
||||
void UpdateFrame34(int&);
|
||||
void UpdateFrame35();//俯仰+范围50~-110
|
||||
void UpdateFrame36();//俯仰-
|
||||
void UpdateFrame37();//方位+范围180~-180
|
||||
void UpdateFrame38();//方位-
|
||||
//void UpdateFrame39(int&);
|
||||
//void UpdateFrame40(int&);
|
||||
//void UpdateDC13Action(int);
|
||||
|
||||
public:
|
||||
HANDLE hCheckThread;//线程
|
||||
DWORD ThreadCheckIDRegion;
|
||||
afx_msg LRESULT OnUpdate13DCFrame(WPARAM wParam, LPARAM lParam);
|
||||
int InfraredOrVisibleLight;//红外可见光切换
|
||||
virtual BOOL PreTranslateMessage(MSG* pMsg);
|
||||
//CFont m_oFont;//字体
|
||||
|
||||
CMFCButton DC13InsBtn[38];
|
||||
CCMDBtn m_DCFlyCmd[12];
|
||||
double Param1;
|
||||
double Param2;
|
||||
BYTE DC13InsCmdBuffer[5];
|
||||
public:
|
||||
CBrush m_brush;
|
||||
CFont m_font;
|
||||
public:
|
||||
//afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
|
||||
CDCFrameCkCmdFrame DCFrameCkCmd13;//数据注入指令从控发送数据帧---13所吊舱
|
||||
CYHMudpSend m_MudpSend;
|
||||
|
||||
};
|
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Loading…
Reference in New Issue