📄 comctrl.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 + -