資源簡介
JAVA ,C++ C# Delphi都可以使用。方便二次開發(fā),SDK函數(shù)說明為中文,方便理解使用,加快二次開發(fā)速度。
代碼片段和文件信息
//?Alarm.cpp?:?implementation?file
//
#include?“stdafx.h“
#include?“DemoIVSb.h“
#include?“Alarm.h“
#include?“DemoIVSbDlg.h“
#include?“Preview.h“
#include?
#ifdef?_DEBUG
#define?new?DEBUG_NEW
#undef?THIS_FILE
static?char?THIS_FILE[]?=?__FILE__;
#endif
/************************************************************************/
/*WM_USER_ALAMR_COME的消息函數(shù)??????????????????????????????????????????*/
/************************************************************************/
LRESULT?CAlarm::OnAlarmCome(WPARAM?wParam?LPARAM?lParam)
{
if?(!wParam)
{
return?0;
}
EventPara*?ep?=?(EventPara*)wParam;
LONG?lAnalyzerHandle?=?ep->lAnalyzerHandle;
DWORD?dwAlarmType?=?ep->dwAlarmType;
void*?pAlarmInfo?=?ep->pAlarmInfo;
DWORD?dwBufSize?=?ep->dwBufSize;
BYTE*?pBuffer?=?ep->pBuffer;
int?nSequence?=?ep->nSequence;
AlarmInfoNode*?pNode?=?new?AlarmInfoNode;
if?(!pNode?||?!ep->pAlarmInfo?||?!ep->pBuffer)
{
if?(ep)
{
if?(ep->pBuffer)
{
delete?[]ep->pBuffer;
ep->pBuffer?=?NULL;
}
if?(ep->pAlarmInfo)
{
delete?[]ep->pAlarmInfo;
ep->pAlarmInfo?=?NULL;
}
delete?ep;
ep?=?NULL;
}
return?0;
}
//所有的結(jié)構(gòu)體的前面的5個成員都是一樣的,可以統(tǒng)一的獲取時間
DEV_EVENT_CROSSLINE_INFO*?pInfo?=?(DEV_EVENT_CROSSLINE_INFO*)ep->pAlarmInfo;
//1?獲取該事件來自的通道號
pNode->nChnNum?=?pInfo->nChannelID;
//獲取事件名稱
strncpy(pNode->szAlarmName?pInfo->szName?_countof(pInfo->szName));
//2?獲取事件類型
pNode->dwRuleType?=?dwAlarmType;
//3?獲取事件觸發(fā)時間
memcpy(&pNode->Time?&pInfo->UTC?sizeof(pNode->Time));
//4?存儲圖片到本地,將目錄存在節(jié)點(diǎn)中
TCHAR?szModule[MAX_PATH]?=?{0};
::GetCurrentDirectory(MAX_PATH?szModule);
_sntprintf(szModule
???MAX_PATH
???_T(“%s\\Snap“)
???szModule);
::CreateDirectory(szModule?NULL);
_sntprintf(pNode->szFile
_countof(pNode->szFile)
_T(“%s\\Chn%02d?%04d%02d%02d%02d%02d%02d.jpg“)
szModule
pInfo->nChannelID?+?1
pNode->Time.dwYear
pNode->Time.dwMonth
pNode->Time.dwDay
pNode->Time.dwHour
pNode->Time.dwMinute
pNode->Time.dwSecond);
TCHAR?szDebug[128]?=?{0};
_sntprintf(szDebug?_countof(szDebug)?_T(“Alarm?Come:?Chn%02d?Type%d\n“)?pNode->nChnNum?+?1?pNode->dwRuleType);
::OutputDebugString(szDebug);
FILE*?pFile?=?fopen(pNode->szFile?“wb“);
if?(pFile)
{
fwrite(pBuffer?dwBufSize?1?pFile);
fclose(pFile);
}
else
{
OutputDebugString(_T(“Can‘t?save?file!\n“));
delete?pNode;
if?(ep)
{
if?(ep->pBuffer)
{
delete?[]ep->pBuffer;
ep->pBuffer?=?NULL;
}
if?(ep->pAlarmInfo)
{
delete?[]ep->pAlarmInfo;
ep->pAlarmInfo?=?NULL;
}
delete?ep;
ep?=?NULL;
}
return?0;
}
//將節(jié)點(diǎn)存入鏈表
CDemoIVSbDlg*?pMainDlg?=?(CDemoIVSbDlg*)AfxGetMainWnd();
if?(pMainDlg)
{
lsAlarmInfo*?plsAlarmInfo?=?pMainDlg->getAlarmInfoList();
if?(plsAlarmInfo)
{
plsAlarmInfo->push_back(pNode);
}
評論
共有 條評論