コード例 #1
0
        /// <summary>
        /// 获取单个设备信息
        /// </summary>
        /// <param name="deviceSerial"></param>
        public void GetEzvizDevice(string deviceSerial)
        {
            var postData = "accessToken=" + _ezvizAccessToken + "&deviceSerial=" + deviceSerial;
            var device   = ToHttp.ToPost <Device>("https://open.ys7.com/api/lapp/device/info", postData);

            LogHelper.WriteLog(typeof(string), JsonConvert.SerializeObject(device));
            if (device.code == "200")
            {
                string status;
                if (device.data.status == 0)
                {
                    status = "离线";
                }
                else if (device.data.status == 1)
                {
                    status = "在线";
                }
                else
                {
                    status = "未知";
                }
                if (!_dbContext2.XlProject.Any(x => x.XlShebeiId == device.data.deviceSerial && x.IsDeleted == 0))
                {
                    XlProject xlProject = new XlProject();
                    xlProject.AddPeople     = "狗";
                    xlProject.AddTime       = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                    xlProject.XlProjectUuid = Guid.NewGuid();
                    xlProject.XlShebeiId    = device.data.deviceSerial;
                    xlProject.XlShebeiType  = "五水共治污水监控";
                    xlProject.IsDeleted     = 0;
                    xlProject.ShebeiAddress = device.data.deviceName;
                    xlProject.ShebeiType    = status;
                    xlProject.UrlType       = 3;
                    _dbContext2.XlProject.Add(xlProject);
                    LogHelper.WriteLog(typeof(string), "添加" + device.data.deviceName);
                }
                else
                {
                    var xlp = _dbContext2.XlProject.FirstOrDefault(x => x.XlShebeiId == device.data.deviceSerial && x.IsDeleted == 0);
                    xlp.ShebeiAddress = device.data.deviceName;
                    xlp.ShebeiType    = status;
                    xlp.UrlType       = 3;
                    LogHelper.WriteLog(typeof(string), "修改" + device.data.deviceName);
                }
                _dbContext2.SaveChanges();
            }
            else if (device.code == "10002")
            {
                LogHelper.WriteLog(typeof(string), "token失效");
                GetEzvizAccessToken();
                GetEzvizDevice(deviceSerial);
            }
            else
            {
                LogHelper.WriteLog(typeof(string), device.code + "|" + device.msg);
            }
        }
コード例 #2
0
        /// <summary>
        /// 停止控制
        /// </summary>
        /// <param name="deviceSerial"></param>
        /// <param name="channelNo"></param>
        /// <returns></returns>
        private object StopEzvizPTZ(string deviceSerial, int channelNo)
        {
            var postData  = "accessToken=" + _ezvizAccessToken + "&deviceSerial=" + deviceSerial + "&channelNo=" + channelNo;
            var ptzResult = ToHttp.ToPost <PTZResult>("https://open.ys7.com/api/lapp/device/ptz/stop", postData);

            if (ptzResult.code == "10002")
            {
                GetEzvizAccessToken();
                StopEzvizPTZ(deviceSerial, channelNo);
            }

            return(ptzResult);
        }
コード例 #3
0
        /// <summary>
        /// ezviz平台获取token
        /// </summary>
        private void GetEzvizAccessToken()
        {
            var postData = "appKey=" + _ezvizAppKey + "&appSecret=" + _ezvizSecret;
            var token    = ToHttp.ToPost <AccessToken>("https://open.ys7.com/api/lapp/token/get", postData);

            if (token.code == "200")
            {
                _ezvizAccessToken = token.data.accessToken;
                WebConfigurationManager.AppSettings.Set("token", token.data.accessToken);
            }
            else
            {
                throw new Exception("获取token错误:" + token.code + "|" + token.msg);
            }
        }
コード例 #4
0
        /// <summary>
        /// 云台控制
        /// </summary>
        /// <param name="deviceSerial"></param>
        /// <param name="channelNo"></param>
        /// <param name="direction"></param>
        /// <returns></returns>
        private object ToEzvizPTZ(string deviceSerial, int channelNo, int direction)
        {
            var postData  = "accessToken=" + _ezvizAccessToken + "&deviceSerial=" + deviceSerial + "&channelNo=" + channelNo + "&direction=" + direction + "&speed=1";
            var ptzResult = ToHttp.ToPost <PTZResult>("https://open.ys7.com/api/lapp/device/ptz/start", postData);

            if (ptzResult.code == "10002")
            {
                GetEzvizAccessToken();
                ToEzvizPTZ(deviceSerial, channelNo, direction);
            }



            return(ptzResult);
        }
コード例 #5
0
        /// <summary>
        /// ezviz平台获取token
        /// </summary>
        public void GetEzvizAccessToken()
        {
            var postData = "appKey=" + _ezvizAppKey + "&appSecret=" + _ezvizSecret;
            var token    = ToHttp.ToPost <AccessToken>("https://open.ys7.com/api/lapp/token/get", postData);

            if (token.code == "200")
            {
                _ezvizAccessToken = token.data.accessToken;
                ConfigurationManager.AppSettings.Set("token", token.data.accessToken);
            }
            else
            {
                LogHelper.WriteLog(typeof(string), token.code + "|" + token.msg);
                throw new Exception(token.code + " | " + token.msg);
            }
        }
コード例 #6
0
        /// <summary>
        /// ezviz 获取监控直播列表
        /// </summary>
        /// <param name="pageIndex">页数</param>
        private object GetEzvizLiveList(int pageIndex)
        {
            //var hls = "";
            var postData  = "accessToken=" + _ezvizAccessToken + "&pageStart=" + pageIndex + "&pageSize=50";
            var liveVideo = ToHttp.ToPost <LiveVideo>("https://open.ys7.com/api/lapp/live/video/list", postData);

            if (liveVideo.code == "200")
            {
                var index = liveVideo.data.FindIndex(x => x.deviceSerial == _deviceSerial);
                if (index != -1)
                {
                    return(liveVideo.data[index]);
                }
                else
                {
                    if ((liveVideo.page.total - (pageIndex + 1) * 50) % 50 > 0)
                    {
                        pageIndex++;
                        return(GetEzvizLiveList(pageIndex));
                    }
                    else
                    {
                        return(null);
                    }
                }
                //_liveList.AddRange(liveVideo.data);
            }
            else if (liveVideo.code == "10002")
            {
                GetEzvizAccessToken();
                return(GetEzvizLiveList(0));
            }
            else
            {
                return(null);
            }
        }
コード例 #7
0
        /// <summary>
        /// 获取设备列表
        /// </summary>
        /// <param name="pageIndex">页数</param>
        public void GetEzvizDevices(int pageIndex)
        {
            var postData = "accessToken=" + _ezvizAccessToken + "&pageStart=" + pageIndex + "&pageSize=50";
            var devices  = ToHttp.ToPost <Devices>("https://open.ys7.com/api/lapp/device/list", postData);

            if (devices.code == "200")
            {
                _sewage.AddRange(devices.data);
                if ((devices.page.total - (pageIndex + 1) * 50) % 50 > 0)
                {
                    pageIndex++;
                    GetEzvizDevices(pageIndex);
                }
            }
            else if (devices.code == "10002")
            {
                GetEzvizAccessToken();
                GetEzvizDevices(0);
            }
            else
            {
                LogHelper.WriteLog(typeof(string), devices.code + "|" + devices.msg);
            }
        }