bool bAlarmFlag=false;//全局变量
//config.ini 文件配制内容如下{{{
[ITEM]
;;存储时间间隔5分 (5,15,30,60)
interval=5
;;默认改为0000
min=00
hour=00
/////////////////////////////////}}}
char path[20];
sprintf(path,".\\config.ini");
char strIntervar[5]={0};//5分,15分,30分,60分
char strMin[5]={0};
char strHour[5]={0};
GetPrivateProfileString("ITEM","interval","",strIntervar,5,path);
GetPrivateProfileString("ITEM","min","",strMin,5,path);
GetPrivateProfileString("ITEM","hour","",strHour,5,path);
char strHourMin[5]={0};
time_t tval;
struct tm *now;
tval=time(NULL);
now=localtime(&tval);
/*方法1:*/
int iMin=0;
iMin=((now->tm_hour-atoi(strHour))>0||now->tm_hour-atoi(strHour)<0)?now->tm_min+60:now->tm_min;
if(!bAlarmFlag)
{
if((iMin-atoi(strMin))>=atoi(strIntervar))
{
TemperatureEntity Entity;
Entity.pByte = (BYTE*)m_pTBuffer;
Entity.nByteLen = pApp->m_paramterCount*sizeof(double);
this->m_sql.AddHistoryTemperatureInfo(Entity);//2 sprintf(strHourMin,"%02d",now->tm_min);
WritePrivateProfileString("ITEM","min",strHourMin,path);
sprintf(strHourMin,"%02d",now->tm_hour);
WritePrivateProfileString("ITEM","hour",strHourMin,path);
}
}
else//有报警时纪录
{
TemperatureEntity Entity;
Entity.pByte = (BYTE*)m_pTBuffer;
Entity.nByteLen = pApp->m_paramterCount*sizeof(double);
this->m_sql.AddHistoryTemperatureInfo(strTime,Entity);//2
bAlarmFlag=false;
}正常情况下间隔5分钟存储到数据库?
奇怪的是,偶然性数据不停的存储到数据库,难道是 bAlarmFlag变量有问题?
数据不停的存储到数据库,是哪有问题?
char *GetCurrentPath(char* path)
{
TCHAR exeFullPath[_MAX_PATH]={0};
GetModuleFileName(NULL,exeFullPath,_MAX_PATH);
int len=strlen(exeFullPath);
int i=0,j=0;
for(i=len-1;i>-1;i--,j++)
{
if(exeFullPath[i]=='\\')
{
memcpy(path,exeFullPath,len-j);
// strncpy(path,exeFullPath,len-j);
break;
}
}
return path;
}
//2.
char path[MAX_PATH]={0};//=".\\config.ini";
GetCurrentPath(path);
strcat(path,"config.ini");
::MessageBox(NULL,path,path,MB_OK); char path[20];
sprintf(path,".\\config.ini");//注意不能用此路径执行程序