Merge pull request #10174 from thingsboard/registration_onAwake_DRX_client_queueMode
RegistrationOnAwakeCclientQueueMode
This commit is contained in:
commit
7301b65924
@ -219,7 +219,8 @@ public abstract class AbstractLwM2MIntegrationTest extends AbstractTransportInte
|
||||
public void basicTestConnectionObserveTelemetry(Security security,
|
||||
LwM2MDeviceCredentials deviceCredentials,
|
||||
Configuration coapConfig,
|
||||
String endpoint) throws Exception {
|
||||
String endpoint,
|
||||
boolean queueMode) throws Exception {
|
||||
Lwm2mDeviceProfileTransportConfiguration transportConfiguration = getTransportConfiguration(OBSERVE_ATTRIBUTES_WITH_PARAMS, getBootstrapServerCredentialsNoSec(NONE));
|
||||
createDeviceProfile(transportConfiguration);
|
||||
Device device = createDevice(deviceCredentials, endpoint);
|
||||
@ -236,7 +237,7 @@ public abstract class AbstractLwM2MIntegrationTest extends AbstractTransportInte
|
||||
getWsClient().waitForReply();
|
||||
|
||||
getWsClient().registerWaitForUpdate();
|
||||
createNewClient(security, null, coapConfig, false, endpoint, null);
|
||||
createNewClient(security, null, coapConfig, false, endpoint, null, queueMode);
|
||||
deviceId = device.getId().getId().toString();
|
||||
awaitObserveReadAll(0, deviceId);
|
||||
String msg = getWsClient().waitForUpdate();
|
||||
@ -304,15 +305,26 @@ public abstract class AbstractLwM2MIntegrationTest extends AbstractTransportInte
|
||||
this.resources = resources;
|
||||
}
|
||||
|
||||
public void createNewClient(Security security, Security securityBs, Configuration coapConfig, boolean isRpc,
|
||||
String endpoint) throws Exception {
|
||||
this.createNewClient(security, securityBs, coapConfig, isRpc, endpoint, null, false);
|
||||
}
|
||||
|
||||
public void createNewClient(Security security, Security securityBs, Configuration coapConfig, boolean isRpc,
|
||||
String endpoint, Integer clientDtlsCidLength) throws Exception {
|
||||
this.createNewClient(security, securityBs, coapConfig, isRpc, endpoint, clientDtlsCidLength, false);
|
||||
}
|
||||
|
||||
public void createNewClient(Security security, Security securityBs, Configuration coapConfig, boolean isRpc,
|
||||
String endpoint, Integer clientDtlsCidLength, boolean queueMode) throws Exception {
|
||||
this.clientDestroy();
|
||||
lwM2MTestClient = new LwM2MTestClient(this.executor, endpoint);
|
||||
|
||||
try (ServerSocket socket = new ServerSocket(0)) {
|
||||
int clientPort = socket.getLocalPort();
|
||||
lwM2MTestClient.init(security, securityBs, coapConfig, clientPort, isRpc,
|
||||
this.defaultLwM2mUplinkMsgHandlerTest, this.clientContextTest, isWriteAttribute, clientDtlsCidLength);
|
||||
this.defaultLwM2mUplinkMsgHandlerTest, this.clientContextTest, isWriteAttribute
|
||||
, clientDtlsCidLength, queueMode);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -129,7 +129,7 @@ public class LwM2MTestClient {
|
||||
|
||||
public void init(Security security, Security securityBs,Configuration coapConfig, int port, boolean isRpc,
|
||||
LwM2mUplinkMsgHandler defaultLwM2mUplinkMsgHandler,
|
||||
LwM2mClientContext clientContext, boolean isWriteAttribute, Integer cIdLength) throws InvalidDDFFileException, IOException {
|
||||
LwM2mClientContext clientContext, boolean isWriteAttribute, Integer cIdLength, boolean queueMode) throws InvalidDDFFileException, IOException {
|
||||
Assert.assertNull("client already initialized", leshanClient);
|
||||
this.defaultLwM2mUplinkMsgHandlerTest = defaultLwM2mUplinkMsgHandler;
|
||||
this.clientContext = clientContext;
|
||||
@ -263,11 +263,10 @@ public class LwM2MTestClient {
|
||||
boolean reconnectOnUpdate = false;
|
||||
engineFactory.setReconnectOnUpdate(reconnectOnUpdate);
|
||||
engineFactory.setResumeOnConnect(true);
|
||||
// new
|
||||
|
||||
/**
|
||||
* Client use queue mode (not fully implemented).
|
||||
* Client use queue mode.
|
||||
*/
|
||||
boolean queueMode = false;
|
||||
engineFactory.setQueueMode(queueMode);
|
||||
|
||||
// Create client
|
||||
|
||||
@ -59,7 +59,7 @@ public class OtaLwM2MIntegrationTest extends AbstractOtaLwM2MIntegrationTest {
|
||||
createDeviceProfile(transportConfiguration);
|
||||
LwM2MDeviceCredentials deviceCredentials = getDeviceCredentialsNoSec(createNoSecClientCredentials(this.CLIENT_ENDPOINT_WITHOUT_FW_INFO));
|
||||
final Device device = createDevice(deviceCredentials, this.CLIENT_ENDPOINT_WITHOUT_FW_INFO);
|
||||
createNewClient(SECURITY_NO_SEC, null, COAP_CONFIG, false, this.CLIENT_ENDPOINT_WITHOUT_FW_INFO, null);
|
||||
createNewClient(SECURITY_NO_SEC, null, COAP_CONFIG, false, this.CLIENT_ENDPOINT_WITHOUT_FW_INFO);
|
||||
awaitObserveReadAll(0, device.getId().getId().toString());
|
||||
|
||||
device.setFirmwareId(createFirmware().getId());
|
||||
@ -84,7 +84,7 @@ public class OtaLwM2MIntegrationTest extends AbstractOtaLwM2MIntegrationTest {
|
||||
createDeviceProfile(transportConfiguration);
|
||||
LwM2MDeviceCredentials deviceCredentials = getDeviceCredentialsNoSec(createNoSecClientCredentials(this.CLIENT_ENDPOINT_OTA5));
|
||||
final Device device = createDevice(deviceCredentials, this.CLIENT_ENDPOINT_OTA5);
|
||||
createNewClient(SECURITY_NO_SEC, null, COAP_CONFIG, false, this.CLIENT_ENDPOINT_OTA5, null);
|
||||
createNewClient(SECURITY_NO_SEC, null, COAP_CONFIG, false, this.CLIENT_ENDPOINT_OTA5);
|
||||
awaitObserveReadAll(9, device.getId().getId().toString());
|
||||
|
||||
device.setFirmwareId(createFirmware().getId());
|
||||
@ -114,7 +114,7 @@ public class OtaLwM2MIntegrationTest extends AbstractOtaLwM2MIntegrationTest {
|
||||
createDeviceProfile(transportConfiguration);
|
||||
LwM2MDeviceCredentials deviceCredentials = getDeviceCredentialsNoSec(createNoSecClientCredentials(this.CLIENT_ENDPOINT_OTA9));
|
||||
final Device device = createDevice(deviceCredentials, this.CLIENT_ENDPOINT_OTA9);
|
||||
createNewClient(SECURITY_NO_SEC, null, COAP_CONFIG, false, this.CLIENT_ENDPOINT_OTA9, null);
|
||||
createNewClient(SECURITY_NO_SEC, null, COAP_CONFIG, false, this.CLIENT_ENDPOINT_OTA9);
|
||||
awaitObserveReadAll(9, device.getId().getId().toString());
|
||||
|
||||
device.setSoftwareId(createSoftware().getId());
|
||||
|
||||
@ -91,7 +91,7 @@ public abstract class AbstractRpcLwM2MIntegrationTest extends AbstractLwM2MInteg
|
||||
|
||||
private void initRpc () throws Exception {
|
||||
String endpoint = DEVICE_ENDPOINT_RPC_PREF + endpointSequence.incrementAndGet();
|
||||
createNewClient(SECURITY_NO_SEC, null, COAP_CONFIG, true, endpoint, null);
|
||||
createNewClient(SECURITY_NO_SEC, null, COAP_CONFIG, true, endpoint);
|
||||
expectedObjects = ConcurrentHashMap.newKeySet();
|
||||
expectedObjectIdVers = ConcurrentHashMap.newKeySet();
|
||||
expectedInstances = ConcurrentHashMap.newKeySet();
|
||||
|
||||
@ -196,7 +196,7 @@ public abstract class AbstractSecurityLwM2MIntegrationTest extends AbstractLwM2M
|
||||
boolean isStartLw) throws Exception {
|
||||
createDeviceProfile(transportConfiguration);
|
||||
final Device device = createDevice(deviceCredentials, endpoint);
|
||||
createNewClient(security, securityBs, coapConfig, true, endpoint, null);
|
||||
createNewClient(security, securityBs, coapConfig, true, endpoint);
|
||||
lwM2MTestClient.start(isStartLw);
|
||||
if (isAwaitObserveReadAll) {
|
||||
awaitObserveReadAll(0, device.getId().getId().toString());
|
||||
@ -244,7 +244,7 @@ public abstract class AbstractSecurityLwM2MIntegrationTest extends AbstractLwM2M
|
||||
createDeviceProfile(transportConfiguration);
|
||||
final Device device = createDevice(deviceCredentials, endpoint);
|
||||
String deviceIdStr = device.getId().getId().toString();
|
||||
createNewClient(security, securityBs, coapConfig, true, endpoint, null);
|
||||
createNewClient(security, securityBs, coapConfig, true, endpoint);
|
||||
lwM2MTestClient.start(true);
|
||||
awaitObserveReadAll(0, deviceIdStr);
|
||||
await(awaitAlias)
|
||||
|
||||
@ -32,7 +32,13 @@ public class NoSecLwM2MIntegrationTest extends AbstractSecurityLwM2MIntegrationT
|
||||
public void testWithNoSecConnectLwm2mSuccessAndObserveTelemetry() throws Exception {
|
||||
String clientEndpoint = CLIENT_ENDPOINT_NO_SEC;
|
||||
LwM2MDeviceCredentials clientCredentials = getDeviceCredentialsNoSec(createNoSecClientCredentials(clientEndpoint));
|
||||
super.basicTestConnectionObserveTelemetry(SECURITY_NO_SEC, clientCredentials, COAP_CONFIG, clientEndpoint);
|
||||
super.basicTestConnectionObserveTelemetry(SECURITY_NO_SEC, clientCredentials, COAP_CONFIG, clientEndpoint, false);
|
||||
}
|
||||
@Test
|
||||
public void testWithNoSecQueueModeConnectLwm2mSuccessAndObserveTelemetry() throws Exception {
|
||||
String clientEndpoint = CLIENT_ENDPOINT_NO_SEC + "_QueueMode";
|
||||
LwM2MDeviceCredentials clientCredentials = getDeviceCredentialsNoSec(createNoSecClientCredentials(clientEndpoint));
|
||||
super.basicTestConnectionObserveTelemetry(SECURITY_NO_SEC, clientCredentials, COAP_CONFIG, clientEndpoint, true);
|
||||
}
|
||||
|
||||
// Bootstrap + Lwm2m
|
||||
|
||||
@ -18,7 +18,6 @@ package org.thingsboard.server.transport.coap.client;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.eclipse.californium.core.coap.CoAP;
|
||||
import org.eclipse.californium.core.coap.CoAP.ResponseCode;
|
||||
import org.eclipse.californium.core.coap.Response;
|
||||
import org.eclipse.californium.core.observe.ObserveRelation;
|
||||
import org.eclipse.californium.core.server.resources.CoapExchange;
|
||||
|
||||
@ -415,9 +415,6 @@ public class LwM2mClientContextImpl implements LwM2mClientContext {
|
||||
var clientProfile = getProfile(client.getProfileId());
|
||||
profileSettings = clientProfile.getClientLwM2mSettings();
|
||||
powerMode = profileSettings.getPowerMode();
|
||||
if (powerMode == null) {
|
||||
powerMode = PowerMode.DRX;
|
||||
}
|
||||
}
|
||||
if (powerMode == null || PowerMode.DRX.equals(powerMode) || otaUpdateService.isOtaDownloading(client)) {
|
||||
return true;
|
||||
@ -464,9 +461,6 @@ public class LwM2mClientContextImpl implements LwM2mClientContext {
|
||||
var clientProfile = getProfile(client.getProfileId());
|
||||
profileSettings = clientProfile.getClientLwM2mSettings();
|
||||
powerMode = profileSettings.getPowerMode();
|
||||
if (powerMode == null) {
|
||||
powerMode = PowerMode.DRX;
|
||||
}
|
||||
}
|
||||
if (powerMode == null || PowerMode.DRX.equals(powerMode)) {
|
||||
client.updateLastUplinkTime();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user