Compare commits

...

1 Commits
main ... chen

Author SHA1 Message Date
CaoYuHui 6716ee1862 981CS适配 9 months ago

@ -93,7 +93,7 @@ BOOL DCOverrollDlg::OnInitDialog()
((CComboBox *)GetDlgItem(IDC_DC_CHOSET))->InsertString(0, "13所吊舱控制");
((CComboBox *)GetDlgItem(IDC_DC_CHOSET))->InsertString(1, "天进吊舱控制");
((CComboBox *)GetDlgItem(IDC_DC_CHOSET))->SetCurSel(0);
((CComboBox *)GetDlgItem(IDC_DC_CHOSET))->SetCurSel(1);
((CButton *)GetDlgItem(IDC_RADIO1))->SetCheck(true);
@ -120,22 +120,23 @@ BOOL DCOverrollDlg::CreateAllDlg()
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);
m_13InstituteDCNewDlg.ShowWindow(SW_HIDE);
//默认显示
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);
m_WHTJDCNewDlg.ShowWindow(SW_SHOW);
CRect m_RectShow; //显示部分的面积区域
GetWindowRect(&m_RectLarge);

@ -714,6 +714,50 @@ void DlgWHTJDCNew::UpdateDataZ70_TJDC()
g_MUDPCamera.SendToY(DCFrameCkCmdWHTJ.Addr(), 20);
}
/******************模拟发送天进吊舱控制指令************************/
BYTE DCBufferCmd[44];
DCBufferCmd[0] = 0xFB;//帧头
DCBufferCmd[1] = 0x2C;//帧头
DCBufferCmd[2] = TJDCCmdBuffer[1];
DCBufferCmd[3] = TJDCCmdBuffer[2];
DCBufferCmd[4] = TJDCCmdBuffer[3];
DCBufferCmd[5] = TJDCCmdBuffer[4];
DCBufferCmd[6] = TJDCCmdBuffer[5];
for(int i=7;i<13;++i)
{
DCBufferCmd[i] = 0x00;
}
/*精确到毫秒级*/
SYSTEMTIME st;
GetLocalTime(&st);
DCBufferCmd[13] = st.wYear - 2000;
DCBufferCmd[14] = st.wMonth;
DCBufferCmd[15] = st.wDay;
DCBufferCmd[16] = st.wHour;
DCBufferCmd[17] = st.wMinute;
DCBufferCmd[18] = st.wSecond;
DCBufferCmd[19] = st.wMilliseconds;
for(int i=20;i<37;++i)
{
DCBufferCmd[i] = 0x00;
}
DCBufferCmd[37] = TJDCCmdBuffer[6];
DCBufferCmd[38] = TJDCCmdBuffer[7];
DCBufferCmd[39] = TJDCCmdBuffer[8];
DCBufferCmd[40] = TJDCCmdBuffer[9];
DCBufferCmd[41] = TJDCCmdBuffer[10];
BYTE S2 = DCBufferCmd[2];
BYTE S3 = DCBufferCmd[3];
for(int i = 4;i<41;++i)
{
S3 = S3^S2;
S2 = DCBufferCmd[i];
}
DCBufferCmd[42] = S3;
DCBufferCmd[43]=0xF0;
WHTJCmdGCSUDPSocket.WriteBuffer(DCBufferCmd,44);
//TJDCCmdBuffer헌왕
memset(TJDCCmdBuffer,0,sizeof(TJDCCmdBuffer));

@ -121,7 +121,6 @@ public:
CDCFrameCkCmdFrame DCFrameCkCmdWHTJ;//数据注入指令从控发送数据帧---武汉天进吊舱
afx_msg void OnCbnSelchangeComboTjdc2();//伺服控制步长选择
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
};

@ -500,3 +500,9 @@ bool SelectPointTrack;//ѡ
HWND DlgDCOverroll_Hwnd; //DCOverrollDlg句柄
float m_wndShowEO_Position_Max_x; //图像显示区域的坐标最大值x
float m_wndShowEO_Position_Max_y; //图像显示区域的坐标最大值y
CString strSysIniName; //配置文件名
CString strCurDir; //工作目录名
CString g_strSoftwareWorkFolder; //软件工作目录
CUDPSocket WHTJCmdGCSUDPSocket; //天进吊舱控制-地面站UDP通信

@ -516,3 +516,9 @@ extern HWND DlgDCOverroll_Hwnd; //DCOverrollDlg
extern float m_wndShowEO_Position_Max_x; //图像显示区域的坐标最大值x
extern float m_wndShowEO_Position_Max_y; //图像显示区域的坐标最大值y
extern CString strSysIniName; // 配置文件名
extern CString strCurDir; // 工作目录名
extern CString g_strSoftwareWorkFolder; //软件工作目录
extern CUDPSocket WHTJCmdGCSUDPSocket; //天进吊舱控制-地面站UDP通信

@ -58,8 +58,11 @@ CMulticastSocketReceiveDlg::CMulticastSocketReceiveDlg(CWnd* pParent /*=NULL*/)
m_strSACUDPIPAddr = "";
m_nSACUDPRemotePort = 2203;
m_nSACUDPLocalPort = 8009;
m_sysSetComNumber = 0;//窜口数
//天进吊舱控制指令至地面站通信接口
m_WHTJCmdUDPRemotePort = 9000;
m_WHTJCmdUDPRemoteIPStr = "";
m_WHTJCmdUDPLocalPort = 9001;
}
CMulticastSocketReceiveDlg::~CMulticastSocketReceiveDlg()
@ -76,6 +79,11 @@ void CMulticastSocketReceiveDlg::DoDataExchange(CDataExchange* pDX)
DDX_CBString(pDX, IDC_COMBO_PORT_IMP, mComPortIMP);
DDX_CBString(pDX, IDC_COMBO_BAUD_IMP, mComBaudIMP);
//天进吊舱控制指令至地面站通信接口
DDX_Control(pDX, IDC_TJCmd_RemoteIP, m_WHTJCmdUDPRemoteIP);
DDX_Text(pDX, IDC_EDIT_TJCmd_RemotePort, m_WHTJCmdUDPRemotePort);
DDX_Text(pDX, IDC_EDIT_TJCmd_LocalPort, m_WHTJCmdUDPLocalPort);
}
@ -97,6 +105,7 @@ BEGIN_MESSAGE_MAP(CMulticastSocketReceiveDlg, CDialogEx)
ON_BN_CLICKED(IDC_RADIO_DC_13Ins, &CMulticastSocketReceiveDlg::OnBnClickedRadioDc13ins)
ON_BN_CLICKED(IDC_RADIO_DC_WHTJ, &CMulticastSocketReceiveDlg::OnBnClickedRadioDcWhtj)
ON_BN_CLICKED(IDC_RADIO_H264Data, &CMulticastSocketReceiveDlg::OnBnClickedRadioH264data)
ON_BN_CLICKED(IDC_BTN_TJCmd_Connect, &CMulticastSocketReceiveDlg::OnBnClickedBtnTjcmdConnect)
END_MESSAGE_MAP()
BOOL CMulticastSocketReceiveDlg::OnInitDialog()
@ -133,6 +142,24 @@ BOOL CMulticastSocketReceiveDlg::OnInitDialog()
((CButton *)GetDlgItem(IDC_RADIO_DC_WHTJ))->SetCheck(false);
((CButton *)GetDlgItem(IDC_RADIO_H264Data))->SetCheck(false);
char inBuf[100];
g_strSoftwareWorkFolder = GetSoftwareCurrentDirectory(); //当前工作目录
strSysIniName = g_strSoftwareWorkFolder + _T( "\\SysCfg.ini" );
GetPrivateProfileString( "天进吊舱控制-地面站UDP通信设置", "远端IP地址", "0.0.0.0", inBuf, 20, strSysIniName );
m_WHTJCmdUDPRemoteIPStr.Format( "%s", inBuf );
m_WHTJCmdUDPRemoteIP.SetWindowText(m_WHTJCmdUDPRemoteIPStr);
GetPrivateProfileString( "天进吊舱控制-地面站UDP通信设置", "远端端口号", "", inBuf, 20, strSysIniName );
m_WHTJCmdUDPRemotePort = atoi( inBuf );
GetPrivateProfileString( "天进吊舱控制-地面站UDP通信设置", "本地端口号", "", inBuf, 20, strSysIniName );
m_WHTJCmdUDPLocalPort = atoi( inBuf );
UpdateData(false);
return TRUE; // return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE
}
@ -749,3 +776,43 @@ void CMulticastSocketReceiveDlg::OnBnClickedRadioH264data()
((CButton *)GetDlgItem(IDC_RADIO_DC_WHTJ))->SetCheck(false);
((CButton *)GetDlgItem(IDC_RADIO_H264Data))->SetCheck(true);
}
//天进吊舱控制-发送至地面站控制指令
void CMulticastSocketReceiveDlg::OnBnClickedBtnTjcmdConnect()
{
// TODO: 在此添加控件通知处理程序代码
UpdateData(true);
TCHAR inBuf[30];
m_WHTJCmdUDPRemoteIP.GetWindowText(m_WHTJCmdUDPRemoteIPStr);
WritePrivateProfileString( "天进吊舱控制-地面站UDP通信设置", "远端IP地址", m_WHTJCmdUDPRemoteIPStr, strSysIniName );
WritePrivateProfileString( "天进吊舱控制-地面站UDP通信设置", "本地IP地址", "0.0.0.0",strSysIniName );
itoa(m_WHTJCmdUDPRemotePort,inBuf,10);
WritePrivateProfileString( "天进吊舱控制-地面站UDP通信设置", "远端端口号", inBuf, strSysIniName );
itoa(m_WHTJCmdUDPLocalPort,inBuf,10);
WritePrivateProfileString( "天进吊舱控制-地面站UDP通信设置", "本地端口号", inBuf, strSysIniName );
CString str;
GetDlgItemText(IDC_BTN_TJCmd_Connect, str);
if(str == _T("断开"))
{
if(WHTJCmdGCSUDPSocket.StartListening())
{
WHTJCmdGCSUDPSocket.StopListening();
}
GetDlgItem(IDC_BTN_TJCmd_Connect)->SetWindowTextA("连接");
}
else if(str == _T("连接")){
WHTJCmdGCSUDPSocket.SetCallBack(NULL,nullptr);
WHTJCmdGCSUDPSocket.SetParams(_T("0.0.0.0"),m_WHTJCmdUDPLocalPort,m_WHTJCmdUDPRemoteIPStr,m_WHTJCmdUDPRemotePort);
if(!WHTJCmdGCSUDPSocket.StartListening())
{
MessageBox("吊舱UDP通信端口打开失败");
}
GetDlgItem(IDC_BTN_TJCmd_Connect)->SetWindowTextA("断开");
}
}

@ -91,6 +91,12 @@ public:
//const int MaxComPortNumber = 1024;
//const unsigned BAUDITEMNUM = 10; //波特率数目
//const unsigned NCOUNTER = 500; //失败尝试次数
//天进吊舱控制指令至地面站通信接口
CString m_WHTJCmdUDPRemoteIPStr; //远端IP 字符串
CIPAddressCtrl m_WHTJCmdUDPRemoteIP; //远端IP
int m_WHTJCmdUDPRemotePort; //远端端口号
int m_WHTJCmdUDPLocalPort; //本地端口号
private:
//添加系统串口到组合选择框
void AddPortNumberToComboBox();
@ -112,4 +118,5 @@ public:
afx_msg void OnBnClickedRadioDcWhtj();//吊舱类型选择-武汉天进吊舱
afx_msg void OnBnClickedRadioH264data();//吊舱类型选择-h264数据
int m_DCvideoTypeSelct;
afx_msg void OnBnClickedBtnTjcmdConnect();
};

@ -13,3 +13,6 @@
增加视频管理计算机指令(开关指令)发送
增加13所吊舱协议、天进吊舱协议、H264裸流视频协议解析选择
增加天进吊舱点击“单点跟踪”按钮后,双击图像区域发送吊舱跟踪坐标点
20240702
981cs需求适配
Loading…
Cancel
Save