Пример #1
0
        public static void cbAutoReconnect(int lLoginID, string pchDVRIP, int nDVRPort, IntPtr dwUser)
        {
            ProtocolDHAlarm instrument = listInstrument.Find(x => x.device.ip == pchDVRIP);

            if (instrument != null)
            {
                CLIENT_StartListenEx(lLoginID);
                instrument.OnConnectEH(instrument.device, 0);
            }
        }
Пример #2
0
        public static void cbDisConnectFunc(int lLoginID, string pchDVRIP, int nDVRPort, IntPtr dwUser)
        {
            ProtocolDHAlarm instrument = listInstrument.Find(x => x.device.ip == pchDVRIP);

            if (instrument != null)
            {
                CLIENT_StopListen(lLoginID);
                instrument.OnConnectEH(instrument.device, 1);
            }
        }
Пример #3
0
        public static ProtocolDriver CreateInstance(Device device)
        {
            ProtocolDriver driver = null;

            switch (device.key)
            {
            case DEVICE_KEY.FBG:
                driver = new ProtocolFbg(device);
                break;

            case DEVICE_KEY.DVS:
            case DEVICE_KEY.DTS:
                driver = new ProtocolDVS(device);
                break;

            case DEVICE_KEY.INANTER:
                driver = new ProtocolInanter(device);
                break;

            case DEVICE_KEY.ES:
                driver = new ProtocolEs(device);
                break;

            case DEVICE_KEY.HK:
                driver = new ProtocolHK(device);
                break;

            case DEVICE_KEY.MOXA_2K:
                driver = new ProtocolMoxa(device);
                break;

            case DEVICE_KEY.JDEX:
                driver = new ProtocolJDExpand(device);
                break;

            case DEVICE_KEY.VIDEO:
                driver = new ProtocolVideo(device);
                break;

            case DEVICE_KEY.HKAI:
                driver = new ProtocolHKAI(device);
                break;

            case DEVICE_KEY.DHAlarm:
                driver = new ProtocolDHAlarm(device);
                break;

            default:
                break;
            }
            return(driver);
        }
Пример #4
0
        public static bool cbMessageCallBack(int lCommand, int lLoginID, IntPtr pBuf,
                                             uint dwBufLen, string pchDVRIP, int nDVRPort, IntPtr dwUser)
        {
            ProtocolDHAlarm instrument = listInstrument.Find(x => x.device.ip == pchDVRIP);

            if (instrument == null)
            {
                return(true);
            }
            switch (lCommand)
            {
            case 0x2175:     //DH_ALARM_ALARM_EX2
                break;

            case 0x3183:
                ALARM_INPUT_SOURCE_SIGNAL_INFO alarmInput = (ALARM_INPUT_SOURCE_SIGNAL_INFO)Marshal.PtrToStructure(pBuf, typeof(ALARM_INPUT_SOURCE_SIGNAL_INFO));
                Sensor sensor = instrument.FindSensorBySID(1, alarmInput.nChannelID);
                if (sensor != null)
                {
                    if (alarmInput.nAction == 0)
                    {
                        STATUS_INFO old = instrument.listAlarm.Find(x => x.id == sensor.id);
                        if (old == null)
                        {
                            STATUS_INFO info = new STATUS_INFO();
                            info.no         = (int)sensor.id;
                            info.id         = sensor.id;
                            info.name       = sensor.name;
                            info.status     = STATUS_TYPE.ALARM;
                            info.time       = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                            info.type       = MONITOR_TYPE.io;
                            info.confidence = 100;
                            instrument.OnObjectStatusEH(info);
                            instrument.listAlarm.Add(info);
                        }
                    }
                    else if (alarmInput.nAction == 1)
                    {
                        STATUS_INFO old = instrument.listAlarm.Find(x => x.id == sensor.id);
                        if (old != null)
                        {
                            instrument.listAlarm.Remove(old);
                        }
                    }
                }
                break;

                /*
                 * case 0x3195:
                 *  ALARM_MODULE_LOST_INFO lostInfo = (ALARM_MODULE_LOST_INFO)Marshal.PtrToStructure(pBuf, typeof(ALARM_MODULE_LOST_INFO));
                 *  for (int i = 0; i < lostInfo.nAddr; i++)
                 *  {
                 *      Sensor sensorError = instrument.FindSensorBySID(1, lostInfo.anAddr[i]);
                 *      if (sensorError != null)
                 *      {
                 *          if (lostInfo.bOnline)
                 *          {
                 *              ERROR_INFO old = instrument.listError.Find(x => x.id == sensorError.id);
                 *              if (old != null)
                 *              {
                 *                  ERROR_INFO info = new ERROR_INFO();
                 *                  info.id = sensorError.id;
                 *                  info.name = sensorError.name;
                 *                  info.status = STATUS_TYPE.NORMAL;
                 *                  info.starttime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                 *                  info.type = OBJECT_TYPE.sensor;
                 *                  instrument.OnObjectErrorEH(info);
                 *                  instrument.listError.Remove(old);
                 *              }
                 *          }
                 *          else
                 *          {
                 *              ERROR_INFO old = instrument.listError.Find(x => x.id == sensorError.id);
                 *              if (old == null)
                 *              {
                 *                  ERROR_INFO info = new ERROR_INFO();
                 *                  info.id = sensorError.id;
                 *                  info.name = sensorError.name;
                 *                  info.status = STATUS_TYPE.ERROR;
                 *                  info.starttime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                 *                  info.type = OBJECT_TYPE.sensor;
                 *                  instrument.OnObjectErrorEH(info);
                 *                  instrument.listError.Add(info);
                 *              }
                 *          }
                 *      }
                 *  }
                 *  break;
                 */
            }

            return(true);
        }