資源簡介
s2010下,用modbus協議傳送G代碼到下位機

代碼片段和文件信息
//?Logs.cpp?:?implementation?file
//
#include?“stdafx.h“
#include?“Logs.h“
#include?
#include?
#include?
#include?
#include?
#ifdef?_DEBUG
#define?new?DEBUG_NEW
#undef?THIS_FILE
static?char?THIS_FILE[]?=?__FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
//?CLogs?
IMPLEMENT_DYNCREATE(CLogs?CWnd)
#define?MAXLOGLEN?280
/////////////////////////////////////////////////////////////////////////////
//?CLogs?operations
//初始化
BOOL??CLogs::Init(CString?csCurPath)
{
????CString?????csDate;
????CTime???????tCurTime=CTime::GetCurrentTime();
????csDate=tCurTime.Format(“%Y-%m-%d“);
????CreateDirectory(csCurPath+“\\WorkLog\\“NULL);
//????CreateDirectory(csCurPath+“\\WorkLog\\“+csDate.Left(4)+“\\“NULL);
????m_csFileName=csCurPath+“WorkLog\\“+csDate.Left(4)+“.LOG“?;
????return?true;
}
int??CLogs::OpenFile()
{
????m_pStdioFile=_open(m_csFileName?O_RDWR?S_IREAD|S_IWRITE);//|?_O_TRUNC
????if(m_pStdioFile==-1)
????{
????????m_pStdioFile=_open(m_csFileName?_O_CREAT?|?O_RDWR|?_O_TRUNCS_IREAD|S_IWRITE);
????}
????if(m_pStdioFile==-1)
????{
????????_close(m_pStdioFile);
????????return?-1;
????}
????else
????{
????????int?iTotalLine=GetTotalLine(m_pStdioFile);
//????_lseek(m_pStdioFileiTotalLine*MAXLOGLEN?SEEK_SET?);
????????_lseek(m_pStdioFile?0?SEEK_END?);
????}
// m_csFileName=StrMenoFile;
????return?m_pStdioFile;
}
int??CLogs::GetTotalLine(int?pLogFile)?
{
int?nItem=0;
CString?StrLinestrType=“SIO?“;
char?buffer[MAXLOGLEN];
unsigned?int?nbytes?=?MAXLOGLEN;
int??m_TempFile=pLogFile;
_lseek(m_pStdioFile?0?SEEK_SET?);
while(_read(?m_pStdioFile?buffer?nbytes?)>0)
{
StrLine.Format(“%s“?buffer);
StrLine=StrLine.Left(1);?
//如果是日志類型標志,則繼續,否則就定位在這里
if(strType.FindOneOf(_T(“x“+StrLine))<0?)?
{
_chsize(m_pStdioFilenItem*MAXLOGLEN);???//擦掉非正常日志
LogALine?aLogLine;
aLogLine.StrType?=?“S“;
aLogLine.TempString?=?“上次非正常關機“;
WriteLine(aLogLine);
break;
}
nItem++;
}
return?nItem;
}
int??CLogs::CloseFile()
{
????_close(m_pStdioFile);
????return?m_pStdioFile;
}
//依照長度重復某個字符
CString?CLogs::ReplaceStr(CString?strint?nLengthCString?StrAppend)?
{
????CString?strTemp=str;
????int?n=strTemp.GetLength();
????int?nAppend=StrAppend.GetLength();?
????if(n ????{
for(int?i=n;i {
strTemp=strTemp+StrAppend;
????????}
????}
????else
????{
????????strTemp=strTemp.Left(nLength);?
????}
????return?strTemp;
}
//類別?1?+?1?0
//時間?22?+?1?2
//地點?10?+?1??25
//用戶?30?+?1??36?
//事件?51?+?1??67?
//錄相文件名?151119
//???????????1+1+22+1+10+1+30+1+51+1+151
//
//寫入日志//系統日志,即開即寫即關
int?CLogs::WriteLine(LogALine?aLogLine?)
{
CString?StrType?TempString;
????CString?StrMeno=““StrTime=““;
int?iResult?=?-1;
????if(m_pStdioFile!=-1)
????{
????????_lseek(m_pStdioFile?0?SEEK_END?);
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????4909??2015-05-25?12:24??Logs.cpp
?????文件????????1289??2015-05-25?12:23??Logs.h
?????目錄???????????0??2015-05-20?00:02??res\
?????文件???????32118??2015-05-20?00:02??res\bitmap1.bmp
?????文件???????67777??2009-08-31?02:31??res\sentMsgPrj.ico
?????文件?????????676??2015-05-15?21:46??res\sentMsgPrj.rc2
?????文件????????5044??2015-05-25?12:46??resource.h
?????文件????????5141??2015-05-25?11:55??sentMsgPrj.cpp
?????文件?????????758??2015-05-25?11:56??sentMsgPrj.h
?????文件???????17682??2015-05-26?17:55??sentMsgPrj.rc
?????文件?????????885??2015-05-19?20:19??sentMsgPrj.sln
?????文件???????38912??2015-05-26?19:00??sentMsgPrj.suo
?????文件????????4696??2015-05-25?12:02??sentMsgPrj.vcproj
?????文件????????1428??2015-05-26?19:00??sentMsgPrj.vcproj.LX-201408021414.Administrator.user
?????文件?????????143??2015-05-19?20:19??sentMsgPrj.vcproj.user
?????文件?????????143??2015-05-14?10:52??sentMsgPrj.vcxproj.user
?????文件???????30095??2015-05-26?18:59??sentMsgPrjDlg.cpp
?????文件????????2009??2015-05-26?17:32??sentMsgPrjDlg.h
?????文件?????????143??2015-05-14?10:52??stdafx.cpp
?????文件????????1632??2015-05-14?10:52??stdafx.h
?????文件?????????234??2015-05-14?10:52??targetver.h
- 上一篇:聚合支付平臺架構png圖
- 下一篇:《信息論》(電子科大)復習資料
評論
共有 條評論