bool Log::CommonLogInit(string directory) { time_t tNowTime; time(&tNowTime); tm* tLocalTime = localtime(&tNowTime); //得到日期的字符串 string sDateStr = ValueToStr(tLocalTime->tm_year+1900) + "-" + ValueToStr(tLocalTime->tm_mon+1) + "-" + ValueToStr(tLocalTime->tm_mday); return Open(directory + "\\Log_" + sDateStr + ".log"); }
bool BufferLogger::Open(string sFileName, bool bWithATime) { m_fileName = sFileName; if (bWithATime) { sFileName = m_fileName + GetCurTimeStr(); } srand((unsigned int)time(0)); sFileName = "log\\" + sFileName + " " + ValueToStr(rand()) + ".log"; fopen_s(&outputFile_, sFileName.c_str(), "w"); if (!outputFile_) { return false; } return true; }
string ELLog::GetTimeStr() { time_t tNowTime; time(&tNowTime); tm* tLocalTime = localtime(&tNowTime); // string strDateTime = ValueToStr(tLocalTime->tm_year+1900) + "-" + ValueToStr(tLocalTime->tm_mon+1) + "-" + ValueToStr(tLocalTime->tm_mday) + " " + ValueToStr(tLocalTime->tm_hour) + ":" + ValueToStr(tLocalTime->tm_min) + ":" + ValueToStr(tLocalTime->tm_sec) + " "; return strDateTime; }
short SyncRPC(char *Name,char *Property,char *Cycle,short Size,void *Data,short Datasize,short DataFormat,short dummy) { ElemDataStruct Elem; USHORT i; short j,cc,dataindex,flag; char Buffer[BUFFER_SIZE+1],eqname[EQNAME_SIZE+1]; char *values; double value; char *ptr; WORD connectionID; flag=abs(Size)/Size; if (strlen(Name)>ELEM_NAME_SIZE) return non_existent_elem; for (i=0;i<strlen(Name);i++) Elem.ElemName[i]=toupper(Name[i]); Elem.ElemName[i]=0; dataindex = SearchDataBase(RPCDataElems,Elem.ElemName,"NAME"); CString data; data.Format("%d",dataindex); AfxMessageBox(data,MB_OK,0); if (dataindex < 0) { strcpy(Buffer,"DEFAULT"); /************************/ cc = non_existent_fec; goto out2; } else strcpy((char *)Buffer,RPCData[dataindex].FecName); Elem.Values = NULL; Elem.FecIndex = SearchDataBase(RPCFecElems,Buffer,"FECNAME"); if (Elem.FecIndex < 0) { if (dataindex < 0) cc = non_existent_elem; else cc = non_existent_fec; goto out; } if (strlen(Property)>PROPERTY_SIZE) return illegal_property; strcpy(Elem.Property,Property); for (i=strlen(Elem.Property);i<PROPERTY_SIZE+1;i++) Elem.Property[i]=0; if (dataindex<0) { eqname[0]=0;Elem.EqNo=0; } else { strcpy((char *)eqname,RPCData[dataindex].EqName); Elem.EqNo=RPCData[dataindex].EqNumber; } strcpy(Elem.EqName,eqname); for (i=strlen(Elem.EqName);i<EQNAME_SIZE+1;i++) Elem.EqName[i]=0; Elem.DataFormat=DataFormat; if (Cycle==NULL) Elem.Cycle[0]=0; else strcpy(Elem.Cycle,Cycle); Elem.Size=abs(Size); if (Size<0) { switch (Elem.DataFormat) { case CF_TEXT: ptr=(char *)Data; for (i=0;i<abs(Size) && *ptr;i++) { j=0; while (*ptr && *ptr!='\t' && *ptr!='\r' && *ptr!='\n') Buffer[j++]=*ptr++; Buffer[j]=0; while (*ptr=='\t' || *ptr=='\r' || *ptr=='\n') ptr++; cc=StrToValue((double *)&value,Buffer,(char *)eqname,(char *)Property); if (!cc) { if (!i) { if ((Elem.Values = (char *) malloc(GetFormatSize(CF_DOUBLE)*abs(Size)))==NULL) {cc=out_of_memory;goto out;} } values=(char *)&value; for (j=0;j<GetFormatSize(CF_DOUBLE);j++) Elem.Values[i*GetFormatSize(CF_DOUBLE)+j]=values[j]; Elem.DataFormat=CF_DOUBLE; } else { if (strlen((char *)Data)>=(USHORT)GetFormatSize(CF_TEXT)) {cc=dimension_error;goto out;} if ((Elem.Values = (char *) malloc(GetFormatSize(CF_TEXT)*abs(Size)))==NULL) {cc=out_of_memory;goto out;} strcpy(Elem.Values,(char *)Data); break; } } break; case CF_DOUBLE: case CF_FLOAT: case CF_SHORT: case CF_LONG: case CF_BYTE: if ((Elem.Values = (char *) malloc(GetFormatSize(CF_DOUBLE)*abs(Size)))==NULL) {cc=out_of_memory;goto out;} ConvertFormat(Data,DataFormat,(void *)Elem.Values,CF_DOUBLE,abs(Size)); Elem.DataFormat=CF_DOUBLE; break; default: cc=illegal_format;goto out; } } cc=RPCConnect(0,&Elem,&connectionID); if (cc) goto out; cc=RPCSend(flag,&Elem,connectionID); if (cc) goto out; RPCReceive(flag,&Elem,connectionID); cc=Elem.CompCode; if (flag>0 && !cc && Data!=NULL) { ptr=(char *)Data; if (DataFormat==CF_TEXT) { if (Elem.DataFormat==CF_TEXT) { for (i=0;i<Datasize && Elem.Values[i];i++) ptr[i]=Elem.Values[i]; ptr[i]=0; } else ValueToStr(Elem.Values,Elem.DataFormat,ptr,Datasize, 1,abs(Size),Elem.EqName,Elem.Property,TRUE); } else ConvertFormat((void *)Elem.Values,Elem.DataFormat,Data,DataFormat,abs(Size)); } if (cc<0 && Data!=NULL && DataFormat==CF_TEXT && Datasize>(short)strlen(Elem.Values)) { strcpy((char *)Data,Elem.Values); } out: if (Elem.Values!=NULL) free((void *)Elem.Values); out2: lasterror = cc; return cc; }