private static void updateProperties(IoTDAClient client)
        {
            UpdatePropertiesRequest req = new UpdatePropertiesRequest
            {
                InstanceId = "1a7ffc5c-d89c-44dd-8265-b1653d951ce0",
                DeviceId   = "",
                Body       = new DevicePropertiesRequest()
                {
                    Services = JObject.Parse("[{\"properties\":{\"value\":57},\"service_id\":\"Temperature\"}]")
                }
            };

            try
            {
                var resp = client.UpdateProperties(req);
                Console.WriteLine(resp);
            }
            catch (RequestTimeoutException requestTimeoutException)
            {
                Console.WriteLine(requestTimeoutException.ErrorMessage);
            }
            catch (ServiceResponseException clientRequestException)
            {
                Console.WriteLine(clientRequestException.HttpStatusCode);
                Console.WriteLine(clientRequestException.ErrorCode);
                Console.WriteLine(clientRequestException.ErrorMsg);
            }
            catch (ConnectionException connectionException)
            {
                Console.WriteLine(connectionException.ErrorMessage);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 修改设备属性
        /// </summary>
        public async Task <UpdatePropertiesResponse> UpdatePropertiesAsync(UpdatePropertiesRequest updatePropertiesRequest)
        {
            Dictionary <string, string> urlParam = new Dictionary <string, string>();

            urlParam.Add("device_id", updatePropertiesRequest.DeviceId.ToString());
            string              urlPath  = HttpUtils.AddUrlPath("/v5/iot/{project_id}/devices/{device_id}/properties", urlParam);
            SdkRequest          request  = HttpUtils.InitSdkRequest(urlPath, "application/json", updatePropertiesRequest);
            HttpResponseMessage response = await DoHttpRequestAsync("PUT", request);

            return(JsonUtils.DeSerialize <UpdatePropertiesResponse>(response));
        }
Esempio n. 3
0
        private void UpdatePointDefineCacheByBz4(Jc_DefInfo Point)
        {
            Dictionary <string, object> paramater = new Dictionary <string, object>();

            //休眠、检修状态标记
            paramater.Add("Bz4", Point.Bz4);
            //定义改变标记
            paramater.Add("DefIsInit", Point.DefIsInit);


            //修改标记
            paramater.Add("InfoState", Point.InfoState);

            UpdatePropertiesRequest defineCacheUpdatePropertiesRequest = new UpdatePropertiesRequest();

            defineCacheUpdatePropertiesRequest.PointID     = Point.PointID;
            defineCacheUpdatePropertiesRequest.UpdateItems = paramater;
            _b_DefCacheService.UpdateInfo(defineCacheUpdatePropertiesRequest);
        }
Esempio n. 4
0
        /// <summary>
        /// 同步老广播系统测点定义
        /// </summary>
        /// <returns></returns>
        public BasicResponse <bool> SynchronousPoint(SynchronousPointRequest PointDefineRequest)
        {
            BasicResponse <bool> response = new BasicResponse <bool>();

            try
            {
                bool isupdate = false;

                if (PointDefineRequest.Points != null)
                {
                    var points = _b_DefCacheService.Get(new B_DefCacheGetByConditionRequest
                    {
                        predicate = b => b.Sysid
                                    == (int)SystemEnum.Broadcast
                    }).Data;
                    bool isupdatedb = false;//是否更新数据库,如果只有状态发生改变,则只更新缓存数据;反之需要更新数据库
                    foreach (DataRow row in PointDefineRequest.Points.Rows)
                    {
                        var point = row["AddNum"].ToString();
                        //如果存在则比较更新测点信息;如果不存在则插入测点信息
                        if (points.FirstOrDefault(p => p.Point == point) != null)
                        {
                            Dictionary <string, object> paramater = new Dictionary <string, object>();
                            var definfo = points.FirstOrDefault(p => p.Point == point);
                            //比较位置是否一致
                            if (definfo.Wz != row["Wz"].ToString())
                            {
                                isupdatedb   = true;
                                definfo.Wzid = GetPositionId(row["Wz"].ToString());
                                definfo.Wz   = row["Wz"].ToString();
                                paramater.Add("Wzid", GetPositionId(row["Wz"].ToString()));
                                paramater.Add("Wz", row["Wz"].ToString());
                            }
                            //比较区域是否一致
                            // 20180606
                            //var zoneId = row["ZoneId"];
                            if (row.Table.Columns.Contains("ZoneId") && row["ZoneId"] != null && row["ZoneId"].ToString() != "")
                            {
                                var req = new AreaCacheGetByConditionRequest();
                                req.Predicate = a => a.Areaid == definfo.Areaid;
                                var res      = _areaCacheService.GetAreaCache(req);
                                var areaInfo = res.Data[0];
                                if (areaInfo.Areaname != row["Groupname"].ToString() || areaInfo.Areadescribe != row["ZoneId"].ToString())
                                {
                                    isupdatedb       = true;
                                    definfo.Areaid   = GetAreaId(row["Groupname"].ToString(), row["ZoneId"].ToString());
                                    definfo.AreaName = row["Groupname"].ToString();
                                    paramater.Add("Areaid", GetAreaId(row["Groupname"].ToString(), row["ZoneId"].ToString()));
                                    paramater.Add("AreaName", row["Groupname"].ToString());
                                    paramater.Add("Areadescribe", row["ZoneId"].ToString());
                                }
                            }
                            else
                            {
                                if (definfo.AreaName != row["Groupname"].ToString())
                                {
                                    isupdatedb       = true;
                                    definfo.Areaid   = GetAreaId(row["Groupname"].ToString());
                                    definfo.AreaName = row["Groupname"].ToString();
                                    paramater.Add("Areaid", GetAreaId(row["Groupname"].ToString()));
                                    paramater.Add("AreaName", row["Groupname"].ToString());
                                }
                            }

                            //数据状态与设备状态不做比较,直接更新
                            var state = row["State"].ToString();
                            if (state == "0")
                            {
                                definfo.DataState = 3;
                                definfo.State     = 3;

                                paramater.Add("DataState", 3);
                                paramater.Add("State", 3);
                                paramater.Add("Ssz", EnumHelper.GetEnumDescription(DeviceDataState.EquipmentAC));
                            }
                            else if (state == "1")
                            {
                                definfo.DataState = 49;
                                definfo.State     = 3;

                                paramater.Add("DataState", 49);
                                paramater.Add("State", 3);
                                paramater.Add("Ssz", EnumHelper.GetEnumDescription(DeviceDataState.BroadCastInCall));
                            }
                            else if (state == "2")
                            {
                                definfo.DataState = 0;
                                definfo.State     = 0;

                                paramater.Add("DataState", 0);
                                paramater.Add("State", 0);
                                paramater.Add("Ssz", EnumHelper.GetEnumDescription(DeviceDataState.EquipmentInterrupted));
                            }
                            //比较Mac是否一致
                            if (definfo.Jckz1 != row["Mac"].ToString())
                            {
                                isupdatedb    = true;
                                definfo.Jckz1 = row["Mac"].ToString();
                                paramater.Add("Jckz1", row["Mac"].ToString());
                            }
                            //比较IP是否一致
                            if (definfo.Jckz2 != row["IP"].ToString())
                            {
                                isupdatedb    = true;
                                definfo.Jckz2 = row["IP"].ToString();
                                paramater.Add("Jckz2", row["IP"].ToString());
                            }
                            //比较设备类型是否一致
                            if (definfo.Bz6 != row["Type"].ToString())
                            {
                                isupdatedb  = true;
                                definfo.Bz6 = row["Type"].ToString();
                                paramater.Add("Bz6", row["Type"].ToString());
                            }

                            //更新数据库
                            if (isupdatedb)
                            {
                                isupdate = true;
                                var _jc_Def = ObjectConverter.Copy <Jc_DefInfo, B_DefModel>(definfo);
                                _repository.UpdateDef(_jc_Def);
                            }

                            //更新数据更新时间,每次调用都更新时间  20180422
                            paramater.Add("DttStateTime", DateTime.Now);
                            //更新缓存
                            if (paramater.Count > 0)
                            {
                                UpdatePropertiesRequest updaterequest = new UpdatePropertiesRequest();
                                updaterequest.PointID     = definfo.PointID;
                                updaterequest.UpdateItems = paramater;
                                _b_DefCacheService.UpdateInfo(updaterequest);
                            }
                        }
                        else
                        {
                            var bdev = _devCacheService.GetPointDefineCache(new DeviceDefineCacheGetByConditonRequest
                            {
                                Predicate = dev => dev.Name == "广播主机"
                            }).Data.FirstOrDefault();

                            if (bdev != null)
                            {
                                Jc_DefInfo bdefinfo = new Jc_DefInfo();
                                bdefinfo.ID   = bdefinfo.PointID = IdHelper.CreateLongId().ToString();
                                bdefinfo.Wzid = GetPositionId(row["Wz"].ToString());
                                bdefinfo.Wz   = row["Wz"].ToString();

                                // 20180606
                                //var zoneId = row["ZoneId"];
                                if (row.Table.Columns.Contains("ZoneId") && row["ZoneId"] != null && row["ZoneId"].ToString() != "")
                                {
                                    bdefinfo.Areaid   = GetAreaId(row["Groupname"].ToString(), row["ZoneId"].ToString());
                                    bdefinfo.AreaName = row["Groupname"].ToString();
                                }
                                else
                                {
                                    bdefinfo.Areaid   = GetAreaId(row["Groupname"].ToString());
                                    bdefinfo.AreaName = row["Groupname"].ToString();
                                }

                                bdefinfo.Point            = point;
                                bdefinfo.Upflag           = "1";//子系统同步测点
                                bdefinfo.Jckz1            = row["Mac"].ToString();
                                bdefinfo.Jckz2            = row["IP"].ToString();
                                bdefinfo.Bz6              = row["Type"].ToString();
                                bdefinfo.CreateUpdateTime = DateTime.Now;
                                bdefinfo.DeleteTime       = DateTime.Parse("1900-01-01 00:00:00");
                                bdefinfo.Activity         = "1";
                                bdefinfo.InfoState        = InfoState.AddNew;
                                bdefinfo.DevPropertyID    = 0;
                                bdefinfo.DevProperty      = bdev.DevProperty;
                                bdefinfo.Devid            = bdev.Devid;
                                bdefinfo.DevName          = bdev.Name;
                                bdefinfo.Sysid            = (int)SystemEnum.Broadcast;
                                bdefinfo.DttStateTime     = DateTime.Now;

                                var bdefinfos = _b_DefCacheService.Get(new B_DefCacheGetByConditionRequest
                                {
                                    predicate = b => b.Sysid
                                                == (int)SystemEnum.Broadcast
                                }).Data;

                                //if (bdefinfos.Count == 0)
                                //{
                                //    bdefinfo.Fzh = 256;
                                //}
                                //else
                                //{
                                //    int maxstationnum = bdefinfos.Max(o => o.Fzh);
                                //    bdefinfo.Fzh = (short)(maxstationnum + 1);
                                //}

                                // 20180605
                                //生成分站号
                                var   req             = new B_DefCacheGetAllRequest();
                                var   res             = _b_DefCacheService.GetAll(req);
                                var   broadcastPoints = res.Data;
                                short fzh             = 0;
                                for (int i = 257; i < 513; i++)
                                {
                                    var exist = broadcastPoints.Any(a => a.Fzh == i);
                                    if (!exist)
                                    {
                                        fzh = (short)i;
                                        break;
                                    }
                                }

                                //var fzh = Convert.ToInt32(point) + 256;
                                if (fzh == 0)
                                {
                                    var ret = new BasicResponse <bool>();
                                    ret.Code    = 101;
                                    ret.Data    = false;
                                    ret.Message = "广播设备对应分站号已满。";
                                    return(ret);
                                }
                                bdefinfo.Fzh = fzh;

                                isupdate = true;
                                //添加数据库
                                var _jc_Def      = ObjectConverter.Copy <Jc_DefInfo, B_DefModel>(bdefinfo);
                                var resultjc_Def = _repository.AddDef(_jc_Def);
                                //更新缓存
                                B_DefCacheInsertRequest addbDefCacheRequest = new B_DefCacheInsertRequest();
                                addbDefCacheRequest.B_DefInfo = bdefinfo;
                                _b_DefCacheService.Insert(addbDefCacheRequest);
                            }
                        }
                    }

                    //判断同步数据是否有删除的测点信息,如果有则同步删除
                    for (int i = points.Count - 1; i >= 0; i--)
                    {
                        var pointrow = PointDefineRequest.Points.Select("AddNum = '" + points[i].Point + "'");
                        if (pointrow.Length == 0)
                        {
                            isupdate = true;
                            //删除数据库
                            _repository.Delete(points[i].ID);
                            //删除缓存
                            _b_DefCacheService.Delete(new B_DefCacheDeleteRequest {
                                B_DefInfo = points[i]
                            });
                        }
                    }
                }

                if (isupdate)
                {
                    var saveTime = DateTime.Now;
                    //保存定义更新时间
                    if (Basic.Framework.Data.PlatRuntime.Items.ContainsKey("_DefUpdateTime"))
                    {
                        Basic.Framework.Data.PlatRuntime.Items["_DefUpdateTime"] = saveTime;
                    }
                    else
                    {
                        Basic.Framework.Data.PlatRuntime.Items.Add("_DefUpdateTime", saveTime);
                    }

                    //保存数据库
                    ConfigInfo tempConfig = new ConfigInfo();
                    tempConfig.Name   = "defdatetime";
                    tempConfig.Text   = saveTime.ToString("yyyy-MM-dd HH:mm:ss");
                    tempConfig.Upflag = "0";
                    ConfigCacheGetByKeyRequest configCacheRequest = new ConfigCacheGetByKeyRequest();
                    configCacheRequest.Name = "defdatetime";
                    var        result          = _configCacheService.GetConfigCacheByKey(configCacheRequest);
                    ConfigInfo tempConfigCache = result.Data;
                    if (tempConfig != null)
                    {
                        tempConfig.ID        = tempConfigCache.ID;
                        tempConfig.InfoState = InfoState.Modified;
                        //更新数据库
                        var req2 = ObjectConverter.Copy <ConfigInfo, ConfigModel>(tempConfig);
                        _configRepository.UpdateConfig(req2);
                        //更新缓存
                        ConfigCacheUpdateRequest UpdateConfigCacheRequest = new ConfigCacheUpdateRequest();
                        UpdateConfigCacheRequest.ConfigInfo = tempConfig;
                        _configCacheService.UpdateConfigCahce(UpdateConfigCacheRequest);
                    }
                }

                response.Data = true;
                return(response);
            }
            catch (Exception ex)
            {
                LogHelper.Error("广播同步定义信息出错!" + ex.Message);
                response.Data = true;
                return(response);
            }
        }
Esempio n. 5
0
        public BasicResponse PointDefineSaveData()
        {
            BasicResponse Result = new BasicResponse();

            //修改,根据保存时,置的初始化标记来置初始化标记
            B_DefCacheGetAllRequest pointDefineCacheRequest = new B_DefCacheGetAllRequest();
            var result = _b_DefCacheService.GetAll(pointDefineCacheRequest);
            List <Jc_DefInfo> newItems = result.Data.Where(a => a.DefIsInit).ToList();

            //保存巡检时,如果设备置了休眠的标记,则将缓存的Bz4更新  20170705
            newItems.ForEach(a =>
            {
                if (a.Dormancyflag)
                {
                    a.Bz4 |= 0x02;
                    Dictionary <string, object> paramater = new Dictionary <string, object>();
                    paramater.Add("Bz4", a.Bz4);
                    UpdatePropertiesRequest defineCacheUpdatePropertiesRequest = new UpdatePropertiesRequest();
                    defineCacheUpdatePropertiesRequest.PointID     = a.PointID;
                    defineCacheUpdatePropertiesRequest.UpdateItems = paramater;
                    _b_DefCacheService.UpdateInfo(defineCacheUpdatePropertiesRequest);
                }
            });
            IEnumerable <IGrouping <short, Jc_DefInfo> > groupFz = newItems.GroupBy(p => p.Fzh);

            ////驱动预处理
            //foreach (IGrouping<short, Jc_DefInfo> info in groupFz)
            //{
            //    //调用驱动处理
            //    Drv_LoadDef(info.ToList<Jc_DefInfo>());
            //}

            ////批量更新到缓存
            //result = _rPointDefineCacheService.GetAllRPointDefineCache(pointDefineCacheRequest);
            //PointDefineCacheBatchUpdateRequest UpdatePointDefineCacheRequest = new PointDefineCacheBatchUpdateRequest();
            ////保存巡检后将所有定义初始化判断标记置成false
            //Dictionary<string, Dictionary<string, object>> updateItemsList = new Dictionary<string, Dictionary<string, object>>();
            //Dictionary<string, object> updateItems = new Dictionary<string, object>();
            //List<Jc_DefInfo> items = result.Data;
            //foreach (Jc_DefInfo item in items)
            //{
            //    //if (item.DefIsInit)//交叉控制口变化要置kzchangeflag,但不会下发初始化,加上此条件会导致kzchangeflag一直为true
            //    //{
            //    item.DefIsInit = false;
            //    item.kzchangeflag = false;
            //    item.Dormancyflag = false;
            //    //}
            //    updateItems = new Dictionary<string, object>();
            //    updateItems.Add("DefIsInit", false);
            //    updateItems.Add("kzchangeflag", false);
            //    updateItems.Add("Dormancyflag", false);

            //    updateItemsList.Add(item.PointID, updateItems);
            //}
            //RDefineCacheBatchUpdatePropertiesRequest cacheUpdatePropertiesRequest = new RDefineCacheBatchUpdatePropertiesRequest();
            //cacheUpdatePropertiesRequest.PointItems = updateItemsList;
            //_rPointDefineCacheService.BatchUpdatePointDefineInfo(cacheUpdatePropertiesRequest);

            //删除缓存中的非活动点
            List <Jc_DefInfo>            NonActivityList = result.Data.FindAll(a => a.Activity == "0" && a.InfoState == InfoState.Modified);
            B_DefCacheBatchDeleteRequest DeletePointDefineCacheRequest = new B_DefCacheBatchDeleteRequest();

            DeletePointDefineCacheRequest.B_DefInfos = NonActivityList;
            _b_DefCacheService.BatchDelete(DeletePointDefineCacheRequest);


            return(Result);
        }
Esempio n. 6
0
        private void UpdatePointDefineCacheByProperty(Jc_DefInfo Point)
        {
            Dictionary <string, object> paramater = new Dictionary <string, object>();

            paramater.Add("Areaid", Point.Areaid);
            paramater.Add("Sysid", Point.Sysid);
            paramater.Add("Activity", Point.Activity);
            paramater.Add("CreateUpdateTime", Point.CreateUpdateTime);
            paramater.Add("DeleteTime", Point.DeleteTime);
            paramater.Add("Fzh", Point.Fzh);
            paramater.Add("Kh", Point.Kh);
            paramater.Add("Dzh", Point.Dzh);
            paramater.Add("Devid", Point.Devid);
            paramater.Add("Wzid", Point.Wzid);
            paramater.Add("Csid", Point.Csid);
            paramater.Add("Point", Point.Point);
            paramater.Add("Jckz1", Point.Jckz1);
            paramater.Add("Jckz2", Point.Jckz2);
            paramater.Add("Jckz3", Point.Jckz3);
            paramater.Add("Z1", Point.Z1);
            paramater.Add("Z2", Point.Z2);
            paramater.Add("Z3", Point.Z3);
            paramater.Add("Z4", Point.Z4);
            paramater.Add("Z5", Point.Z5);
            paramater.Add("Z6", Point.Z6);
            paramater.Add("Z7", Point.Z7);
            paramater.Add("Z8", Point.Z8);
            paramater.Add("K1", Point.K1);
            paramater.Add("K2", Point.K2);
            paramater.Add("K3", Point.K3);
            paramater.Add("K4", Point.K4);
            paramater.Add("K5", Point.K5);
            paramater.Add("K6", Point.K6);
            paramater.Add("K7", Point.K7);
            paramater.Add("K8", Point.K8);
            paramater.Add("Bz1", Point.Bz1);
            paramater.Add("Bz2", Point.Bz2);
            paramater.Add("Bz3", Point.Bz3);
            paramater.Add("Bz4", Point.Bz4);
            paramater.Add("Bz5", Point.Bz5);
            paramater.Add("Bz6", Point.Bz6);
            paramater.Add("Bz7", Point.Bz7);
            paramater.Add("Bz8", Point.Bz8);
            paramater.Add("Bz9", Point.Bz9);
            paramater.Add("Bz10", Point.Bz10);
            paramater.Add("Bz11", Point.Bz11);
            paramater.Add("Bz12", Point.Bz12);
            paramater.Add("Bz13", Point.Bz13);//条件呼叫转移号码
            paramater.Add("Bz18", Point.Bz18);
            //扩展字段更新
            paramater.Add("Wz", Point.Wz);
            paramater.Add("DevName", Point.DevName);
            paramater.Add("DevPropertyID", Point.DevPropertyID);
            paramater.Add("DevClassID", Point.DevClassID);
            paramater.Add("DevModelID", Point.DevModelID);
            paramater.Add("DevProperty", Point.DevProperty);
            paramater.Add("DevClass", Point.DevClass);
            paramater.Add("DevModel", Point.DevModel);
            paramater.Add("Unit", Point.Unit);
            paramater.Add("AreaName", Point.AreaName);
            paramater.Add("AreaLoc", Point.AreaLoc);
            paramater.Add("XCoordinate", Point.XCoordinate);
            paramater.Add("YCoordinate", Point.YCoordinate);

            //定义改变标记
            paramater.Add("PointEditState", Point.PointEditState);
            paramater.Add("DefIsInit", Point.DefIsInit);
            paramater.Add("kzchangeflag", Point.kzchangeflag);
            paramater.Add("ReDoDeal", Point.ReDoDeal);
            paramater.Add("Dormancyflag", Point.Dormancyflag);

            //修改标记
            paramater.Add("InfoState", Point.InfoState);


            UpdatePropertiesRequest bDefCacheRequest = new UpdatePropertiesRequest();

            bDefCacheRequest.PointID     = Point.PointID;
            bDefCacheRequest.UpdateItems = paramater;
            _b_DefCacheService.UpdateInfo(bDefCacheRequest);
        }