Commit e10462fe0fb19f48bd161aff377c9606f7b60a07

Authored by lijianfa_14810364212
1 parent d024ac85

fix:解决边端向云端推送事件,云端设备不上线问题

@@ -271,6 +271,7 @@ public class DefaultDeviceStateService extends AbstractPartitionBasedService<Dev @@ -271,6 +271,7 @@ public class DefaultDeviceStateService extends AbstractPartitionBasedService<Dev
271 } 271 }
272 log.trace("[{}] on Device Activity [{}], lastReportedActivity [{}]", tenantId.getId(), deviceId.getId(), lastReportedActivity); 272 log.trace("[{}] on Device Activity [{}], lastReportedActivity [{}]", tenantId.getId(), deviceId.getId(), lastReportedActivity);
273 final DeviceStateData stateData = getOrFetchDeviceStateData(deviceId); 273 final DeviceStateData stateData = getOrFetchDeviceStateData(deviceId);
  274 + System.out.println("State : "+stateData.getState().isActive());
274 if (lastReportedActivity > 0 && lastReportedActivity > stateData.getState().getLastActivityTime()) { 275 if (lastReportedActivity > 0 && lastReportedActivity > stateData.getState().getLastActivityTime()) {
275 updateActivityState(deviceId, stateData, lastReportedActivity); 276 updateActivityState(deviceId, stateData, lastReportedActivity);
276 } 277 }
@@ -292,8 +293,9 @@ public class DefaultDeviceStateService extends AbstractPartitionBasedService<Dev @@ -292,8 +293,9 @@ public class DefaultDeviceStateService extends AbstractPartitionBasedService<Dev
292 //thingkit function 293 //thingkit function
293 String tenantId = stateData.getTenantId().getId().toString(); 294 String tenantId = stateData.getTenantId().getId().toString();
294 String tbDeviceId = deviceId.getId().toString(); 295 String tbDeviceId = deviceId.getId().toString();
295 - tkDeviceService.updateDeviceStateByTbDeviceId(tenantId,tbDeviceId,  
296 - org.thingsboard.server.common.data.yunteng.enums.DeviceState.ONLINE); 296 +// tkDeviceService.updateDeviceStateByTbDeviceId(tenantId,tbDeviceId,
  297 +// org.thingsboard.server.common.data.yunteng.enums.DeviceState.ONLINE);
  298 +
297 //ThingsKit 299 //ThingsKit
298 saveDeviceStateLog(tenantId,tbDeviceId, FastIotConstants.StateValue.ONLINE); 300 saveDeviceStateLog(tenantId,tbDeviceId, FastIotConstants.StateValue.ONLINE);
299 } 301 }
@@ -602,6 +604,7 @@ public class DefaultDeviceStateService extends AbstractPartitionBasedService<Dev @@ -602,6 +604,7 @@ public class DefaultDeviceStateService extends AbstractPartitionBasedService<Dev
602 saveDeviceStateLog(tenantId,tbDeviceId, FastIotConstants.StateValue.OFFLINE); 604 saveDeviceStateLog(tenantId,tbDeviceId, FastIotConstants.StateValue.OFFLINE);
603 //thingskit update tkDevice state 605 //thingskit update tkDevice state
604 channelService.updateVideoChannelState(deviceId.getId().toString(), StatusEnum.OFFLINE); 606 channelService.updateVideoChannelState(deviceId.getId().toString(), StatusEnum.OFFLINE);
  607 + state.setActive(false);
605 } 608 }
606 } else { 609 } else {
607 cleanupEntity(deviceId); 610 cleanupEntity(deviceId);
@@ -689,13 +692,14 @@ public class DefaultDeviceStateService extends AbstractPartitionBasedService<Dev @@ -689,13 +692,14 @@ public class DefaultDeviceStateService extends AbstractPartitionBasedService<Dev
689 692
690 private ListenableFuture<DeviceStateData> fetchDeviceState(Device device) { 693 private ListenableFuture<DeviceStateData> fetchDeviceState(Device device) {
691 ListenableFuture<DeviceStateData> future; 694 ListenableFuture<DeviceStateData> future;
692 - if (persistToTelemetry) {  
693 - ListenableFuture<List<TsKvEntry>> tsData = tsService.findLatest(TenantId.SYS_TENANT_ID, device.getId(), PERSISTENT_ATTRIBUTES);  
694 - future = Futures.transform(tsData, extractDeviceStateData(device), MoreExecutors.directExecutor());  
695 - } else { 695 + //thingskit code因为我们的设备在线逻辑总是从attribute取数据,所以这里也总是从attribute取数据
  696 +// if (persistToTelemetry) {
  697 +// ListenableFuture<List<TsKvEntry>> tsData = tsService.findLatest(TenantId.SYS_TENANT_ID, device.getId(), PERSISTENT_ATTRIBUTES);
  698 +// future = Futures.transform(tsData, extractDeviceStateData(device), MoreExecutors.directExecutor());
  699 +// } else {
696 ListenableFuture<List<AttributeKvEntry>> attrData = attributesService.find(TenantId.SYS_TENANT_ID, device.getId(), SERVER_SCOPE, PERSISTENT_ATTRIBUTES); 700 ListenableFuture<List<AttributeKvEntry>> attrData = attributesService.find(TenantId.SYS_TENANT_ID, device.getId(), SERVER_SCOPE, PERSISTENT_ATTRIBUTES);
697 future = Futures.transform(attrData, extractDeviceStateData(device), MoreExecutors.directExecutor()); 701 future = Futures.transform(attrData, extractDeviceStateData(device), MoreExecutors.directExecutor());
698 - } 702 +// }
699 return transformInactivityTimeout(future); 703 return transformInactivityTimeout(future);
700 } 704 }
701 705