// CH91PayloadSoftwareDlg.h : 头文件 // #pragma once #include "MulticastSocket.h" #include "ExportSimpleImgShow.h" #include "ExportImgShowBase.h" #include "JoyKeybordControl.h" #include "JoyStickControlDlg.h" #include "ControlDlgFH96Page1.h" #include "ShowFJDataDlg.h" #include "DlgRecvDataFromQB.h" #include "CUDPSocket.h" #include "ShowReplayDlg.h" #include "MulticastSocketReceiveDlg.h" #include "BtnST.h" #include "EditInput.h" #include "Serial.h" #include "afxwin.h" #include "afxcmn.h" #include "DlgCameraCtrl.h" #include "DlgIMP.h" #include "Dlg13InstituteDCNew.h" #include "DCOverrollDlg.h" //#include "FrameIMP_DOWN.h" // CCH91PayloadSoftwareDlg 对话框 class CCH91PayloadSoftwareDlg : public CDialogEx { // 构造 public: CCH91PayloadSoftwareDlg(CWnd* pParent = NULL); // 标准构造函数 // 对话框数据 enum { IDD = IDD_CH91PAYLOADSOFTWARE_DIALOG }; protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 public: // 分别代表 数据处理的线程的句柄和ID HANDLE m_hThread_ProcessData; DWORD m_ThreadID_ProcessData; // 分别代表 数据处理的线程的句柄和ID HANDLE m_hThread_ProcessDataH264; DWORD m_ThreadID_ProcessDataH264; // UDP实时接收数据 CUDPSocket m_UDPSocket_ZH; // 图像显示模块 CExportSimpleImgShow *m_wndShowEO; // EO // 对话框 CShowFJDataDlg* m_ShowFJDataDlg; // 显示FJ数据对话框 CShowReplayDlg* m_ShowReplayDlg; // 显示视频回放控制对话框 CDlgRecvDataFromQB* m_ShowDlgRecvDataFromQB; //显示情报席位目标定位数据对话框 CMulticastSocketReceiveDlg* m_MulticastSocketReceiveDlg; // 显示组播发送创建对话框 // 视频键盘类 CJoyKeybordControl m_JoyKeybord; // 摇杆控制类(对话框模式,不显示) CJoyStickControlDlg* m_JoyStickControlDlg; // 显示组播接收信息 CString str_MulticastSocketInfo; // rect变量 CRect rect_SmallRegion; CRect rect_BigRegion; // 实现 protected: HICON m_hIcon; // 生成的消息映射函数 virtual BOOL OnInitDialog(); afx_msg void OnSysCommand(UINT nID, LPARAM lParam); afx_msg void OnPaint(); afx_msg HCURSOR OnQueryDragIcon(); DECLARE_MESSAGE_MAP() public: // 美化主界面按钮 CButtonST m_Btn_Replay; // 视频回放 CButtonST m_Btn_FJ; // 复接数据 CButtonST m_Btn_Trans; // 可见光,红外变换显示 CButtonST m_Btn_CaptureVideo; // 视频录像 CButtonST m_Btn_CaptureImg; // 抓图 CButtonST m_Btn_Result; // 录像及截图结果预览 CButtonST m_Btn_ReadImg; // 读取图片(数码照片) CButtonST m_Btn_Guide; // 数引功能 CButtonST m_Btn_QBFunctions; // 参数设置 CButtonST m_Btn_SocketSend; // 组播发送 CButtonST m_Btn_SocketReceive; // 组播收数 CButtonST m_Btn_PhotoCtrl; // 图片浏览 CButtonST m_Btn_PayloadEvaluation; // 载荷评价 void DlgStyleChange(); public: afx_msg void OnDestroy(); // 对控制页面的Tab页进行初始化 void OnInitControlDlg(); // 对解码器进行初始化 void OnInitCH96Decoder(); // 通过视频回放页面控制载荷类型,型号类型在配置文件中更改 LRESULT PayloadTypeSet(WPARAM wParam, LPARAM lParam); // 可见光,红外显示复接数据 LRESULT ShowMsgOnDlgEO(WPARAM wParam, LPARAM lParam); LRESULT ShowMsgOnDlgIR(WPARAM wParam, LPARAM lParam); // 数码照片复接数据 LRESULT ShowMsgOnDlgDC(WPARAM wParam, LPARAM lParam); // 回放进度停止时,清空图像缓存 void ShowEOImg(cv::Mat img); LRESULT ShowGuideAzimuthOnDlg(WPARAM wParam, LPARAM lParam); LRESULT ShowGuidePitchOnDlg(WPARAM wParam, LPARAM lParam); // 在发送控制指令之后,将焦点设置在主界面上 LRESULT SetFocusOnMainDlg(WPARAM wParam, LPARAM lParam); // 显示复接数据 void ShowImgFJData(); afx_msg void OnBnClickedBtnShowFj(); //afx_msg void OnBnClickedBtnSendKz(); // 显示发送指令内容 LRESULT ShowCtrlInstruction(WPARAM wParam, LPARAM lParam); // 解析开关指令 CString TranlateBackSwitchInstructions(UINT8 switchInstruction); //解析载荷工作状态 void ZHWorkState(UINT8 CurrentImgType, UINT8 SystemState, UINT8 LaserState); afx_msg void OnBnClickedBtnLookupResult(); // 主界面数引控制 CEditInput str_Guide_Azimuth; //方位角 CEditInput str_Guide_Pitch; //俯仰角 float m_Guide_Azimuth; //方位角 float m_Guide_Pitch; //俯仰角 virtual BOOL PreTranslateMessage(MSG* pMsg); afx_msg void OnTimer(UINT_PTR nIDEvent); //afx_msg void OnBnClickedBtnCaptureImg(); //图像采集(视频录像功能定义在Global中) bool m_bCaptureEOImg; bool m_bCaptureIRImg; // 主界面显示UDP组播连接及串位情况 afx_msg void OnBnClickedBtnReplay(); // 主界面方位角Picture Control afx_msg void OnBnClickedBtnBigimage(); // 关联对话框变量 // 当前图像类型 CString str_CurrentImgType; // 两种 EO图像/IR图像 // 是否按下鼠标中键 BOOL m_bMButtonDown; // TRUE: 按下鼠标中键 FALSE: 抬起鼠标中键 private: CUDPSocket m_UdpSend2Payload; bool m_bCreatUDP; //CControlDlgFH96Page1* m_CControlDlgFH96Page1Dlg; CDlgCameraCtrl * p_DlgCameraCtrl;//吊舱控制页面 Dlg13InstituteDCNew * p_Dlg13InstituteDCNewCtrl;//13所吊舱新控制放页面 DCOverrollDlg *p_DlgDCOverroll;//吊舱控制总页面 public: afx_msg BOOL OnMouseWheel(UINT nFlags, short zDelta, CPoint pt); // 视频全屏显示 BOOL m_bVideoShowFullScreen; // TRUE: 视频全屏显示 FALSE: 视频非全屏显示 void VideoShowFullScreenONOFF(); // 串口类, 连接视频键盘 CSerial m_Serial; // 串口 void DlgLanguageSet(); afx_msg void OnBnClickedBtnMulticastsocketreceive(); afx_msg void OnBnClickedBtnCaptureVideo(); // 图像显示界面左键双击,目标跟踪 afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point); // 图像显示界面右键单击,手动模式 afx_msg void OnRButtonDown(UINT nFlags, CPoint point); // 图像显示界面摁住鼠标中键拖动,控制伺服 afx_msg void OnMButtonDown(UINT nFlags, CPoint point); afx_msg void OnMouseMove(UINT nFlags, CPoint point); afx_msg void OnMButtonUp(UINT nFlags, CPoint point); // 计算拖动鼠标时,偏移量形成的角度 double GetOffsetAngle(int X, int Y); //////IMP相关 CDlgIMP * g_DlgIMP;//IMP对话框 //CSerial m_SerialIMP; // IMP通信串口 //char pSerialPort[20];//串口号 //DWORD pSerialPortBaud;//端口号 //void onInitIMPFrame();//初始化IMP协议 //LRESULT OnUpdateIMPDownDataChecked(WPARAM param, LPARAM lparam); //处理IMP下行通过校验的遥测数据 };