⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainfrm.cpp

📁 串口收发工具
💻 CPP
📖 第 1 页 / 共 4 页
字号:
void CMainFrame::OnReset() 
{
	// TODO: Add your command handler code here
	ShowList(false);
	nExtFunc = 30;
	if(OrganiseData(nExtFunc))
	{
		SetActionExpain(1,_T("重启动"));
		SetActionExpain(2,"");
		SetActionExpain(5,END);
		nExtFunc = 0;
	}
}

void CMainFrame::OnNaturalStatus() 
{
	// TODO: Add your command handler code here
	ShowList(false);
	nExtFunc = 30;
	if(m_pDoc->SetRTS(true))
		if(OrganiseData(nExtFunc))
		{
			SetActionExpain(1,_T("进入正常监控状态"));
			SetActionExpain(2,"");
			SetActionExpain(5,END);
			nExtFunc = 0;
		}
	
}

void CMainFrame::OnMaintainStatus() 
{
	// TODO: Add your command handler code here
	ShowList(false);
	nExtFunc = 30;
	if(m_pDoc->SetRTS(false))
		if(OrganiseData(nExtFunc))
		{
			SetActionExpain(1,_T("进入系统维护状态"));
			SetActionExpain(2,"");
			SetActionExpain(5,END);
			nExtFunc = 0;
		}
	
}

void CMainFrame::OnKeyboard() 
{
	// TODO: Add your command handler code here
	ShowList(false);
	CDlgKeyboard dlgKeyboard;
	dlgKeyboard.DoModal();
}
void CMainFrame::OnKeyboard(int nKeyIndex)
{
	CString str = _T("键盘操作");
	switch(nKeyIndex)
	{
	case 7:
		str+="(→)";
		break;
	case 8:
		str+="(Enter)";
		break;
	case 6:
		str+="(↓)";
		break;
	case 4:
		str+="(Esc)";
		break;
	case 2:
		str+="(↑)";
		break;
	case 1:
		str+="(+1)";
		break;
	case 3:
		str+="(-1)";
		break;
	case 5:
		str+="(←)";
		break;
	default:
		break;
	}

	nExtFunc = 31;
	if(OrganiseData(nExtFunc,nKeyIndex))
	{
		SetActionExpain(1,str);
		SetActionExpain(2,"");
		SetActionExpain(5,END);
		nSendFileCount = 1;
		nExtFunc = 0;
	}	
}

void CMainFrame::OnClock() 
{
	// TODO: Add your command handler code here
	ShowList(true);
	((CMaintainView*)m_wndSplitter1.GetPane(0, 0))->OnClock();
}

void CMainFrame::OnYk() 
{
	// TODO: Add your command handler code here
	ShowList(true);
	((CMaintainView*)m_wndSplitter1.GetPane(0, 0))->OnYk();
}

void CMainFrame::OnYt() 
{
	// TODO: Add your command handler code here
	ShowList(true);
	((CMaintainView*)m_wndSplitter1.GetPane(0, 0))->OnYt();
}

void CMainFrame::OnYcYx() 
{
	// TODO: Add your command handler code here
	ShowList(true);
	((CMaintainView*)m_wndSplitter1.GetPane(0, 0))->OnYcYx();
}

void CMainFrame::OnManualFrame() 
{
	// TODO: Add your command handler code here
	ShowList(true);
	StopSend();
	((CMaintainView*)m_wndSplitter1.GetPane(0, 0))->OnManualFrame();
}

void CMainFrame::OnUpdownLoad() 
{
	// TODO: Add your command handler code here
	ShowList(true);
	StopSend();
	((CMaintainView*)m_wndSplitter1.GetPane(0, 0))->OnUpdownLoad();
}

void CMainFrame::OnStopSend() 
{
	// TODO: Add your command handler code here
	ShowList(true);
	((CMaintainView*)m_wndSplitter1.GetPane(0, 0))->StopSend();
}
void CMainFrame::OnGuiyueFdk() 
{
	// TODO: Add your command handler code here
	SetSpecialChar(0x01);
	((CMaintainView*)m_wndSplitter1.GetPane(0, 0))->OnGuiyueFdk();
}

void CMainFrame::OnUpdateGuiyueFdk(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	if(ngyType == GY_FDK)
		pCmdUI->SetCheck(1);
	else
		pCmdUI->SetCheck(0);
}

void CMainFrame::OnGuiyueCdt() 
{
	// TODO: Add your command handler code here
	SetSpecialChar(0xEB);
	((CMaintainView*)m_wndSplitter1.GetPane(0, 0))->OnGuiyueCdt();
}

void CMainFrame::OnUpdateGuiyueCdt(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	if(ngyType == GY_CDT)
		pCmdUI->SetCheck(1);
	else
		pCmdUI->SetCheck(0);
}

void CMainFrame::OnGuiyueBus() 
{
	// TODO: Add your command handler code here
	SetSpecialChar(0xBB);
	((CMaintainView*)m_wndSplitter1.GetPane(0, 0))->OnGuiyueModbus();
}


void CMainFrame::OnUpdateGuiyueBus(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	if(ngyType == GY_MODBUS)
		pCmdUI->SetCheck(1);
	else
		pCmdUI->SetCheck(0);
}

void CMainFrame::OnGuiyueDf0420() 
{
	// TODO: Add your command handler code here
	SetSpecialChar(0x7E);
	((CMaintainView*)m_wndSplitter1.GetPane(0, 0))->OnGuiyueDf0420();
}

void CMainFrame::OnUpdateGuiyueDf0420(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	if((ngyType == GY_DF0420)&&(ngyTypeFlag == GY_TYPE_FLAG_DF0420))
		pCmdUI->SetCheck(1);
	else
		pCmdUI->SetCheck(0);
}
void CMainFrame::OnGuiyueDf0241() 
{
	// TODO: Add your command handler code here
	SetSpecialChar(0x7E);
	((CMaintainView*)m_wndSplitter1.GetPane(0, 0))->OnGuiyueDf0241();
}

void CMainFrame::OnUpdateGuiyueDf0241(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	if((ngyType == GY_DF0420)&&(ngyTypeFlag == GY_TYPE_FLAG_DF0421))
		pCmdUI->SetCheck(1);
	else
		pCmdUI->SetCheck(0);
}
void CMainFrame::SetSpecialChar(BYTE byChar)
{
	((CDataShowView*)m_wndSplitter2.GetPane(0,0))->SetSpecialChar(byChar);
	((CMaintainView*)m_wndSplitter1.GetPane(0,0))->m_sendView->SetSpecialChar(byChar);
}

void CMainFrame::ShowList(bool bShow)
{
	((CPreviewPane2*)m_wndSplitter2.GetPane(1,0))->ShowList(bShow);
			
	if(bShow)
	{
		switch(ngyType)
		{
		case GY_FDK:
			SetSpecialChar(0x01);
			break;
		case GY_CDT:
		case GY_JDXJ:
			SetSpecialChar(0xEB);
			break;
		case GY_DF0420:
			SetSpecialChar(0x7E);
			break;
		case GY_MODBUS:
			SetSpecialChar(0xBB);
			break;
		default:
			break;
		}
	}
	else
		SetSpecialChar(0x01);
}

void CMainFrame::ClearDataWindow()
{
	((CMaintainView*)m_wndSplitter1.GetPane(0, 0))->m_sendView->OnClearWindow();
	((CDataShowView*)m_wndSplitter2.GetPane(0, 0))->OnClearWindow();
}

//短消息中心设置
void CMainFrame::OnSmssetup() 
{
	// TODO: Add your command handler code here
	bSmsFlag = true;
	dlgSms.DoModal();
	bSmsFlag = false;
}

//召唤短消息模块的设置
bool CMainFrame::CallSMS()
{
	return ((CMaintainView*)m_wndSplitter1.GetPane(0, 0))->CallSMS();
}

void CMainFrame::GetSMSInfo(SMS_SETUP info)
{
	if (dlgSms) dlgSms.InitSmsInfo(info);
}

void CMainFrame::SetSMS(SMS_SETUP info)
{
	((CMaintainView*)m_wndSplitter1.GetPane(0, 0))->SetSMS(info);
}

void CMainFrame::SetupSmsReturn(int n)
{
	if (dlgSms) dlgSms.SetupSmsReturn(n);
}

void CMainFrame::OnUnicode() 
{
	// TODO: Add your command handler code here
	CDlgUnicodeChange dlgUnicode;
	dlgUnicode.DoModal();
}

void CMainFrame::OnSmsreset() 
{
	// TODO: Add your command handler code here
	bSmsFlag = true;
	((CMaintainView*)m_wndSplitter1.GetPane(0, 0))->Smsreset();
	((CMaintainView*)m_wndSplitter1.GetPane(0, 0))->Smsreset();
	bSmsFlag = false;
}

//工装 2005-8
void CMainFrame::OnGongzhuang() 
{
	// TODO: Add your command handler code here
	bShowData = false;
	ShowList(false);
	StopSend();
	OnGuiyueDf0241();
	
	if(!bGzWndShow)
	{
		dlgGongzhuang  = new CDlgGongzhuang();
		if (dlgGongzhuang)
		{
			dlgGongzhuang->LoadFrame(IDR_GZ); 
			//dlgGongzhuang->ModifyStyle(WS_SIZEBOX,WS_MAXIMIZEBOX);
			dlgGongzhuang->ShowWindow(SW_SHOWMAXIMIZED);
			bGzWndShow = true;
			dlgGongzhuang->SetAddress(nGroupNo,nAddrNo);
		}
	}
	else
		dlgGongzhuang->ShowWindow(SW_SHOWMAXIMIZED);
}

void CMainFrame::OnDestroy() 
{
	CFrameWnd::OnDestroy();
	
	// TODO: Add your message handler code here
	if (dlgGongzhuang)
	{
		//delete dlgGongzhuang;
		dlgGongzhuang = NULL;
	}
	if (dlgAlarmerView)
	{
		//delete dlgGongzhuang;
		dlgAlarmerView = NULL;
	}
}

void CMainFrame::TransBuf(BYTE* buf,int len)
{
	if(dlgGongzhuang)
		dlgGongzhuang->TransBuf(buf,len);
	else if(dlgAlarmerView)
		dlgAlarmerView->TransBuf(buf,len);
}


void CMainFrame::OnGuiyueJdxj() 
{
	// TODO: Add your command handler code here
	SetSpecialChar(0xEB);
	((CMaintainView*)m_wndSplitter1.GetPane(0, 0))->OnGuiyueJdxj();	
}

void CMainFrame::OnUpdateGuiyueJdxj(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	if(ngyType == GY_JDXJ)
		pCmdUI->SetCheck(1);
	else
		pCmdUI->SetCheck(0);	
}
void CMainFrame::OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu) 
{
	CFrameWnd::OnInitMenuPopup(pPopupMenu, nIndex, bSysMenu);
	
	// 不清楚这里的处理的作用
	if(!bSysMenu && CMenuExt::IsMenu(pPopupMenu))
		CMenuExt::UpdateMenu(pPopupMenu);
}

void CMainFrame::OnMeasureItem(int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct) 
{
	if(lpMeasureItemStruct->CtlType == ODT_MENU)
	{
		if( IsMenu((HMENU)lpMeasureItemStruct->itemID) && 
			CMenuExt::IsMenu((HMENU)lpMeasureItemStruct->itemID))
		{
			// 使主框架窗口可以正确的计算出菜单项的尺寸
			m_MenuExt.MeasureItem(lpMeasureItemStruct);
			return;
		}
	}
	
	CFrameWnd::OnMeasureItem(nIDCtl, lpMeasureItemStruct);
}

LRESULT CMainFrame::OnMenuChar(UINT nChar, UINT nFlags, CMenu* pMenu) 
{
	if(CMenuExt::IsMenu(pMenu))
		// 允许使用键盘操作相应的菜单项命令
		return CMenuExt::FindKeyboardShortcut(nChar, nFlags, pMenu);
	else
		return CFrameWnd::OnMenuChar(nChar, nFlags, pMenu);
}

void CMainFrame::OnComset() 
{
	// TODO: Add your command handler code here
	
}

void CMainFrame::OnDropDown(NMHDR* pNotifyStruct, LRESULT* pResult)
{
	NMTOOLBAR* pNMToolBar = (NMTOOLBAR*)pNotifyStruct;
	CRect rect;

	m_wndToolBar.GetToolBarCtrl().GetRect(pNMToolBar->iItem, &rect);
	rect.top = rect.bottom;
	::ClientToScreen(pNMToolBar->hdr.hwndFrom, &rect.TopLeft());
	if(pNMToolBar->iItem == ID_COMSET) //工具下拉菜单
	{
		CMenu* pPopup;
		// 弹出的菜单存在了资源里
		pPopup = GetMenu()->GetSubMenu(2);
		pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_LEFTBUTTON, rect.left, rect.top + 1, AfxGetMainWnd());
	}
	*pResult = TBDDRET_DEFAULT;
}
void CMainFrame::CallAlarmer()
{
	((CMaintainView*)m_wndSplitter1.GetPane(0, 0))->UploadAlarmPara();
}

void CMainFrame::PutParaToStruct(BYTE *buf, int len)
{
	int i;
	if(buf[0] != 0x55)	return;	
	memcpy(&m_GroupStation,buf,len);
	for(i=0;i<32;i++)
	{
		m_GroupStation.Alarm_Area[i] = Long_byte_trans(m_GroupStation.Alarm_Area[i]);
		m_GroupStation.Node_Out[i] = Long_byte_trans(m_GroupStation.Node_Out[i]);
	}
   	WORD wtemp=m_GroupStation.Alarm_Ring_Delay;
	m_GroupStation.Alarm_Ring_Delay = (LOBYTE(wtemp)<<8)+HIBYTE(wtemp);
	m_GroupStation.Alarm32s_Enable = Long_byte_trans(m_GroupStation.Alarm32s_Enable);
	dlgGroupStation.SetComboCheck(&m_GroupStation);
	dlgGroupStation.InformationDesplay(ALARMER_UPLOAD_SUCCESS);
}

void CMainFrame::InformationDesplay(BYTE inf)
{
	dlgGroupStation.InformationDesplay(inf);
}

void CMainFrame::OnQueryalarm() 
{
//	bShowData = false;
//	ShowList(false);
//	StopSend();
//	OnGuiyueDf0241();
	if(!bAlarm_InfWndShow)
	{
		dlgAlarmerView = new CDlgAlarmerView();
		if (dlgAlarmerView)
		{
			dlgAlarmerView->LoadFrame(IDR_AlarmerV); 
			//dlgGongzhuang->ModifyStyle(WS_SIZEBOX,WS_MAXIMIZEBOX);
			dlgAlarmerView->ShowWindow(SW_SHOWMAXIMIZED);
			bAlarm_InfWndShow = true;
		//	dlgGongzhuang->SetAddress(nGroupNo,nAddrNo);
		}
	}
	else
		dlgAlarmerView->ShowWindow(SW_SHOWMAXIMIZED);
	
}

void CMainFrame::OnAlarmersetup() 
{
	dlgGroupStation.DoModal();	
}
void CMainFrame::DownloadAlarmer(GROUPSTATION m_GroupStation)
{
	((CMaintainView*)m_wndSplitter1.GetPane(0, 0))->SetAlarmControler(m_GroupStation);
}

//双字的高低字节位置转换
DWORD CMainFrame::Long_byte_trans(DWORD dwtrans)
{
	DWORD dwtemp;
	dwtemp=((dwtrans & 0xFF) << 24)+((dwtrans & 0xFF00) << 8)+((dwtrans & 0xFF0000) >> 8)+((dwtrans & 0xFF000000) >> 24);
	return dwtemp;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -