|
|
@ -43,7 +43,6 @@ import org.thingsboard.server.common.msg.TbMsgMetaData; |
|
|
import org.thingsboard.server.common.msg.rpc.FromDeviceRpcResponse; |
|
|
import org.thingsboard.server.common.msg.rpc.FromDeviceRpcResponse; |
|
|
import org.thingsboard.server.common.msg.rpc.FromDeviceRpcResponseActorMsg; |
|
|
import org.thingsboard.server.common.msg.rpc.FromDeviceRpcResponseActorMsg; |
|
|
import org.thingsboard.server.dao.exception.DataValidationException; |
|
|
import org.thingsboard.server.dao.exception.DataValidationException; |
|
|
import org.thingsboard.server.gen.edge.v1.DeviceCredentialsRequestMsg; |
|
|
|
|
|
import org.thingsboard.server.gen.edge.v1.DeviceCredentialsUpdateMsg; |
|
|
import org.thingsboard.server.gen.edge.v1.DeviceCredentialsUpdateMsg; |
|
|
import org.thingsboard.server.gen.edge.v1.DeviceRpcCallMsg; |
|
|
import org.thingsboard.server.gen.edge.v1.DeviceRpcCallMsg; |
|
|
import org.thingsboard.server.gen.edge.v1.DeviceUpdateMsg; |
|
|
import org.thingsboard.server.gen.edge.v1.DeviceUpdateMsg; |
|
|
@ -70,7 +69,7 @@ public abstract class DeviceEdgeProcessor extends BaseDeviceProcessor implements |
|
|
case ENTITY_CREATED_RPC_MESSAGE: |
|
|
case ENTITY_CREATED_RPC_MESSAGE: |
|
|
case ENTITY_UPDATED_RPC_MESSAGE: |
|
|
case ENTITY_UPDATED_RPC_MESSAGE: |
|
|
saveOrUpdateDevice(tenantId, deviceId, deviceUpdateMsg, edge); |
|
|
saveOrUpdateDevice(tenantId, deviceId, deviceUpdateMsg, edge); |
|
|
return saveEdgeEvent(tenantId, edge.getId(), EdgeEventType.DEVICE, EdgeEventActionType.CREDENTIALS_REQUEST, deviceId, null); |
|
|
return Futures.immediateFuture(null); |
|
|
case ENTITY_DELETED_RPC_MESSAGE: |
|
|
case ENTITY_DELETED_RPC_MESSAGE: |
|
|
Device deviceToDelete = deviceService.findDeviceById(tenantId, deviceId); |
|
|
Device deviceToDelete = deviceService.findDeviceById(tenantId, deviceId); |
|
|
if (deviceToDelete != null) { |
|
|
if (deviceToDelete != null) { |
|
|
@ -232,6 +231,12 @@ public abstract class DeviceEdgeProcessor extends BaseDeviceProcessor implements |
|
|
DownlinkMsg.Builder builder = DownlinkMsg.newBuilder() |
|
|
DownlinkMsg.Builder builder = DownlinkMsg.newBuilder() |
|
|
.setDownlinkMsgId(EdgeUtils.nextPositiveInt()) |
|
|
.setDownlinkMsgId(EdgeUtils.nextPositiveInt()) |
|
|
.addDeviceUpdateMsg(deviceUpdateMsg); |
|
|
.addDeviceUpdateMsg(deviceUpdateMsg); |
|
|
|
|
|
|
|
|
|
|
|
DeviceCredentials deviceCredentials = deviceCredentialsService.findDeviceCredentialsByDeviceId(edgeEvent.getTenantId(), deviceId); |
|
|
|
|
|
DeviceCredentialsUpdateMsg deviceCredentialsUpdateMsg = ((DeviceMsgConstructor) |
|
|
|
|
|
deviceMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion)).constructDeviceCredentialsUpdatedMsg(deviceCredentials); |
|
|
|
|
|
builder.addDeviceCredentialsUpdateMsg(deviceCredentialsUpdateMsg).build(); |
|
|
|
|
|
|
|
|
if (UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE.equals(msgType)) { |
|
|
if (UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE.equals(msgType)) { |
|
|
DeviceProfile deviceProfile = deviceProfileService.findDeviceProfileById(edgeEvent.getTenantId(), device.getDeviceProfileId()); |
|
|
DeviceProfile deviceProfile = deviceProfileService.findDeviceProfileById(edgeEvent.getTenantId(), device.getDeviceProfileId()); |
|
|
deviceProfile = checkIfDeviceProfileDefaultFieldsAssignedToEdge(edgeEvent.getTenantId(), edgeId, deviceProfile, edgeVersion); |
|
|
deviceProfile = checkIfDeviceProfileDefaultFieldsAssignedToEdge(edgeEvent.getTenantId(), edgeId, deviceProfile, edgeVersion); |
|
|
@ -269,22 +274,7 @@ public abstract class DeviceEdgeProcessor extends BaseDeviceProcessor implements |
|
|
deviceMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion)) |
|
|
deviceMsgConstructorFactory.getMsgConstructorByEdgeVersion(edgeVersion)) |
|
|
.constructDeviceRpcCallMsg(edgeEvent.getEntityId(), edgeEvent.getBody())) |
|
|
.constructDeviceRpcCallMsg(edgeEvent.getEntityId(), edgeEvent.getBody())) |
|
|
.build(); |
|
|
.build(); |
|
|
case CREDENTIALS_REQUEST: |
|
|
|
|
|
return convertCredentialsRequestEventToDownlink(edgeEvent); |
|
|
|
|
|
} |
|
|
} |
|
|
return downlinkMsg; |
|
|
return downlinkMsg; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private DownlinkMsg convertCredentialsRequestEventToDownlink(EdgeEvent edgeEvent) { |
|
|
|
|
|
DeviceId deviceId = new DeviceId(edgeEvent.getEntityId()); |
|
|
|
|
|
DeviceCredentialsRequestMsg deviceCredentialsRequestMsg = DeviceCredentialsRequestMsg.newBuilder() |
|
|
|
|
|
.setDeviceIdMSB(deviceId.getId().getMostSignificantBits()) |
|
|
|
|
|
.setDeviceIdLSB(deviceId.getId().getLeastSignificantBits()) |
|
|
|
|
|
.build(); |
|
|
|
|
|
DownlinkMsg.Builder builder = DownlinkMsg.newBuilder() |
|
|
|
|
|
.setDownlinkMsgId(EdgeUtils.nextPositiveInt()) |
|
|
|
|
|
.addDeviceCredentialsRequestMsg(deviceCredentialsRequestMsg); |
|
|
|
|
|
return builder.build(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|