Commit cf2a7762d0e1979b1d04ac0474a3580010d53678

Authored by Andrii Shvaika
1 parent 6f67e72a

eDRXcycle support

@@ -27,6 +27,7 @@ public class OtherConfiguration { @@ -27,6 +27,7 @@ public class OtherConfiguration {
27 private Integer swUpdateStrategy; 27 private Integer swUpdateStrategy;
28 private Integer clientOnlyObserveAfterConnect; 28 private Integer clientOnlyObserveAfterConnect;
29 private PowerMode powerMode; 29 private PowerMode powerMode;
  30 + private Long eDRXCycle;
30 private String fwUpdateResource; 31 private String fwUpdateResource;
31 private String swUpdateResource; 32 private String swUpdateResource;
32 private boolean compositeOperationsSupport; 33 private boolean compositeOperationsSupport;
@@ -191,7 +191,7 @@ public class DefaultLwM2MAttributesService implements LwM2MAttributesService { @@ -191,7 +191,7 @@ public class DefaultLwM2MAttributesService implements LwM2MAttributesService {
191 191
192 private void pushUpdateToClientIfNeeded(LwM2mClient lwM2MClient, Object valueOld, Object newValue, String versionedId) { 192 private void pushUpdateToClientIfNeeded(LwM2mClient lwM2MClient, Object valueOld, Object newValue, String versionedId) {
193 if (newValue != null && (valueOld == null || !newValue.toString().equals(valueOld.toString()))) { 193 if (newValue != null && (valueOld == null || !newValue.toString().equals(valueOld.toString()))) {
194 - TbLwM2MWriteReplaceRequest request = TbLwM2MWriteReplaceRequest.builder().versionedId(versionedId).value(newValue).timeout(this.config.getTimeout()).build(); 194 + TbLwM2MWriteReplaceRequest request = TbLwM2MWriteReplaceRequest.builder().versionedId(versionedId).value(newValue).timeout(clientContext.getRequestTimeout(lwM2MClient)).build();
195 downlinkHandler.sendWriteReplaceRequest(lwM2MClient, request, new TbLwM2MWriteResponseCallback(uplinkHandler, logService, lwM2MClient, versionedId)); 195 downlinkHandler.sendWriteReplaceRequest(lwM2MClient, request, new TbLwM2MWriteResponseCallback(uplinkHandler, logService, lwM2MClient, versionedId));
196 } else { 196 } else {
197 log.error("Failed update resource [{}] [{}]", versionedId, newValue); 197 log.error("Failed update resource [{}] [{}]", versionedId, newValue);
@@ -62,4 +62,6 @@ public interface LwM2mClientContext { @@ -62,4 +62,6 @@ public interface LwM2mClientContext {
62 void sendMsgsAfterSleeping(LwM2mClient lwM2MClient); 62 void sendMsgsAfterSleeping(LwM2mClient lwM2MClient);
63 63
64 boolean isComposite(LwM2mClient client); 64 boolean isComposite(LwM2mClient client);
  65 +
  66 + Long getRequestTimeout(LwM2mClient client);
65 } 67 }
@@ -26,6 +26,7 @@ import org.springframework.context.annotation.Lazy; @@ -26,6 +26,7 @@ import org.springframework.context.annotation.Lazy;
26 import org.springframework.stereotype.Service; 26 import org.springframework.stereotype.Service;
27 import org.thingsboard.server.common.data.DeviceProfile; 27 import org.thingsboard.server.common.data.DeviceProfile;
28 import org.thingsboard.server.common.data.device.data.PowerMode; 28 import org.thingsboard.server.common.data.device.data.PowerMode;
  29 +import org.thingsboard.server.common.data.device.data.lwm2m.OtherConfiguration;
29 import org.thingsboard.server.common.data.device.profile.Lwm2mDeviceProfileTransportConfiguration; 30 import org.thingsboard.server.common.data.device.profile.Lwm2mDeviceProfileTransportConfiguration;
30 import org.thingsboard.server.common.data.id.DeviceProfileId; 31 import org.thingsboard.server.common.data.id.DeviceProfileId;
31 import org.thingsboard.server.common.transport.TransportDeviceProfileCache; 32 import org.thingsboard.server.common.transport.TransportDeviceProfileCache;
@@ -346,6 +347,20 @@ public class LwM2mClientContextImpl implements LwM2mClientContext { @@ -346,6 +347,20 @@ public class LwM2mClientContextImpl implements LwM2mClientContext {
346 getProfile(client.getProfileId()).getClientLwM2mSettings().isCompositeOperationsSupport(); 347 getProfile(client.getProfileId()).getClientLwM2mSettings().isCompositeOperationsSupport();
347 } 348 }
348 349
  350 + @Override
  351 + public Long getRequestTimeout(LwM2mClient client) {
  352 + var clientProfile = getProfile(client.getProfileId());
  353 + OtherConfiguration clientLwM2mSettings = clientProfile.getClientLwM2mSettings();
  354 + Long timeout = null;
  355 + if (PowerMode.E_DRX.equals(clientLwM2mSettings.getPowerMode())) {
  356 + timeout = clientLwM2mSettings.getEDRXCycle();
  357 + }
  358 + if (timeout == null || timeout == 0L) {
  359 + timeout = this.config.getTimeout();
  360 + }
  361 + return timeout;
  362 + }
  363 +
349 private boolean validateResourceInModel(LwM2mClient lwM2mClient, String pathIdVer, boolean isWritableNotOptional) { 364 private boolean validateResourceInModel(LwM2mClient lwM2mClient, String pathIdVer, boolean isWritableNotOptional) {
350 ResourceModel resourceModel = lwM2mClient.getResourceModel(pathIdVer, this.config 365 ResourceModel resourceModel = lwM2mClient.getResourceModel(pathIdVer, this.config
351 .getModelProvider()); 366 .getModelProvider());
@@ -131,7 +131,7 @@ public class DefaultLwM2mDownlinkMsgHandler extends LwM2MExecutorAwareService im @@ -131,7 +131,7 @@ public class DefaultLwM2mDownlinkMsgHandler extends LwM2MExecutorAwareService im
131 ContentFormat responseContentFormat = ContentFormat.SENML_JSON; 131 ContentFormat responseContentFormat = ContentFormat.SENML_JSON;
132 132
133 ReadCompositeRequest downlink = new ReadCompositeRequest(requestContentFormat, responseContentFormat, request.getObjectIds()); 133 ReadCompositeRequest downlink = new ReadCompositeRequest(requestContentFormat, responseContentFormat, request.getObjectIds());
134 - sendCompositeRequest(client, downlink, this.config.getTimeout(), callback); 134 + sendCompositeRequest(client, downlink, request.getTimeout(), callback);
135 } 135 }
136 136
137 @Override 137 @Override
@@ -248,7 +248,8 @@ public class DefaultLwM2mDownlinkMsgHandler extends LwM2MExecutorAwareService im @@ -248,7 +248,8 @@ public class DefaultLwM2mDownlinkMsgHandler extends LwM2MExecutorAwareService im
248 ContentFormat contentFormat = ContentFormat.SENML_JSON; 248 ContentFormat contentFormat = ContentFormat.SENML_JSON;
249 try { 249 try {
250 WriteCompositeRequest downlink = new WriteCompositeRequest(contentFormat, rpcWriteCompositeRequest.getNodes()); 250 WriteCompositeRequest downlink = new WriteCompositeRequest(contentFormat, rpcWriteCompositeRequest.getNodes());
251 - sendWriteCompositeRequest(client, downlink, this.config.getTimeout(), callback); 251 + //TODO: replace config.getTimeout();
  252 + sendWriteCompositeRequest(client, downlink, config.getTimeout(), callback);
252 } catch (Exception e) { 253 } catch (Exception e) {
253 callback.onError(JacksonUtil.toString(rpcWriteCompositeRequest), e); 254 callback.onError(JacksonUtil.toString(rpcWriteCompositeRequest), e);
254 } 255 }
@@ -417,7 +417,7 @@ public class DefaultLwM2MOtaUpdateService extends LwM2MExecutorAwareService impl @@ -417,7 +417,7 @@ public class DefaultLwM2MOtaUpdateService extends LwM2MExecutorAwareService impl
417 417
418 private void startUpdateUsingUrl(LwM2mClient client, String id, String url) { 418 private void startUpdateUsingUrl(LwM2mClient client, String id, String url) {
419 String targetIdVer = convertObjectIdToVersionedId(id, client.getRegistration()); 419 String targetIdVer = convertObjectIdToVersionedId(id, client.getRegistration());
420 - TbLwM2MWriteReplaceRequest request = TbLwM2MWriteReplaceRequest.builder().versionedId(targetIdVer).value(url).timeout(config.getTimeout()).build(); 420 + TbLwM2MWriteReplaceRequest request = TbLwM2MWriteReplaceRequest.builder().versionedId(targetIdVer).value(url).timeout(clientContext.getRequestTimeout(client)).build();
421 downlinkHandler.sendWriteReplaceRequest(client, request, new TbLwM2MWriteResponseCallback(uplinkHandler, logService, client, targetIdVer)); 421 downlinkHandler.sendWriteReplaceRequest(client, request, new TbLwM2MWriteResponseCallback(uplinkHandler, logService, client, targetIdVer));
422 } 422 }
423 423
@@ -486,7 +486,7 @@ public class DefaultLwM2MOtaUpdateService extends LwM2MExecutorAwareService impl @@ -486,7 +486,7 @@ public class DefaultLwM2MOtaUpdateService extends LwM2MExecutorAwareService impl
486 byte[] firmwareChunk = otaPackageDataCache.get(otaPackageId.toString(), 0, 0); 486 byte[] firmwareChunk = otaPackageDataCache.get(otaPackageId.toString(), 0, 0);
487 TbLwM2MWriteReplaceRequest writeRequest = TbLwM2MWriteReplaceRequest.builder().versionedId(versionedId) 487 TbLwM2MWriteReplaceRequest writeRequest = TbLwM2MWriteReplaceRequest.builder().versionedId(versionedId)
488 .value(firmwareChunk).contentFormat(ContentFormat.OPAQUE) 488 .value(firmwareChunk).contentFormat(ContentFormat.OPAQUE)
489 - .timeout(config.getTimeout()).build(); 489 + .timeout(clientContext.getRequestTimeout(client)).build();
490 downlinkHandler.sendWriteReplaceRequest(client, writeRequest, new TbLwM2MWriteResponseCallback(uplinkHandler, logService, client, versionedId)); 490 downlinkHandler.sendWriteReplaceRequest(client, writeRequest, new TbLwM2MWriteResponseCallback(uplinkHandler, logService, client, versionedId));
491 } 491 }
492 492
@@ -501,17 +501,17 @@ public class DefaultLwM2MOtaUpdateService extends LwM2MExecutorAwareService impl @@ -501,17 +501,17 @@ public class DefaultLwM2MOtaUpdateService extends LwM2MExecutorAwareService impl
501 } 501 }
502 502
503 private void executeFwUpdate(LwM2mClient client) { 503 private void executeFwUpdate(LwM2mClient client) {
504 - TbLwM2MExecuteRequest request = TbLwM2MExecuteRequest.builder().versionedId(FW_EXECUTE_ID).timeout(config.getTimeout()).build(); 504 + TbLwM2MExecuteRequest request = TbLwM2MExecuteRequest.builder().versionedId(FW_EXECUTE_ID).timeout(clientContext.getRequestTimeout(client)).build();
505 downlinkHandler.sendExecuteRequest(client, request, new TbLwM2MExecuteCallback(logService, client, FW_EXECUTE_ID)); 505 downlinkHandler.sendExecuteRequest(client, request, new TbLwM2MExecuteCallback(logService, client, FW_EXECUTE_ID));
506 } 506 }
507 507
508 private void executeSwInstall(LwM2mClient client) { 508 private void executeSwInstall(LwM2mClient client) {
509 - TbLwM2MExecuteRequest request = TbLwM2MExecuteRequest.builder().versionedId(SW_INSTALL_ID).timeout(config.getTimeout()).build(); 509 + TbLwM2MExecuteRequest request = TbLwM2MExecuteRequest.builder().versionedId(SW_INSTALL_ID).timeout(clientContext.getRequestTimeout(client)).build();
510 downlinkHandler.sendExecuteRequest(client, request, new TbLwM2MExecuteCallback(logService, client, SW_INSTALL_ID)); 510 downlinkHandler.sendExecuteRequest(client, request, new TbLwM2MExecuteCallback(logService, client, SW_INSTALL_ID));
511 } 511 }
512 512
513 private void executeSwUninstallForUpdate(LwM2mClient client) { 513 private void executeSwUninstallForUpdate(LwM2mClient client) {
514 - TbLwM2MExecuteRequest request = TbLwM2MExecuteRequest.builder().versionedId(SW_UN_INSTALL_ID).params("1").timeout(config.getTimeout()).build(); 514 + TbLwM2MExecuteRequest request = TbLwM2MExecuteRequest.builder().versionedId(SW_UN_INSTALL_ID).params("1").timeout(clientContext.getRequestTimeout(client)).build();
515 downlinkHandler.sendExecuteRequest(client, request, new TbLwM2MExecuteCallback(logService, client, SW_INSTALL_ID)); 515 downlinkHandler.sendExecuteRequest(client, request, new TbLwM2MExecuteCallback(logService, client, SW_INSTALL_ID));
516 } 516 }
517 517
@@ -171,7 +171,7 @@ public class DefaultLwM2MRpcRequestHandler implements LwM2MRpcRequestHandler { @@ -171,7 +171,7 @@ public class DefaultLwM2MRpcRequestHandler implements LwM2MRpcRequestHandler {
171 } 171 }
172 172
173 private void sendReadRequest(LwM2mClient client, TransportProtos.ToDeviceRpcRequestMsg requestMsg, String versionedId) { 173 private void sendReadRequest(LwM2mClient client, TransportProtos.ToDeviceRpcRequestMsg requestMsg, String versionedId) {
174 - TbLwM2MReadRequest request = TbLwM2MReadRequest.builder().versionedId(versionedId).timeout(this.config.getTimeout()).build(); 174 + TbLwM2MReadRequest request = TbLwM2MReadRequest.builder().versionedId(versionedId).timeout(clientContext.getRequestTimeout(client)).build();
175 var mainCallback = new TbLwM2MReadCallback(uplinkHandler, logService, client, versionedId); 175 var mainCallback = new TbLwM2MReadCallback(uplinkHandler, logService, client, versionedId);
176 var rpcCallback = new RpcReadResponseCallback<>(transportService, client, requestMsg, mainCallback); 176 var rpcCallback = new RpcReadResponseCallback<>(transportService, client, requestMsg, mainCallback);
177 downlinkHandler.sendReadRequest(client, request, rpcCallback); 177 downlinkHandler.sendReadRequest(client, request, rpcCallback);
@@ -179,38 +179,38 @@ public class DefaultLwM2MRpcRequestHandler implements LwM2MRpcRequestHandler { @@ -179,38 +179,38 @@ public class DefaultLwM2MRpcRequestHandler implements LwM2MRpcRequestHandler {
179 179
180 private void sendReadCompositeRequest(LwM2mClient client, TransportProtos.ToDeviceRpcRequestMsg requestMsg) { 180 private void sendReadCompositeRequest(LwM2mClient client, TransportProtos.ToDeviceRpcRequestMsg requestMsg) {
181 String[] versionedIds = getIdsFromParameters(client, requestMsg); 181 String[] versionedIds = getIdsFromParameters(client, requestMsg);
182 - TbLwM2MReadCompositeRequest request = TbLwM2MReadCompositeRequest.builder().versionedIds(versionedIds).timeout(this.config.getTimeout()).build(); 182 + TbLwM2MReadCompositeRequest request = TbLwM2MReadCompositeRequest.builder().versionedIds(versionedIds).timeout(clientContext.getRequestTimeout(client)).build();
183 var mainCallback = new TbLwM2MReadCompositeCallback(uplinkHandler, logService, client, versionedIds); 183 var mainCallback = new TbLwM2MReadCompositeCallback(uplinkHandler, logService, client, versionedIds);
184 var rpcCallback = new RpcReadResponseCompositeCallback(transportService, client, requestMsg, mainCallback); 184 var rpcCallback = new RpcReadResponseCompositeCallback(transportService, client, requestMsg, mainCallback);
185 downlinkHandler.sendReadCompositeRequest(client, request, rpcCallback); 185 downlinkHandler.sendReadCompositeRequest(client, request, rpcCallback);
186 } 186 }
187 187
188 private void sendObserveRequest(LwM2mClient client, TransportProtos.ToDeviceRpcRequestMsg requestMsg, String versionedId) { 188 private void sendObserveRequest(LwM2mClient client, TransportProtos.ToDeviceRpcRequestMsg requestMsg, String versionedId) {
189 - TbLwM2MObserveRequest request = TbLwM2MObserveRequest.builder().versionedId(versionedId).timeout(this.config.getTimeout()).build(); 189 + TbLwM2MObserveRequest request = TbLwM2MObserveRequest.builder().versionedId(versionedId).timeout(clientContext.getRequestTimeout(client)).build();
190 var mainCallback = new TbLwM2MObserveCallback(uplinkHandler, logService, client, versionedId); 190 var mainCallback = new TbLwM2MObserveCallback(uplinkHandler, logService, client, versionedId);
191 var rpcCallback = new RpcReadResponseCallback<>(transportService, client, requestMsg, mainCallback); 191 var rpcCallback = new RpcReadResponseCallback<>(transportService, client, requestMsg, mainCallback);
192 downlinkHandler.sendObserveRequest(client, request, rpcCallback); 192 downlinkHandler.sendObserveRequest(client, request, rpcCallback);
193 } 193 }
194 194
195 private void sendObserveAllRequest(LwM2mClient client, TransportProtos.ToDeviceRpcRequestMsg requestMsg) { 195 private void sendObserveAllRequest(LwM2mClient client, TransportProtos.ToDeviceRpcRequestMsg requestMsg) {
196 - TbLwM2MObserveAllRequest request = TbLwM2MObserveAllRequest.builder().timeout(this.config.getTimeout()).build(); 196 + TbLwM2MObserveAllRequest request = TbLwM2MObserveAllRequest.builder().timeout(clientContext.getRequestTimeout(client)).build();
197 downlinkHandler.sendObserveAllRequest(client, request, new RpcLinkSetCallback<>(transportService, client, requestMsg, null)); 197 downlinkHandler.sendObserveAllRequest(client, request, new RpcLinkSetCallback<>(transportService, client, requestMsg, null));
198 } 198 }
199 199
200 private void sendDiscoverAllRequest(LwM2mClient client, TransportProtos.ToDeviceRpcRequestMsg requestMsg) { 200 private void sendDiscoverAllRequest(LwM2mClient client, TransportProtos.ToDeviceRpcRequestMsg requestMsg) {
201 - TbLwM2MDiscoverAllRequest request = TbLwM2MDiscoverAllRequest.builder().timeout(this.config.getTimeout()).build(); 201 + TbLwM2MDiscoverAllRequest request = TbLwM2MDiscoverAllRequest.builder().timeout(clientContext.getRequestTimeout(client)).build();
202 downlinkHandler.sendDiscoverAllRequest(client, request, new RpcLinkSetCallback<>(transportService, client, requestMsg, null)); 202 downlinkHandler.sendDiscoverAllRequest(client, request, new RpcLinkSetCallback<>(transportService, client, requestMsg, null));
203 } 203 }
204 204
205 private void sendDiscoverRequest(LwM2mClient client, TransportProtos.ToDeviceRpcRequestMsg requestMsg, String versionedId) { 205 private void sendDiscoverRequest(LwM2mClient client, TransportProtos.ToDeviceRpcRequestMsg requestMsg, String versionedId) {
206 - TbLwM2MDiscoverRequest request = TbLwM2MDiscoverRequest.builder().versionedId(versionedId).timeout(this.config.getTimeout()).build(); 206 + TbLwM2MDiscoverRequest request = TbLwM2MDiscoverRequest.builder().versionedId(versionedId).timeout(clientContext.getRequestTimeout(client)).build();
207 var mainCallback = new TbLwM2MDiscoverCallback(logService, client, versionedId); 207 var mainCallback = new TbLwM2MDiscoverCallback(logService, client, versionedId);
208 var rpcCallback = new RpcDiscoverCallback(transportService, client, requestMsg, mainCallback); 208 var rpcCallback = new RpcDiscoverCallback(transportService, client, requestMsg, mainCallback);
209 downlinkHandler.sendDiscoverRequest(client, request, rpcCallback); 209 downlinkHandler.sendDiscoverRequest(client, request, rpcCallback);
210 } 210 }
211 211
212 private void sendExecuteRequest(LwM2mClient client, TransportProtos.ToDeviceRpcRequestMsg requestMsg, String versionedId) { 212 private void sendExecuteRequest(LwM2mClient client, TransportProtos.ToDeviceRpcRequestMsg requestMsg, String versionedId) {
213 - TbLwM2MExecuteRequest downlink = TbLwM2MExecuteRequest.builder().versionedId(versionedId).timeout(this.config.getTimeout()).build(); 213 + TbLwM2MExecuteRequest downlink = TbLwM2MExecuteRequest.builder().versionedId(versionedId).timeout(clientContext.getRequestTimeout(client)).build();
214 var mainCallback = new TbLwM2MExecuteCallback(logService, client, versionedId); 214 var mainCallback = new TbLwM2MExecuteCallback(logService, client, versionedId);
215 var rpcCallback = new RpcEmptyResponseCallback<>(transportService, client, requestMsg, mainCallback); 215 var rpcCallback = new RpcEmptyResponseCallback<>(transportService, client, requestMsg, mainCallback);
216 downlinkHandler.sendExecuteRequest(client, downlink, rpcCallback); 216 downlinkHandler.sendExecuteRequest(client, downlink, rpcCallback);
@@ -220,7 +220,7 @@ public class DefaultLwM2MRpcRequestHandler implements LwM2MRpcRequestHandler { @@ -220,7 +220,7 @@ public class DefaultLwM2MRpcRequestHandler implements LwM2MRpcRequestHandler {
220 RpcWriteAttributesRequest requestBody = JacksonUtil.fromString(requestMsg.getParams(), RpcWriteAttributesRequest.class); 220 RpcWriteAttributesRequest requestBody = JacksonUtil.fromString(requestMsg.getParams(), RpcWriteAttributesRequest.class);
221 TbLwM2MWriteAttributesRequest request = TbLwM2MWriteAttributesRequest.builder().versionedId(versionedId) 221 TbLwM2MWriteAttributesRequest request = TbLwM2MWriteAttributesRequest.builder().versionedId(versionedId)
222 .attributes(requestBody.getAttributes()) 222 .attributes(requestBody.getAttributes())
223 - .timeout(this.config.getTimeout()).build(); 223 + .timeout(clientContext.getRequestTimeout(client)).build();
224 var mainCallback = new TbLwM2MWriteAttributesCallback(logService, client, versionedId); 224 var mainCallback = new TbLwM2MWriteAttributesCallback(logService, client, versionedId);
225 var rpcCallback = new RpcEmptyResponseCallback<>(transportService, client, requestMsg, mainCallback); 225 var rpcCallback = new RpcEmptyResponseCallback<>(transportService, client, requestMsg, mainCallback);
226 downlinkHandler.sendWriteAttributesRequest(client, request, rpcCallback); 226 downlinkHandler.sendWriteAttributesRequest(client, request, rpcCallback);
@@ -229,7 +229,7 @@ public class DefaultLwM2MRpcRequestHandler implements LwM2MRpcRequestHandler { @@ -229,7 +229,7 @@ public class DefaultLwM2MRpcRequestHandler implements LwM2MRpcRequestHandler {
229 private void sendWriteUpdateRequest(LwM2mClient client, TransportProtos.ToDeviceRpcRequestMsg requestMsg, String versionedId) { 229 private void sendWriteUpdateRequest(LwM2mClient client, TransportProtos.ToDeviceRpcRequestMsg requestMsg, String versionedId) {
230 RpcWriteUpdateRequest requestBody = JacksonUtil.fromString(requestMsg.getParams(), RpcWriteUpdateRequest.class); 230 RpcWriteUpdateRequest requestBody = JacksonUtil.fromString(requestMsg.getParams(), RpcWriteUpdateRequest.class);
231 TbLwM2MWriteUpdateRequest.TbLwM2MWriteUpdateRequestBuilder builder = TbLwM2MWriteUpdateRequest.builder().versionedId(versionedId); 231 TbLwM2MWriteUpdateRequest.TbLwM2MWriteUpdateRequestBuilder builder = TbLwM2MWriteUpdateRequest.builder().versionedId(versionedId);
232 - builder.value(requestBody.getValue()).timeout(this.config.getTimeout()); 232 + builder.value(requestBody.getValue()).timeout(clientContext.getRequestTimeout(client));
233 var mainCallback = new TbLwM2MWriteResponseCallback(uplinkHandler, logService, client, versionedId); 233 var mainCallback = new TbLwM2MWriteResponseCallback(uplinkHandler, logService, client, versionedId);
234 var rpcCallback = new RpcEmptyResponseCallback<>(transportService, client, requestMsg, mainCallback); 234 var rpcCallback = new RpcEmptyResponseCallback<>(transportService, client, requestMsg, mainCallback);
235 downlinkHandler.sendWriteUpdateRequest(client, builder.build(), rpcCallback); 235 downlinkHandler.sendWriteUpdateRequest(client, builder.build(), rpcCallback);
@@ -239,7 +239,7 @@ public class DefaultLwM2MRpcRequestHandler implements LwM2MRpcRequestHandler { @@ -239,7 +239,7 @@ public class DefaultLwM2MRpcRequestHandler implements LwM2MRpcRequestHandler {
239 RpcWriteReplaceRequest requestBody = JacksonUtil.fromString(requestMsg.getParams(), RpcWriteReplaceRequest.class); 239 RpcWriteReplaceRequest requestBody = JacksonUtil.fromString(requestMsg.getParams(), RpcWriteReplaceRequest.class);
240 TbLwM2MWriteReplaceRequest request = TbLwM2MWriteReplaceRequest.builder().versionedId(versionedId) 240 TbLwM2MWriteReplaceRequest request = TbLwM2MWriteReplaceRequest.builder().versionedId(versionedId)
241 .value(requestBody.getValue()) 241 .value(requestBody.getValue())
242 - .timeout(this.config.getTimeout()).build(); 242 + .timeout(clientContext.getRequestTimeout(client)).build();
243 var mainCallback = new TbLwM2MWriteResponseCallback(uplinkHandler, logService, client, versionedId); 243 var mainCallback = new TbLwM2MWriteResponseCallback(uplinkHandler, logService, client, versionedId);
244 var rpcCallback = new RpcEmptyResponseCallback<>(transportService, client, requestMsg, mainCallback); 244 var rpcCallback = new RpcEmptyResponseCallback<>(transportService, client, requestMsg, mainCallback);
245 downlinkHandler.sendWriteReplaceRequest(client, request, rpcCallback); 245 downlinkHandler.sendWriteReplaceRequest(client, request, rpcCallback);
@@ -261,21 +261,21 @@ public class DefaultLwM2MRpcRequestHandler implements LwM2MRpcRequestHandler { @@ -261,21 +261,21 @@ public class DefaultLwM2MRpcRequestHandler implements LwM2MRpcRequestHandler {
261 } 261 }
262 262
263 private void sendCancelObserveRequest(LwM2mClient client, TransportProtos.ToDeviceRpcRequestMsg requestMsg, String versionedId) { 263 private void sendCancelObserveRequest(LwM2mClient client, TransportProtos.ToDeviceRpcRequestMsg requestMsg, String versionedId) {
264 - TbLwM2MCancelObserveRequest downlink = TbLwM2MCancelObserveRequest.builder().versionedId(versionedId).timeout(this.config.getTimeout()).build(); 264 + TbLwM2MCancelObserveRequest downlink = TbLwM2MCancelObserveRequest.builder().versionedId(versionedId).timeout(clientContext.getRequestTimeout(client)).build();
265 var mainCallback = new TbLwM2MCancelObserveCallback(logService, client, versionedId); 265 var mainCallback = new TbLwM2MCancelObserveCallback(logService, client, versionedId);
266 var rpcCallback = new RpcCancelObserveCallback(transportService, client, requestMsg, mainCallback); 266 var rpcCallback = new RpcCancelObserveCallback(transportService, client, requestMsg, mainCallback);
267 downlinkHandler.sendCancelObserveRequest(client, downlink, rpcCallback); 267 downlinkHandler.sendCancelObserveRequest(client, downlink, rpcCallback);
268 } 268 }
269 269
270 private void sendDeleteRequest(LwM2mClient client, TransportProtos.ToDeviceRpcRequestMsg requestMsg, String versionedId) { 270 private void sendDeleteRequest(LwM2mClient client, TransportProtos.ToDeviceRpcRequestMsg requestMsg, String versionedId) {
271 - TbLwM2MDeleteRequest downlink = TbLwM2MDeleteRequest.builder().versionedId(versionedId).timeout(this.config.getTimeout()).build(); 271 + TbLwM2MDeleteRequest downlink = TbLwM2MDeleteRequest.builder().versionedId(versionedId).timeout(clientContext.getRequestTimeout(client)).build();
272 var mainCallback = new TbLwM2MDeleteCallback(logService, client, versionedId); 272 var mainCallback = new TbLwM2MDeleteCallback(logService, client, versionedId);
273 var rpcCallback = new RpcEmptyResponseCallback<>(transportService, client, requestMsg, mainCallback); 273 var rpcCallback = new RpcEmptyResponseCallback<>(transportService, client, requestMsg, mainCallback);
274 downlinkHandler.sendDeleteRequest(client, downlink, rpcCallback); 274 downlinkHandler.sendDeleteRequest(client, downlink, rpcCallback);
275 } 275 }
276 276
277 private void sendCancelAllObserveRequest(LwM2mClient client, TransportProtos.ToDeviceRpcRequestMsg requestMsg) { 277 private void sendCancelAllObserveRequest(LwM2mClient client, TransportProtos.ToDeviceRpcRequestMsg requestMsg) {
278 - TbLwM2MCancelAllRequest downlink = TbLwM2MCancelAllRequest.builder().timeout(this.config.getTimeout()).build(); 278 + TbLwM2MCancelAllRequest downlink = TbLwM2MCancelAllRequest.builder().timeout(clientContext.getRequestTimeout(client)).build();
279 var mainCallback = new TbLwM2MCancelAllObserveCallback(logService, client); 279 var mainCallback = new TbLwM2MCancelAllObserveCallback(logService, client);
280 var rpcCallback = new RpcCancelAllObserveCallback(transportService, client, requestMsg, mainCallback); 280 var rpcCallback = new RpcCancelAllObserveCallback(transportService, client, requestMsg, mainCallback);
281 downlinkHandler.sendCancelAllRequest(client, downlink, rpcCallback); 281 downlinkHandler.sendCancelAllRequest(client, downlink, rpcCallback);
@@ -457,7 +457,7 @@ public class DefaultLwM2MUplinkMsgHandler extends LwM2MExecutorAwareService impl @@ -457,7 +457,7 @@ public class DefaultLwM2MUplinkMsgHandler extends LwM2MExecutorAwareService impl
457 } 457 }
458 458
459 private void sendDiscoverRequest(LwM2mClient lwM2MClient, String targetId) { 459 private void sendDiscoverRequest(LwM2mClient lwM2MClient, String targetId) {
460 - TbLwM2MDiscoverRequest request = TbLwM2MDiscoverRequest.builder().versionedId(targetId).timeout(this.config.getTimeout()).build(); 460 + TbLwM2MDiscoverRequest request = TbLwM2MDiscoverRequest.builder().versionedId(targetId).timeout(clientContext.getRequestTimeout(lwM2MClient)).build();
461 defaultLwM2MDownlinkMsgHandler.sendDiscoverRequest(lwM2MClient, request, new TbLwM2MDiscoverCallback(logService, lwM2MClient, targetId)); 461 defaultLwM2MDownlinkMsgHandler.sendDiscoverRequest(lwM2MClient, request, new TbLwM2MDiscoverCallback(logService, lwM2MClient, targetId));
462 } 462 }
463 463
@@ -466,7 +466,7 @@ public class DefaultLwM2MUplinkMsgHandler extends LwM2MExecutorAwareService impl @@ -466,7 +466,7 @@ public class DefaultLwM2MUplinkMsgHandler extends LwM2MExecutorAwareService impl
466 } 466 }
467 467
468 private void sendReadRequest(LwM2mClient lwM2MClient, String versionedId, DownlinkRequestCallback<ReadRequest, ReadResponse> callback) { 468 private void sendReadRequest(LwM2mClient lwM2MClient, String versionedId, DownlinkRequestCallback<ReadRequest, ReadResponse> callback) {
469 - TbLwM2MReadRequest request = TbLwM2MReadRequest.builder().versionedId(versionedId).timeout(this.config.getTimeout()).build(); 469 + TbLwM2MReadRequest request = TbLwM2MReadRequest.builder().versionedId(versionedId).timeout(clientContext.getRequestTimeout(lwM2MClient)).build();
470 defaultLwM2MDownlinkMsgHandler.sendReadRequest(lwM2MClient, request, callback); 470 defaultLwM2MDownlinkMsgHandler.sendReadRequest(lwM2MClient, request, callback);
471 } 471 }
472 472
@@ -475,17 +475,17 @@ public class DefaultLwM2MUplinkMsgHandler extends LwM2MExecutorAwareService impl @@ -475,17 +475,17 @@ public class DefaultLwM2MUplinkMsgHandler extends LwM2MExecutorAwareService impl
475 } 475 }
476 476
477 private void sendObserveRequest(LwM2mClient lwM2MClient, String versionedId, DownlinkRequestCallback<ObserveRequest, ObserveResponse> callback) { 477 private void sendObserveRequest(LwM2mClient lwM2MClient, String versionedId, DownlinkRequestCallback<ObserveRequest, ObserveResponse> callback) {
478 - TbLwM2MObserveRequest request = TbLwM2MObserveRequest.builder().versionedId(versionedId).timeout(this.config.getTimeout()).build(); 478 + TbLwM2MObserveRequest request = TbLwM2MObserveRequest.builder().versionedId(versionedId).timeout(clientContext.getRequestTimeout(lwM2MClient)).build();
479 defaultLwM2MDownlinkMsgHandler.sendObserveRequest(lwM2MClient, request, callback); 479 defaultLwM2MDownlinkMsgHandler.sendObserveRequest(lwM2MClient, request, callback);
480 } 480 }
481 481
482 private void sendWriteAttributesRequest(LwM2mClient lwM2MClient, String targetId, ObjectAttributes params) { 482 private void sendWriteAttributesRequest(LwM2mClient lwM2MClient, String targetId, ObjectAttributes params) {
483 - TbLwM2MWriteAttributesRequest request = TbLwM2MWriteAttributesRequest.builder().versionedId(targetId).attributes(params).timeout(this.config.getTimeout()).build(); 483 + TbLwM2MWriteAttributesRequest request = TbLwM2MWriteAttributesRequest.builder().versionedId(targetId).attributes(params).timeout(clientContext.getRequestTimeout(lwM2MClient)).build();
484 defaultLwM2MDownlinkMsgHandler.sendWriteAttributesRequest(lwM2MClient, request, new TbLwM2MWriteAttributesCallback(logService, lwM2MClient, targetId)); 484 defaultLwM2MDownlinkMsgHandler.sendWriteAttributesRequest(lwM2MClient, request, new TbLwM2MWriteAttributesCallback(logService, lwM2MClient, targetId));
485 } 485 }
486 486
487 private void sendCancelObserveRequest(String versionedId, LwM2mClient client) { 487 private void sendCancelObserveRequest(String versionedId, LwM2mClient client) {
488 - TbLwM2MCancelObserveRequest request = TbLwM2MCancelObserveRequest.builder().versionedId(versionedId).timeout(this.config.getTimeout()).build(); 488 + TbLwM2MCancelObserveRequest request = TbLwM2MCancelObserveRequest.builder().versionedId(versionedId).timeout(clientContext.getRequestTimeout(client)).build();
489 defaultLwM2MDownlinkMsgHandler.sendCancelObserveRequest(client, request, new TbLwM2MCancelObserveCallback(logService, client, versionedId)); 489 defaultLwM2MDownlinkMsgHandler.sendCancelObserveRequest(client, request, new TbLwM2MCancelObserveCallback(logService, client, versionedId));
490 } 490 }
491 491