Beispiel #1
0
 /** 返回资源信息给回调方法 */
 private void SendToCallback(string url, CALLBACK_TYPE type, object data)
 {
     foreach (string key in dictCallback.Keys)
     {
         if (key == url)
         {
             List <CallbackDelegate> list = dictCallback[url];
             foreach (CallbackDelegate d in list)
             {
                 d(url, type, data);
             }
             break;
         }
     }
 }
Beispiel #2
0
 /// <summary>
 /// 获取报警信息处理
 /// </summary>
 /// <param name="lCommand">命令</param>
 /// <param name="lLoginID">登录ID</param>
 /// <param name="pBuf">缓存</param>
 /// <param name="dwBufLen">缓存数据大小</param>
 /// <param name="pchDVRIP">DVR设备IP地址</param>
 /// <param name="nDVRPort">DVR设备端口</param>
 /// <param name="dwUser">用户数据</param>
 /// <returns></returns>
 private bool GetAlarmMessage(int lCommand, int lLoginID, IntPtr pBuf, UInt32 dwBufLen, IntPtr pchDVRIP, int nDVRPort, UInt32 dwUser)
 {
     bool returnValue = false;
     //MessageBox.Show("HI1");
     
     switch (lCommand)
     { 
         case (int)CALLBACK_TYPE.DH_COMM_ALARM://常规报警信息
             cbkType = CALLBACK_TYPE.DH_COMM_ALARM;
             clientState = (NET_CLIENT_STATE)Marshal.PtrToStructure(pBuf, typeof(NET_CLIENT_STATE));
             #region << 测试代码 >>
             
             #endregion
             break;
         case (int)CALLBACK_TYPE.DH_SHELTER_ALARM://视频遮档报警
             cbkType = CALLBACK_TYPE.DH_SHELTER_ALARM;
             for (int i = 0; i < dwBufLen; i++)
             {
                 AlarmShelter[i] = (byte)Marshal.PtrToStructure((IntPtr)((UInt32)pBuf + i), typeof(byte));
             }
             break;
         case (int)CALLBACK_TYPE.DH_DISK_FULL_ALARM://硬盘空间不足
             cbkType = CALLBACK_TYPE.DH_DISK_FULL_ALARM;
             AlarmDiskFull = (bool)Marshal.PtrToStructure(pBuf, typeof(bool));
             break;
         case (int)CALLBACK_TYPE.DH_DISK_ERROR_ALARM://硬盘损坏
             cbkType = CALLBACK_TYPE.DH_DISK_ERROR_ALARM;
             for (int i = 0; i < dwBufLen; i++)
             {
                 AlarmDiskErr[i] = (byte)Marshal.PtrToStructure((IntPtr)((UInt32)pBuf + i), typeof(byte));
             }
             break;
         case (int)CALLBACK_TYPE.DH_SOUND_DETECT_ALARM://音频报警
             cbkType = CALLBACK_TYPE.DH_SOUND_DETECT_ALARM;
             for (int i = 0; i < dwBufLen; i++)
             {
                 AlarmAudio[i] = (byte)Marshal.PtrToStructure((IntPtr)((UInt32)pBuf + i), typeof(byte));
             }
             break;
         case (int)CALLBACK_TYPE.DH_ALARM_ALARM_EX://外部报警
             cbkType = CALLBACK_TYPE.DH_ALARM_ALARM_EX;
             for (int i = 0; i < dwBufLen; i++)
             {
                 AlarmExternal[i] = (byte)Marshal.PtrToStructure((IntPtr)((UInt32)pBuf + i), typeof(byte));
             }
             break;
     }
     return returnValue;
 }