﻿

{"id":15992,"date":"2023-10-07T17:16:09","date_gmt":"2023-10-07T08:16:09","guid":{"rendered":"https:\/\/www.bitstrong.com\/jp\/?p=15992"},"modified":"2024-01-12T09:34:08","modified_gmt":"2024-01-12T00:34:08","slug":"behavior-analysis-receiving-behavior-analysis-alarm-in-arming-mode","status":"publish","type":"post","link":"https:\/\/www.bitstrong.com\/jp\/behavior-analysis-receiving-behavior-analysis-alarm-in-arming-mode\/","title":{"rendered":"\u3010Behavior Analysis\u3011Receiving Behavior Analysis Alarm In Arming Mode"},"content":{"rendered":"<p><strong><span style=\"font-size: 18pt;\">\u30b5\u30f3\u30d7\u30eb\u30d7\u30ed\u30b0\u30e9\u30e0<\/span><\/strong><\/p>\n<div>\/\/<\/div>\n<div>\/\/ Device Network SDK (Behavior Analysis)<\/div>\n<div>\/\/ Alarm and Event Receiving<\/div>\n<div>\/\/ Configure Specific Behavior Analysis Alarms for Intelligent Device<\/div>\n<div>\/\/ Sample Code of Receiving Behavior Analysis Alarm in Arming Mode<\/div>\n<div>\/\/<\/div>\n<div>#include &lt;iostream&gt;<\/div>\n<div>#include &#8220;Windows.h&#8221;<\/div>\n<div>#include &#8220;HCNetSDK.h&#8221;<\/div>\n<p>using namespace std;<\/p>\n<div>\/\/Macro definition of time resolution<\/div>\n<div>#define GET_YEAR(_time_)\u00a0 \u00a0 \u00a0 (((_time_)&gt;&gt;26) + 2000)<\/div>\n<div>#define GET_MONTH(_time_)\u00a0 \u00a0 \u00a0(((_time_)&gt;&gt;22) &amp; 15)<\/div>\n<div>#define GET_DAY(_time_)\u00a0 \u00a0 \u00a0 \u00a0(((_time_)&gt;&gt;17) &amp; 31)<\/div>\n<div>#define GET_HOUR(_time_)\u00a0 \u00a0 \u00a0 (((_time_)&gt;&gt;12) &amp; 31)<\/div>\n<div>#define GET_MINUTE(_time_)\u00a0 \u00a0 (((_time_)&gt;&gt;6)\u00a0 &amp; 63)<\/div>\n<p>#define GET_SECOND(_time_)\u00a0 \u00a0 (((_time_)&gt;&gt;0)\u00a0 &amp; 63)<\/p>\n<div>BOOL CALLBACK MessageCallback(LONG lCommand, NET_DVR_ALARMER *pAlarmer, char *pAlarmInfo, DWORD dwBufLen, void* pUser)<\/div>\n<div>{<\/div>\n<div>\u00a0 \u00a0 switch(lCommand)<\/div>\n<div>\u00a0 \u00a0 {<\/div>\n<div>\u00a0 \u00a0 \u00a0 \u00a0 case COMM_ALARM_RULE: \/\/Behavior analysis alarm information<\/div>\n<div>\u00a0 \u00a0 \u00a0 \u00a0 {<\/div>\n<div>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 NET_VCA_RULE_ALARM struVcaAlarm = {0};<\/div>\n<div>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 memcpy(&amp;struVcaAlarm, pAlarmInfo, sizeof(NET_VCA_RULE_ALARM));<\/div>\n<div>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 NET_DVR_TIME struAbsTime = {0};<\/div>\n<div>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 struAbsTime.dwYear = GET_YEAR(struVcaAlarm.dwAbsTime);<\/div>\n<div>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 struAbsTime.dwMonth = GET_MONTH(struVcaAlarm.dwAbsTime);<\/div>\n<div>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 struAbsTime.dwDay = GET_DAY(struVcaAlarm.dwAbsTime);<\/div>\n<div>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 struAbsTime.dwHour = GET_HOUR(struVcaAlarm.dwAbsTime);<\/div>\n<div>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 struAbsTime.dwMinute = GET_MINUTE(struVcaAlarm.dwAbsTime);<\/div>\n<p>struAbsTime.dwSecond = GET_SECOND(struVcaAlarm.dwAbsTime);<\/p>\n<div>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \/\/Save captured scene picture<\/div>\n<div>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 if (struVcaAlarm.dwPicDataLen &gt; 0 &amp;&amp; struVcaAlarm.pImage != NULL)<\/div>\n<div>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 {<\/div>\n<div>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 char cFilename[256] = {0};<\/div>\n<div>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 HANDLE hFile;<\/div>\n<div>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 DWORD dwReturn;<\/div>\n<div>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 char chTime[128];<\/div>\n<div>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 sprintf(chTime,&#8221;%4.4d%2.2d%2.2d%2.2d%2.2d%2.2d&#8221;,struAbsTime.dwYear, struAbsTime.dwMonth, struAbsTime.dwDay,<\/div>\n<div>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 struAbsTime.dwHour, struAbsTime.dwMinute, struAbsTime.dwSecond);<\/div>\n<div>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 sprintf(cFilename, &#8220;VcaAlarmPic[%s][%s].jpg&#8221;,struVcaAlarm.struDevInfo.struDevIP.sIpV4, chTime);<\/div>\n<div>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 hFile = CreateFile(cFilename, GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);<\/div>\n<div>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 if (hFile == INVALID_HANDLE_VALUE)<\/div>\n<div>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 {<\/div>\n<div>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 break;<\/div>\n<div>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 }<\/div>\n<div>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 WriteFile(hFile, struVcaAlarm.pImage, struVcaAlarm.dwPicDataLen, &amp;dwReturn, NULL);<\/div>\n<div>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 CloseHandle(hFile);<\/div>\n<div>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 hFile = INVALID_HANDLE_VALUE;<\/div>\n<p>}<\/p>\n<div>WORD wEventType = struVcaAlarm.struRuleInfo.wEventTypeEx;<\/div>\n<div>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 printf(&#8220;\\n\\n&#8221;);<\/div>\n<div>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 printf(&#8220;Behavior Analysis Alarm [0x%x]: Abs[%4.4d%2.2d%2.2d%2.2d%2.2d%2.2d] Dev[ip:%s,port:%d,ivmsChan:%d] Smart[%d] EventTypeEx[%d]\\n&#8221;, \\<\/div>\n<div>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 lCommand, struAbsTime.dwYear, struAbsTime.dwMonth, struAbsTime.dwDay, struAbsTime.dwHour, struAbsTime.dwMinute, \\<\/div>\n<div>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 struAbsTime.dwSecond, struVcaAlarm.struDevInfo.struDevIP.sIpV4, struVcaAlarm.struDevInfo.wPort, \\<\/div>\n<p>struVcaAlarm.struDevInfo.byIvmsChannel, struVcaAlarm.bySmart, wEventType);<\/p>\n<div>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 NET_VCA_TARGET_INFO tmpTargetInfo;<\/div>\n<div>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 memcpy(&amp;tmpTargetInfo, &amp;struVcaAlarm.struTargetInfo, sizeof(NET_VCA_TARGET_INFO));<\/div>\n<div>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 printf(&#8220;Target Information: ID[%d]RECT[%f][%f][%f][%f]\\n&#8221;,<\/div>\n<div>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 tmpTargetInfo.dwID, tmpTargetInfo.struRect.fX, tmpTargetInfo.struRect.fY,<\/div>\n<div>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 tmpTargetInfo.struRect.fWidth, tmpTargetInfo.struRect.fHeight);<\/div>\n<div>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 break;<\/div>\n<div>\u00a0 \u00a0 \u00a0 \u00a0 }<\/div>\n<div>\u00a0 \u00a0 \u00a0 \u00a0 default:<\/div>\n<div>\u00a0 \u00a0 \u00a0 \u00a0 {<\/div>\n<div>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 printf(&#8220;Other alarms, alarm information type: 0x%x\\n&#8221;, lCommand);<\/div>\n<div>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 break;<\/div>\n<div>\u00a0 \u00a0 \u00a0 \u00a0 }<\/div>\n<div>\u00a0 \u00a0 }<\/div>\n<div>\u00a0 \u00a0 return TRUE;<\/div>\n<div>}<\/div>\n","protected":false},"excerpt":{"rendered":"\u30b5\u30f3\u30d7\u30eb\u30d7\u30ed\u30b0\u30e9\u30e0 \/\/ \/\/ Device Network SDK (Behavior Analysis) \/\/ Alarm and Event Receiving \/\/ Configure Specific Behavior Analysis Alarms for Intelligent Device ...","protected":false},"author":2,"featured_media":15936,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_sitemap_exclude":false,"_sitemap_priority":"","_sitemap_frequency":"","footnotes":""},"categories":[107],"tags":[],"class_list":["post-15992","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-camera-connection"],"_links":{"self":[{"href":"https:\/\/www.bitstrong.com\/jp\/wp-json\/wp\/v2\/posts\/15992","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bitstrong.com\/jp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bitstrong.com\/jp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bitstrong.com\/jp\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bitstrong.com\/jp\/wp-json\/wp\/v2\/comments?post=15992"}],"version-history":[{"count":1,"href":"https:\/\/www.bitstrong.com\/jp\/wp-json\/wp\/v2\/posts\/15992\/revisions"}],"predecessor-version":[{"id":15993,"href":"https:\/\/www.bitstrong.com\/jp\/wp-json\/wp\/v2\/posts\/15992\/revisions\/15993"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.bitstrong.com\/jp\/wp-json\/wp\/v2\/media\/15936"}],"wp:attachment":[{"href":"https:\/\/www.bitstrong.com\/jp\/wp-json\/wp\/v2\/media?parent=15992"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bitstrong.com\/jp\/wp-json\/wp\/v2\/categories?post=15992"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bitstrong.com\/jp\/wp-json\/wp\/v2\/tags?post=15992"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}