Esempio n. 1
0
        /// <summary>
        ///     查询设施下所有设备
        /// </summary>
        /// <param name="facilitySerialnum"></param>
        /// <returns></returns>
        public static async Task <XResponseMessage> ProcessGetFacilityDevices(string facilitySerialnum)
        {
            if (facilitySerialnum == null)
            {
                throw new ArgumentNullException("facilitySerialnum");
            }
            decimal?nullValueDecimal = null;

            try
            {
                //查询设施下所有传感器采集和控制设备
                var devices =
                    _deviceService.GetDevicesByFacilityId(facilitySerialnum).ToList().Select(t => new DeviceModel()
                {
                    Serialnum           = t.Serialnum,
                    Name                = t.Name,
                    FacilitySerialnum   = facilitySerialnum,
                    DeviceTypeSerialnum = t.DeviceTypeSerialnum,
                    ProcessedValue      = t.ProcessedValue,
                    ShowValue           = t.ShowValue,
                    Unit                = t.Unit,
                    UpdateTime          = t.UpdateTime,
                    Max = _deviceExceptionSetService.GetDeviceExceptionSetByDeviceId(t.Serialnum) != null
                        ? _deviceExceptionSetService.GetDeviceExceptionSetByDeviceId(t.Serialnum).Max : nullValueDecimal,
                    Min = _deviceExceptionSetService.GetDeviceExceptionSetByDeviceId(t.Serialnum) != null
                        ? _deviceExceptionSetService.GetDeviceExceptionSetByDeviceId(t.Serialnum).Min : nullValueDecimal,
                });
                //查询设施下所有音视频设备
                var cameras =
                    (await _facilityCameraService.GetFacilityCamerasByFacilityIdAsny(facilitySerialnum)).ToList().Select(cam => new MediaData()
                {
                    DeviceCode   = cam.Serialnum,
                    FacilityCode = cam.FacilitySerialnum,
                    Url          = cam.IP,
                    MediaPort    = cam.HttpPort,
                    ContrPort    = cam.DataPort,
                    User         = cam.UserID,
                    Pwd          = cam.UserPwd,
                    Channel      = cam.Channel
                });


                var deviceModels = devices as IList <DeviceModel> ?? devices.ToList();
                return(ResultHelper.CreateMessage("", ErrorType.NoError, new
                {
                    Collect = deviceModels.Where(d => d.DeviceTypeSerialnum.StartsWith("collect")),
                    Control = deviceModels.Where(d => d.DeviceTypeSerialnum.StartsWith("control")),
                    Camera = cameras
                }));
            }
            catch (Exception ex)
            {
                return(ResultHelper.CreateMessage("", ErrorType.InternalError, null, ex));
            }
        }
Esempio n. 2
0
        /// <summary>
        ///     添加摄像机
        /// </summary>
        /// <param name="item"></param>
        /// <param name="facilityDb"></param>
        public static async Task AddCamera(FacilityAddData item, FacilityDto facilityDb)
        {
            var cameras = item.Cameras;
            List <FacilityCameraDto> cameraList = null;

            if (_redis.Exists("facilityCamera") == 1)
            {
                cameraList = _redis.Smember <FacilityCameraDto>("facilityCamera", DataType.Protobuf);
            }
            var camerasDb = cameraList != null ? cameraList : await _facilityCameraService.GetFacilityCamerasByFacilityIdAsny(facilityDb.Serialnum);

            if (cameras != null && cameras.Any())
            {
                cameras.ForEach(async c =>
                {
                    await CollectDataProcessor.AddCamera(c);
                });
            }
        }