/// <summary>
/// 报警处理事件方法
/// </summary>
/// <param name="lCommand"></param>
/// <param name="pAlarmer"></param>
/// <param name="pAlarmInfo"></param>
/// <param name="dwBufLen"></param>
/// <param name="pUser"></param>
private void MsgCallBackInstance(int lCommand, ref HCNetSDK.NET_DVR_ALARMER pAlarmer, ref HCNetSDK.NET_DVR_ALARMINFO pAlarmInfo, uint dwBufLen, IntPtr pUser)
{
//参数lCommand代表报警类型,pAlarmer存放报警设备信息,pAlarmInfo存放具体的报警信息,根据报警类型的变化而变化
switch (lCommand) //根据报警类型不同,分别处理不同的报警信息
{
// 上传报警信息(8000主动上传)
case HCNetSDK.COMM_ALARM:
case HCNetSDK.COMM_ALARM_V30:
_t = new Timer(3000);
Debug.WriteLine(
"订购事件_t.Elapsed += new System.Timers.ElapsedEventHandler(Theout);//到达时间的时候执行事件; ",
TraceLevel.Info.ToString());
_t.Elapsed += new System.Timers.ElapsedEventHandler(Theout); //到达时间的时候执行事件;
_t.AutoReset = false; //设置是执行一次(false)还是一直执行(true);
_t.Enabled = true; //是否执行System.Timers.Timer.Elapsed事件;
_t.Stop();
_t.Start();
//IsAlarmMessage = !IsAlarmMessage;
DeviceIP = Encoding.ASCII.GetString(pAlarmer.sDeviceIP).Replace("\0", "").Replace("@", "");
Debug.WriteLine("----------------ALARM INFO--"+(_tempCounter++)+"---"+DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.ffff")+"-----------------------------------");
//Debug.WriteLine(IsAlarmMessage ? "IsAlarmMessage状态:TRUE" : "IsAlarmMessage状态:FALSE");
Debug.WriteLine("DeviceIP:" + DeviceIP);
AlarmType = pAlarmInfo.dwAlarmType;
Debug.WriteLine("报警类型(AlarmType):" + AlarmType);
AlarmInputNumber = pAlarmInfo.dwAlarmInputNumber;
Debug.WriteLine("报警输入端口:" + AlarmInputNumber);
if(AlarmType==0)
{
IsAlarmMessage = true;
}
//…… //报警信息处理
break;
case HCNetSDK.COMM_TRADEINFO:
//…… //交易信息处理
break;
case HCNetSDK.COMM_IPCCFG:
//…… //IP接入报警信息处理
break;
case HCNetSDK.COMM_ALARM_RULE:
//…… //行为分析报警信息处理
break;
default:
break;
}
}
private void Theout(object source, System.Timers.ElapsedEventArgs e)
{
IsAlarmMessage = false;
Debug.WriteLine("-----------重置IsAlarmMessage--" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.ffff") + "--------------");
}