/// <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);//交叉控制同步 } }
/// <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; }