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

📄 mainfrm.cpp

📁 cdma无线通信转发程序 用于电力调度数据的转发
💻 CPP
📖 第 1 页 / 共 2 页
字号:

	CMDIFrameWnd::OnClose();
}

/////////////////////////////
int CMainFrame::AddChildFrame (CChildFrame *Child)
{
	int wChildNo = -1;
	if(ChildFrameNum >= MAXVIEWNUM || m_no <0) return -1;
	for (int i = 0; i < MAXVIEWNUM; i++)
//	for(int i=MAXVIEWNUM; i>=0; i--)
	{
		if (ChildFrameList[i]==0)
		{
			ChildFrameList[i] = Child;
			m_ChanNo[i] = m_no;
			if(strcmp(G_Channel.chan_data [m_no].chanName,"")==0)
				m_strTitle.Format("第%02d号通道",m_no);
			else
				m_strTitle.Format("%s (通道%d)",G_Channel.chan_data[m_no].chanName,m_no);
			Child->SetWindowText(m_strTitle);
            ChildFrameList[i]->ActivateFrame();
			ShowFlag[i] =1;
			wChildNo = i;

			ChildFrameNum ++;
			break;
		}
	}
	OnCommand(ID_WINDOW_TILE_VERT, 0);
	//CMDIFrameWnd::OnCommand(ID_WINDOW_TILE_VERT,0);
    return wChildNo;
}

void CMainFrame::ClearChildFrame (CChildFrame *Child)
{
    for (int i=0; i<MAXVIEWNUM; i++) 
	{
        if (ChildFrameList[i] == Child) 
		{
			m_ChanNo[i] = -1;
			ChildFrameList[i] = 0;
            ChildFrameNum --;
			flag = 1;
            break;
        }
    }
}

void CMainFrame::ShowDataToView(int chanNo, uchar chanType, uchar chanRorT, char *buf,int len)
{
	if(chanNo >=  MAXCHANNUM || buf == NULL) return;
	int no =-1;
	for(int i =0;i<MAXVIEWNUM;i++){ 
		if(chanNo == m_ChanNo[i]) 
		{
			no = i ; break;
		}
	}
	if(no == -1) return;
	if(saveFlag[no] ==1)
	{
//		FERTIME	ft;		
		FILE * fp;
		char filename[120],	g_ParaFilePath[MAX_PATH]; 
		if(!GetCurrentDirectory(MAX_PATH,g_ParaFilePath))
			strcpy(g_ParaFilePath,PATH);
//		getTime(&ft);
		sprintf(filename, "%s/%s", g_ParaFilePath, G_Channel.chan_data[chanNo].chanName );

		if(chanType == RECCHAN)
			strcat(filename,"接收通道");
		else
			strcat(filename,"转发通道");
		if(!chanRorT)
			strcat(filename,"rev.txt");
		else
			strcat(filename,"send.txt");
		
		struct _stat rdbfstat;
		int len1;
		int ret=_stat(filename,&rdbfstat);
		if(ret!=0)
			len1=-1;
		else len1=rdbfstat.st_size;
		
		if(len1 < 2000 * 1024 )
			fp = fopen(filename,"a+");
		else 
			fp = fopen(filename,"w");
		
		if(fp)
		{
			//	fprintf(fp,"%d月%d日%d时%d分%d秒%d毫秒\n",ft.aMon,ft.aDay,ft.aHour,ft.aMin,ft.aSec,ft.aMs);
			for(int k=0; k<len; k++)
			{
				fprintf(fp," %02x",(*(buf+k)& 0xff));
			}
			fprintf(fp,"\n");
			fclose(fp);
		}
	}
	
	if(ShowFlag[no]==0) return;
	
	CString m_data,str,str1;
	CMy3104CView *pView = (CMy3104CView *)ChildFrameList[no]->GetActiveView(); 
	if(pView == NULL)  return ;
	
	CRichEditCtrl &p = (CRichEditCtrl &)pView->GetRichEditCtrl();
    int lines=p.GetLineCount();
	
    pView->GetWindowText(m_data);
	if(lines > 200) {
		m_data = "";
		pView->SetWindowText(m_data);
	}

	if(chanType == RECCHAN) //rx
	{ 
		 str = "接收通道:\r\n";
	}
	else
	{
         str = "转发通道:\r\n";
	}
    m_data += str;
	if(chanRorT == 0)
		str ="TX: ";
	else str ="RX: ";
	m_data +=str;
	for(i=0; i<len; i++)
   {
	   str.Format("%02x ",(*(buf+i)& 0xff));
	   m_data += str;
   }
   m_data +="\r\n";
   pView->SetWindowText(m_data);
	lines = m_data.GetLength();
   p.SetSel(lines,lines);
}


void CMainFrame::OnShowdataAll() 
{
    int flag = 0;
    for(int i=0;i<G_Channel.chan_num;i++)
	//for(int i=G_Channel.chan_num-1; i>=0; i--)
	{
		flag =0;
		if(i>=MAXVIEWNUM) 
		{
			return;
			//i=MAXVIEWNUM-1;
		}
		for(int j=0; j<MAXVIEWNUM;j++)
		//for(int j=MAXVIEWNUM-1; j>=0; j--)
		{
			if(m_ChanNo[j] == i)
			{
				flag =1;
				break;
			}
		}
		if(flag) {
			if(ShowFlag[j] ==0) ShowFlag[j] =1;
			continue;
		}
		m_no = i;
		theApp.addnew();
	}
}
void CMainFrame::OnShowdata(UINT ID)
{
	m_no = ID - STARMENUID;
	for(int j=0; j<MAXVIEWNUM;j++)
	{
		if(m_ChanNo[j] == m_no)
		{
			ChildFrameList[j]->ActivateFrame();
			if(ShowFlag[j] ==0) ShowFlag[j] =1;
			return;
		}
	}
	theApp.addnew();
	return;
}
BOOL CMainFrame::OnCommand(WPARAM wParam, LPARAM lParam) 
{
//if(wParam>=STARMENUID && wParam<=STARMENUID+MAXCHANNUM)

	return CMDIFrameWnd::OnCommand(wParam, lParam);
}

void CMainFrame::OnShowStop() 
{
    CChildFrame *Child = (CChildFrame *)this->GetActiveFrame();
	if(Child == NULL) return;

	for(int j=0; j<MAXVIEWNUM;j++)
	{
		if(ChildFrameList[j] == Child) 
		{
			if(ShowFlag[j] ==1) ShowFlag[j] =0;
			break;
		}
	}	
}

void CMainFrame::OnShowdataStart() 
{
 	CChildFrame *Child = (CChildFrame *)this->GetActiveFrame();
	if(Child == NULL) return;

	for(int j=0; j<MAXVIEWNUM;j++)
	{
		if(ChildFrameList[j] == Child) 
		{
			if(ShowFlag[j] ==0) ShowFlag[j] =1;
			break;
		}
	}
}
void CMainFrame::OnShowClear()
{
	CChildFrame *Child = (CChildFrame *)this->GetActiveFrame();
	for(int j=0; j<MAXVIEWNUM;j++)
	{
		if(ChildFrameList[j] == Child) 
		{
			CMy3104CView *pView = (CMy3104CView *)ChildFrameList[j]->GetActiveView();
			pView->SetWindowText("");
			break;
		}
	}
}
void CMainFrame::OnUpdateShowdataStart(CCmdUI* pCmdUI) 
{
	CChildFrame *Child = (CChildFrame *)this->GetActiveFrame();
	if(Child == NULL) 
	{
		pCmdUI->Enable(FALSE);
		return;
	}
    pCmdUI->Enable(FALSE);
	for(int j=0; j<MAXVIEWNUM;j++)
	{
		if(ChildFrameList[j] == Child) 
		{
			if(ShowFlag[j] ==0) pCmdUI->Enable(TRUE);
			break;
		}
	}	
}

void CMainFrame::OnUpdateShowStop(CCmdUI* pCmdUI) 
{
	CChildFrame *Child = (CChildFrame *)this->GetActiveFrame();
	if(Child == NULL) 
	{
		pCmdUI->Enable(FALSE);
		return;
	}
	pCmdUI->Enable(FALSE);
	for(int j=0; j<MAXVIEWNUM;j++)
	{
		if(ChildFrameList[j] == Child) 
		{
			if(ShowFlag[j] ==1) pCmdUI->Enable(TRUE);
			break;
		}
	}	
}

void CMainFrame::OnUpdateSaveData(CCmdUI* pCmdUI) 
{
	CChildFrame *Child = (CChildFrame *)this->GetActiveFrame();
	if(Child == NULL) 
	{
		pCmdUI->Enable(FALSE);
		return;
	}
	pCmdUI->Enable(FALSE);
	pCmdUI->SetCheck(FALSE);
	for(int j=0; j<MAXVIEWNUM;j++)
	{
		if(ChildFrameList[j] == Child) 
		{
			pCmdUI->Enable(TRUE);
			if(saveFlag[j] ==1) pCmdUI->SetCheck(TRUE);
			break;
		}
	}	
}

void CMainFrame::OnSaveData() 
{
	CChildFrame *Child = (CChildFrame *)this->GetActiveFrame();
	if(Child == NULL) return;

	for(int j=0; j<MAXVIEWNUM;j++)
	{
		if(ChildFrameList[j] == Child) 
		{
			saveFlag[j]=1-saveFlag[j];
			break;
		}
	}
}

BOOL CMainFrame::OnEraseBkgnd(CDC* pDC) 
{
	//pDC->TextOut(100,100,"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");

	return CMDIFrameWnd::OnEraseBkgnd(pDC);
}

void CMainFrame::OnUpdateClear(CCmdUI* pCmdUI)
{
   CChildFrame *Child = (CChildFrame *)this->GetActiveFrame();
	if(Child == NULL) 
	{
		pCmdUI->Enable(FALSE);
		return;
	}

	pCmdUI->Enable(FALSE);
	for(int j=0; j<MAXVIEWNUM;j++)
	{
		if(ChildFrameList[j] == Child) 
		{
			if(ShowFlag[j] ==1) pCmdUI->Enable(TRUE);
			break;
		}
	}
	
}

⌨️ 快捷键说明

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