Ejemplo n.º 1
0
// 停止数据存储
//************************************
// Method:    OnSaveStop
// FullName:  CSaveFile::OnSaveStop
// Access:    public 
// Returns:   void
// Qualifier:
// Parameter: void
//************************************
void CSaveFile::OnSaveStop(void)
{
	m_bStartSave = false;
	CString strtemp = _T("");
	m_Sec_SavePortMonitorFrame.Lock();
	strtemp = m_csEditShow;
	m_Sec_SavePortMonitorFrame.Unlock();
	m_pWndTab->GetDlgItem(IDC_EDIT_RECEIVE)->SetWindowText(strtemp);
	OnSaveToFile();
}
Ejemplo n.º 2
0
// 保存发送数据
void CSaveFile::OnSaveSendData(unsigned char* buf, int iSendLength)
{
	if (m_bStartSave == FALSE)
	{
		return;
	}
	CString str = _T("");
	CString strtemp = _T("");
	int icsSaveFileLength = 0;
	SYSTEMTIME  sysTime;
	GetLocalTime(&sysTime);

	str.Format(_T("%04d.%02d.%02d %02d:%02d:%02d:%04d 发送数据 数据包大小为 %d 数据为:\r\n"),sysTime.wYear, sysTime.wMonth, sysTime.wDay,
		sysTime.wHour, sysTime.wMinute, sysTime.wSecond, sysTime.wMilliseconds, iSendLength);
	strtemp += str;

	for (int i=0; i<iSendLength; i++)
	{
		ProcessMessages();
		str.Format(_T("%02x "),buf[i]);
		strtemp += str;

	}

	strtemp += _T("\r\n");
	m_Sec.Lock();
	m_csSaveFile += strtemp;
	m_csSaveSendFile += strtemp;
	m_csEditShow += strtemp;
	icsSaveFileLength = m_csSaveFile.GetLength();
	m_Sec.Unlock();
	//	GetDlgItem(IDC_EDIT_RECEIVE)->SetWindowText(m_cseditshow);
	// 用UpdateData(FALSE)快速反复刷新界面会占用大量资源,拖慢速度
	//	UpdateData(FALSE);
	if (icsSaveFileLength > (m_iSaveSize*1024))
	{
// 		CWnd* pwnd = AfxGetMainWnd();
// 		m_oThreadManage.m_SendThread.m_csTailFrameShow = _T("");
// 		pwnd->GetDlgItem(IDC_EDIT_TAILFRAMESHOW)->SetWindowText(_T(""));
// 		m_oThreadManage.m_SendThread.m_csTailTimeReturnShow = _T("");
// 		pwnd->GetDlgItem(IDC_EDIT_TAILTIMERETURNSHOW)->SetWindowText(_T(""));
// 		m_oThreadManage.m_SendThread.m_csDelayTimeReturnShow = _T("");
// 		pwnd->GetDlgItem(IDC_EDIT_DELAYTIMERETURNSHOW)->SetWindowText(_T(""));
// 		m_oThreadManage.m_SendThread.m_csADCDataRecShow = _T("");
// 		pwnd->GetDlgItem(IDC_EDIT_ADCDATARECSHOW)->SetWindowText(_T(""));
		OnSaveToFile();
	}
}
Ejemplo n.º 3
0
// 保存接收数据
//************************************
// Method:    OnSaveReceiveData
// FullName:  CSaveFile::OnSaveReceiveData
// Access:    public 
// Returns:   void
// Qualifier:
// Parameter: unsigned char * buf
// Parameter: int iRecLength
//************************************
void CSaveFile::OnSaveReceiveData(unsigned char* buf, int iRecLength)
{
	if (m_bStartSave == FALSE)
	{
		return;
	}

	CString str = _T("");
	CString strtemp = _T("");
	int icsSaveFileLength = 0;

	SYSTEMTIME  sysTime;
	GetLocalTime(&sysTime);

	str.Format(_T("%04d.%02d.%02d %02d:%02d:%02d:%03d 接收数据 数据包大小为 %d 数据为:\r\n"),sysTime.wYear, sysTime.wMonth, sysTime.wDay,
		sysTime.wHour, sysTime.wMinute, sysTime.wSecond, sysTime.wMilliseconds, iRecLength);
	strtemp += str;

	for (int i=0; i<iRecLength; i++)
	{
		ProcessMessages();
		str.Format(_T("%02x "),buf[i]);
		strtemp += str;
	}

	strtemp += _T("\r\n");
	m_Sec_SavePortMonitorFrame.Lock();
	m_csSaveFile += strtemp;
	m_csSaveReceiveFile += strtemp;
	m_csEditShow += strtemp;
	icsSaveFileLength = m_csSaveFile.GetLength();
	m_Sec_SavePortMonitorFrame.Unlock();
	//	GetDlgItem(IDC_EDIT_RECEIVE)->SetWindowText(m_cseditshow);
	//	UpdateData(FALSE);
	if (icsSaveFileLength> (m_iSaveSize*1024))
	{	
		OnSaveToFile();
	}
}
Ejemplo n.º 4
0
// Handles a menu item selection
LRESULT CNoteDlg::OnCommand(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
	switch (LOWORD(wParam))
	{
	case IDR_MENU_NEWNOTE:
		OnNewNote();
		break;
	case IDR_MENU_SAVE:
		OnSave(true);
		break;
	case IDR_MENU_SAVETOFILE:
		OnSaveToFile();
		break;
	case IDR_MENU_IMPORTFROMFILE:
		OnImportFromFile();
		break;
	case IDR_MENU_DELETE:
		OnDelete();
		break;
	case IDR_MENU_SETFONT:
		OnSetFont();
		break;
	case ID_EDIT_SETTITLE:
		OnSetTitle();
		break;
	case IDR_MENU_CLOSE:
		CloseDialog(0);
		break;
	case IDR_MENU_BLUE:
		OnChangeBkgndColor(BLUE);
		break;
	case IDR_MENU_GREEN:
		OnChangeBkgndColor(GREEN);
		break;
	case IDR_MENU_PINK:
		OnChangeBkgndColor(PINK);
		break;
	case IDR_MENU_YELLOW:
		OnChangeBkgndColor(YELLOW);
		break;
	case IDR_MENU_WHITE:
		OnChangeBkgndColor(WHITE);
		break;
	case IDR_MENU_0:
		MakeTransparent(255);
		break;
	case IDR_MENU_10:
		MakeTransparent(225);
		break;
	case IDR_MENU_20:
		MakeTransparent(200);
		break;
	case IDR_MENU_30:
		MakeTransparent(175);
		break;
	case IDR_MENU_40:
		MakeTransparent(150);
		break;
	case IDR_MENU_50:
		MakeTransparent(125);
		break;
	case IDR_MENU_60:
		MakeTransparent(100);
		break;
	case IDR_MENU_70:
		MakeTransparent(75);
		break;
	case IDR_MENU_80:
		MakeTransparent(50);
		break;
	case IDR_MENU_90:
		MakeTransparent(25);
		break;
	case ID_FILE_PAGE_SETUP:
		OnPageSetup();
		break;
	case ID_FILE_PRINT:
		OnPrint();
		break;
	default:
		break;
	}

	return 0;
}
Ejemplo n.º 5
0
void CTabSample::OnTimer(UINT_PTR nIDEvent)
{
	// TODO: ÔÚ´ËÌí¼ÓÏûÏ¢´¦Àí³ÌÐò´úÂëºÍ/»òµ÷ÓÃĬÈÏÖµ

	// 达到采样时间停止采样
// 	if (nIDEvent == 3)
// 	{
// 		m_HeartBeatSocket.SendHeartBeatFrame();
// 	}
	if (nIDEvent == 10)
	{
		// 关闭采样时间定时器
		KillTimer(10);
		OnBnClickedButtonStopsample();
	}
	// 监测尾包
	else if (nIDEvent == 4)
	{
		if (m_oThreadManage.m_TailFrameSocket.m_bTailRec == TRUE)
		{
			m_oThreadManage.m_TailFrameSocket.m_bTailRec = FALSE;
			m_uiTailRecCount = 0;
		}
		else
		{
			m_uiTailRecCount++;
			if (m_uiTailRecCount == TailFrameCount)
			{
				// 连续5秒未收到尾包则删除所有仪器
				m_oThreadManage.m_oInstrumentList.DeleteAllInstrument();
				m_uiTailRecCount = 0;
			}
		}
	}
	// 开始采样
	else if (nIDEvent == 1)
	{
		KillTimer(1);
		m_oThreadManage.m_ADCDataSocket.m_bStartSample = TRUE;
	}
	// 停止采样
	else if (nIDEvent == 2)
	{
		KillTimer(2);
	
		unsigned int uiADCDataNeedToSave = 0;
		// 计算仪器最大的采样长度
		uiADCDataNeedToSave = OnSampleDataMaxLength(GraphViewNum, m_oThreadManage.m_ADCDataSocket.m_dADCSave);
		// 保存剩余的ADC数据文件
		m_oThreadManage.m_ADCDataSocket.OnSaveRemainADCData(uiADCDataNeedToSave);

		CString str;
		// 对选中的仪器进行数据处理
		for (int k=0; k<GraphViewNum; k++)
		{
			if (m_iSelectObject[k] == 1)
			{
				if (m_iSelectObjectNoise[k] == 0)
				{
					double davg = 0.0;
					double drms = 0.0;
					double dmax = 0.0;
					double dmin = 0.0;
					if (m_dSampleData[k].size() == 0)
					{
						continue;
					}
					davg = SampleDataAverage(m_dSampleData[k]);
					str.Format("Avg = %2.6f",davg);
					GetDlgItem(m_iMathId[k][0])->SetWindowText(str);

					drms = SampleDataRms(m_dSampleData[k]);
					str.Format("RMS = %2.6f",drms);
					GetDlgItem(m_iMathId[k][1])->SetWindowText(str);

					dmax = SampleDataMax(m_dSampleData[k]);
					str.Format("Max = %2.6f",dmax);
					GetDlgItem(m_iMathId[k][2])->SetWindowText(str);

					dmin = SampleDataMin(m_dSampleData[k]);
					str.Format("Min = %2.6f",dmin);
					GetDlgItem(m_iMathId[k][3])->SetWindowText(str);

					// 将数据处理结果加入到数组中
					m_dSampleData[k].push_back(davg);
					m_dSampleData[k].push_back(drms);
					m_dSampleData[k].push_back(dmax);
					m_dSampleData[k].push_back(dmin);
				}
			}
		}


		// 计算仪器最大的采样长度
		m_iMaxLength = OnSampleDataMaxLength(GraphViewNum, m_dSampleData);
		if (m_iMaxLength == 0)
		{
			return;
		}

		// 横向滚动条的最大和最小值
		m_uiScrollBarMax = m_iMaxLength; 
		if (m_iMaxLength > m_OScopeCtrl[0].XAxisPointNum)
		{
			m_uiScrollBarMin = m_OScopeCtrl[0].XAxisPointNum; 
		} 
		else
		{
			m_uiScrollBarMin = 0; 
		}
		CScrollBar*pSB =(CScrollBar*)GetDlgItem(IDC_SCROLLBAR_GRAPHVIEW); 
		pSB->SetScrollRange(m_uiScrollBarMin, m_uiScrollBarMax); 
		pSB->SetScrollPos(m_uiScrollBarMax, TRUE);

		// 将采样数据保存到文件中,只有设定采样时间的数据才会被保存
		if (m_dSampleTime > 0)
		{
			OnSaveToFile(MathValueIdNum, GraphViewNum, m_cSelectObjectName,m_dSampleData);
		}
	}
	CDialog::OnTimer(nIDEvent);
}
Ejemplo n.º 6
0
void CTabSample::OnBnClickedButtonStopsample()
{
	// TODO: ÔÚ´ËÌí¼Ó¿Ø¼þ֪ͨ´¦Àí³ÌÐò´úÂë
	if (m_bStartSample == FALSE)
	{
		return;
	}
	m_bStopSample = TRUE;
	m_bStartSample = FALSE;


	CString str;
	// 发送采样结束操作命令帧
	//OnSendCmdFrame(StartSampleCmd, 0, m_uiSampleNb);

	unsigned int uiIPAim;
	for (int i=0; i<GraphViewNum; i++)
	{
		if ((m_uiSampleNb & (0x01<<i)) != 0)
		{
			uiIPAim	= 111 - 10*i;
			/*OnADCSampleStop(uiIPAim);*/
		}
	}
	OnADCSampleStop(uiIPAim);

	// 		// 关闭采样输出随机数定时器
	// 		KillTimer(1);

	// 关闭采样时间定时器
	// KillTimer(10);

	// 对选中的仪器进行数据处理
	for (int k=0; k<GraphViewNum; k++)
	{
		if (m_iSelectObject[k] == 1)
		{
			if (m_iSelectObjectNoise[k] == 0)
			{
				double davg = 0.0;
				double drms = 0.0;
				double dmax = 0.0;
				double dmin = 0.0;
				if (m_dSampleData[k].size() == 0)
				{
					continue;
				}
				davg = SampleDataAverage(m_dSampleData[k]);
				str.Format("Avg = %2.3f",davg);
				GetDlgItem(m_iMathId[k][0])->SetWindowText(str);

				drms = SampleDataRms(m_dSampleData[k]);
				str.Format("RMS = %2.3f",drms);
				GetDlgItem(m_iMathId[k][1])->SetWindowText(str);

				dmax = SampleDataMax(m_dSampleData[k]);
				str.Format("Max = %2.3f",dmax);
				GetDlgItem(m_iMathId[k][2])->SetWindowText(str);

				dmin = SampleDataMin(m_dSampleData[k]);
				str.Format("Min = %2.3f",dmin);
				GetDlgItem(m_iMathId[k][3])->SetWindowText(str);

				// 将数据处理结果加入到数组中
				m_dSampleData[k].push_back(davg);
				m_dSampleData[k].push_back(drms);
				m_dSampleData[k].push_back(dmax);
				m_dSampleData[k].push_back(dmin);
			}
		}
	}


	// 计算仪器最大的采样长度
	m_iMaxLength = OnSampleDataMaxLength(GraphViewNum, m_dSampleData);
	if (m_iMaxLength == 0)
	{
		return;
	}

	// 横向滚动条的最大和最小值
	m_uiScrollBarMax = m_iMaxLength; 
	if (m_iMaxLength > m_OScopeCtrl[0].XAxisPointNum)
	{
		m_uiScrollBarMin = m_OScopeCtrl[0].XAxisPointNum; 
	} 
	else
	{
		m_uiScrollBarMin = 0; 
	}
	CScrollBar*pSB =(CScrollBar*)GetDlgItem(IDC_SCROLLBAR_GRAPHVIEW); 
	pSB->SetScrollRange(m_uiScrollBarMin, m_uiScrollBarMax); 
	pSB->SetScrollPos(m_uiScrollBarMax, TRUE);

	// 将采样数据保存到文件中,只有设定采样时间的数据才会被保存
	if (m_dSampleTime > 0)
	{
		OnSaveToFile(MathValueIdNum, GraphViewNum, m_cSelectObjectName,m_dSampleData);
	}
}