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

📄 comctrl.cpp

📁 比较经典的串口开发原码
💻 CPP
字号:
#include "stdafx.h"
#include "exa06.h"

#include "exa06Doc.h"
#include "exa06View.h"
#include "COMctrl.h"
#include "mscomm.h"



CEvent InsertCompelte;
bool ThreadWorking;


#define ID_TIMER 1

UINT InsertDB(LPVOID pParam)
{
	CExa06Doc* pDoc = (CExa06Doc*)pParam;
	CTime time;
	CString str;
	structbuffer tempbuf;
	structbuffer avg[4];
	int count = 0;

	for(int n=0;n<pDoc->ChannelNum;n++)
		for(int m=0;m<pDoc->PointPerChannel;m++)
			avg[n].buffer[m] = 0;
	
	while(ThreadWorking)
	{
		if(WaitForSingleObject(InsertCompelte,3000000)==WAIT_TIMEOUT)
		{
			AfxMessageBox("insert db timeout");
			continue;
		}		
//AfxMessageBox("insert to db");			
/*		pDoc->Lock.Lock();
			for(int j=0;j<4;j++)
			{
				tempbuf = pDoc->ListBuffer.GetHead();
				avg[j].CurChannel = tempbuf.CurChannel;
				for(int i=0;i<pDoc->PointPerChannel;i++)
				{
					avg[j].buffer[i] = tempbuf.buffer[i];	
				}
				pDoc->ListBuffer.RemoveHead();
			}
		pDoc->Lock.Unlock();
*/		
		pDoc->DataSet.Open();
		if(pDoc->DataSet.IsEOF()==0)
		{
			pDoc->DataSet.MoveLast();
			pDoc->DataCount = pDoc->DataSet.m_No;
		}

		pDoc->drawLock.Lock();
		for(int j=0;j<4;j++)
		{
			for(int i=0;i<pDoc->PointPerChannel;i++)
			{
				if(pDoc->tempdraw[j].buffer[i]!=0)
				{
					pDoc->DataSet.AddNew();

					pDoc->DataSet.m_No = ++pDoc->DataCount;
					pDoc->DataSet.m_DateTime = time.GetCurrentTime();		
					str.Format("%d-%d",j+1,i+1);
					pDoc->DataSet.m_PointName = str;
					pDoc->DataSet.m_Temperature = pDoc->tempdraw[j].buffer[i];
					
					pDoc->DataSet.Update();	
				}
			}
		}
		pDoc->drawLock.Unlock();
		pDoc->DataSet.Close();
//	AfxMessageBox("after insert");
/**/}
	return 0;
}

⌨️ 快捷键说明

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