xm
2020-05-13 edf7c324bea0556a3df9096dd41d668a9d41bf51
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs
old mode 100644 new mode 100755
@@ -507,6 +507,8 @@
            if (locadevice != null)
            {
                ((IASZone)locadevice).iASInfo = ias.iASInfo;
                //如果接收到上报,即说明这个传感器是在线的
                locadevice.IsOnline = 1;
                //记录回复时间
                locadevice.LastDateTime = DateTime.Now;
            }
@@ -569,7 +571,7 @@
        /// 设备在线状态更新反馈
        /// </summary>
        /// <param name="receiveData"></param>
        private void DeviceOnlineChangePush(JObject receiveData)
        private void DeviceOnlineChangePush (JObject receiveData)
        {
            if (this.dicDeviceEvent.Count == 0)
            {
@@ -580,13 +582,18 @@
            tempDevice.IsOnline = Convert.ToInt32(receiveData["Data"]["IsOnline"].ToString());
            //处理网关上报的数据,然后变更本地缓存
            var locadevice = Common.LocalDevice.Current.GetDevice(tempDevice.DeviceAddr, tempDevice.DeviceEpoint);
            if (locadevice != null)
            var locadevice = Common.LocalDevice.Current.GetDevicesByMac(tempDevice.DeviceAddr);
            for (int i = 0; i < locadevice.Count; i++)
            {
                locadevice.IsOnline = tempDevice.IsOnline;
                bool onlineChanged = locadevice[i].IsOnline != tempDevice.IsOnline;
                locadevice[i].IsOnline = tempDevice.IsOnline;
                //记录回复时间
                locadevice.LastDateTime = DateTime.Now;
                locadevice.ReSave();
                locadevice[i].LastDateTime = DateTime.Now;
                if (onlineChanged == true)
                {
                    //在线状态变更了,才保存
                    locadevice[i].ReSave();
                }
            }
            this.DeviceReportPush(tempDevice, ReceiveComandDiv.A设备在线上报);