コード例 #1
0
        /// <summary>
        /// 核心服务层同步缓存到网关的处理
        /// </summary>
        /// <param name="masProtocol"></param>
        public void HandleUpdateCacheDataRequest(MasProtocol masProtocol)
        {
            UpdateCacheDataRequest request = masProtocol.Deserialize <UpdateCacheDataRequest>();

            if (request == null)
            {
                return;
            }

            if (request.DeviceList != null)
            {
                HandleDeviceCache(request.DeviceList);//测点同步
            }
            if (request.DeviceTypeList != null)
            {
                HandleDeviceTypeCache(request.DeviceTypeList);//设备类型同步
            }
            if (request.NetworkDeviceList != null)
            {
                HandleNetworkDeviceCache(request.NetworkDeviceList);//网络模块同步
            }
            if (request.DeviceAcrossControlList != null)
            {
                HandleDeviceAcrossControlCache(request.DeviceAcrossControlList);//交叉控制同步
            }
        }
コード例 #2
0
        /// <summary>
        /// 向网关同步数据
        /// </summary>
        /// <param name="SendItemList"></param>
        /// <returns></returns>
        private bool SynchronousDataToGateway(List <Jc_JcsdkzInfo> SendItemList)
        {
            UpdateCacheDataRequest         UpdateCache         = new UpdateCacheDataRequest();
            List <DeviceAcrossControlInfo> UpdateCacheDataList = new List <DeviceAcrossControlInfo>();

            UpdateCacheDataList = ObjectConverter.CopyList <Jc_JcsdkzInfo, DeviceAcrossControlInfo>(SendItemList).ToList();
            foreach (DeviceAcrossControlInfo deviceInfo in UpdateCacheDataList)
            {
                deviceInfo.UniqueKey = deviceInfo.ID;
            }
            UpdateCache.DeviceAcrossControlList = UpdateCacheDataList;
            //调用RPC发送
            MasProtocol masProtocol = new MasProtocol(SystemType.Security, DirectionType.Down, ProtocolType.UpdateCacheDataRequest);

            masProtocol.Protocol = UpdateCache;
            var result = RpcService.Send <GatewayRpcResponse>(masProtocol, RequestType.BusinessRequest);

            if (result == null)
            {
                return(false);
            }
            return(result.IsSuccess);
            //return true;
        }