16,472
社区成员
发帖
与我相关
我的任务
分享
//CMS流水
typedef struct _CMSWaste
{
TDevInfo DevInfo;
char Content[1024];
int Light;
char Remark1[20];
char Remark2[20];
}TCMSWaste;
TCMSWaste cmswaste;
memset(&cmswaste, 0, sizeof(TCMSWaste));
int retcms = m_peer[i]->ReadData((char*)&cmswaste, sizeof(TCMSWaste));
if (retcms < 0)
{
//读取CMS包错误
//ErrorReport("读取CMS包错误");
ReleaseCritical();
continue;
}
else if (retcms == 0)
{
ReleaseCritical();
continue;
}
ErrorReport("收到(IP:%s)发送的CMS数据", ip);
if ((m_DbOper.HandleCMSMsg(cmswaste))&&(m_DbOper.HandleCMSErrorMsg(cmswaste)))
{
ErrorReport("处理CMSMsg成功");
//返回成功信息
m_peer[i]->SendData("OKOK", 4);
}
else
{
ErrorReport("处理CMSMsg失败");
m_peer[i]->SendData("ERRO", 4);
//断开连接
m_peer[i]->FreePeer();
}
BOOL CPRJ_DbOperate::HandleCMSMsg(TCMSWaste &cms)
{
ErrorReport("HandleCMSMsg");
char DevCode[10];
memset(DevCode, 0, sizeof(cms.DevInfo.DevCode));
memcpy(DevCode, cms.DevInfo.DevCode, sizeof(cms.DevInfo.DevCode));
ErrorReport("DevCode:%s", cms.DevInfo.DevCode);
char Remark1[20];
memset(Remark1, 0, sizeof(cms.Remark1));
memcpy(Remark1, cms.Remark1, sizeof(cms.Remark1));
ErrorReport("Remark1:%s", Remark1);
char Remark2[20];
memset(Remark2, 0, sizeof(cms.Remark2));
memcpy(Remark2, cms.Remark2, sizeof(cms.Remark2));
ErrorReport("Remark2:%s", Remark2);
char Content[1024];
memset(Content, 0, sizeof(cms.Content));
memcpy(Content, cms.Content, sizeof(cms.Content));
ErrorReport("content:%s", Content);
char CheckTime[14];
memset(CheckTime, 0, sizeof(cms.DevInfo.CheckTime));
memcpy(CheckTime, cms.DevInfo.CheckTime, sizeof(cms.DevInfo.CheckTime));
ErrorReport("CheckTime:%s", CheckTime);
CString tmpGUID = GenrGUID();
ErrorReport("GUID:%s", tmpGUID);
CString sql;
//sql.Format(_T("INSERT INTO DevWaste_CMS VALUES ('%s', '%s', to_date('2012-12-12 12:12:12', 'yyyy-mm-dd hh24:mi:ss'), '%s', %d, '%s', '%s', 0)"), (LPCTSTR)tmpGUID, DevCode, CheckTime, Content, cms.Light, Remark1, Remark2);
sql.Format("INSERT INTO DevWaste_CMS VALUES ('%s', '%s', to_date('%s', 'yyyy-mm-dd hh24:mi:ss'), '%s', %d, '%s', '%s', 0)", (LPCTSTR)tmpGUID, DevCode, CheckTime, Content, cms.Light, cms.Remark1, cms.Remark2);
ErrorReport("sql:%s",(LPCTSTR)sql);
if (ExecuteSql(sql))
return TRUE;
else
return FALSE;
}
void CTO_LogReport::ErrorReport(const char* fmt, ...)
{
va_list ap;
char buf[8096];
va_start(ap,fmt);
_vsnprintf(buf, sizeof buf, fmt, ap);
va_end(ap);
if (m_debug_mode)
{
printf("%s\n", buf);
}
Acquire();
_ErrorReport(buf);
Release();
}
void CTO_LogReport::_ErrorReport(const char *msg)
{
char file_name[MAX_FILE_LEN];
make_full_file_name(file_name, sizeof file_name, 0);
HANDLE hFile=CreateFile(
file_name,
GENERIC_WRITE,
0,
NULL,
OPEN_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
0);
if (INVALID_HANDLE_VALUE==hFile) return;
DWORD file_len;
try
{
file_len=SetFilePointer(hFile, 0, NULL, FILE_END);
SYSTEMTIME time;
GetLocalTime(&time);
char buf[32];
_snprintf(buf, sizeof buf, "%.2d-%.2d %.2d:%.2d:%.2d.%.3d ", time.wMonth, time.wDay,
time.wHour, time.wMinute, time.wSecond, time.wMilliseconds);
DWORD BytesWritten;
if (!WriteFile(hFile, buf, (DWORD)strlen(buf), &BytesWritten, NULL)) {
CloseHandle(hFile);
return;
}
if (!WriteFile(hFile, msg, (DWORD)strlen(msg), &BytesWritten, NULL)) {
CloseHandle(hFile);
return;
}
buf[0]=0x0D;
buf[1]=0x0A;
buf[2]=0;
WriteFile(hFile, buf, 2, &BytesWritten, NULL);
}
catch(...)
{
}
CloseHandle(hFile);
if (m_max_file_len<=file_len)
{
roll_files();
}
}
定义如下typedef struct _DevInfo
{
BYTE DevType;
char DevCode[10];
char CheckTime[14];
char ErrorStatus[20];
int CheckError;
}TDevInfo;