Lwm2m: front: refactoring n number validators

This commit is contained in:
nickAS21 2021-01-20 19:17:13 +02:00
parent e6a3ee2725
commit e6d4e91e25
6 changed files with 41 additions and 41 deletions

View File

@ -20,6 +20,7 @@ import com.google.gson.JsonArray;
import com.google.gson.JsonElement; import com.google.gson.JsonElement;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.eclipse.leshan.core.Link;
import org.eclipse.leshan.core.model.ResourceModel; import org.eclipse.leshan.core.model.ResourceModel;
import org.eclipse.leshan.core.node.LwM2mMultipleResource; import org.eclipse.leshan.core.node.LwM2mMultipleResource;
import org.eclipse.leshan.core.node.LwM2mObject; import org.eclipse.leshan.core.node.LwM2mObject;
@ -153,7 +154,7 @@ public class LwM2MTransportServiceImpl implements LwM2MTransportService {
lwM2MClient.setLwM2MTransportServiceImpl(this); lwM2MClient.setLwM2MTransportServiceImpl(this);
lwM2MClient.setSessionUuid(UUID.randomUUID()); lwM2MClient.setSessionUuid(UUID.randomUUID());
this.sentLogsToThingsboard(LOG_LW2M_INFO + ": Client Registered", registration); this.sentLogsToThingsboard(LOG_LW2M_INFO + ": Client Registered", registration);
// this.setLwM2MClient(lwServer, registration, lwM2MClient); // this.setLwM2mFromClientValue(lwServer, registration, lwM2MClient);
SessionInfoProto sessionInfo = this.getValidateSessionInfo(registration); SessionInfoProto sessionInfo = this.getValidateSessionInfo(registration);
if (sessionInfo != null) { if (sessionInfo != null) {
lwM2MClient.setDeviceUuid(new UUID(sessionInfo.getDeviceIdMSB(), sessionInfo.getDeviceIdLSB())); lwM2MClient.setDeviceUuid(new UUID(sessionInfo.getDeviceIdMSB(), sessionInfo.getDeviceIdLSB()));
@ -164,6 +165,7 @@ public class LwM2MTransportServiceImpl implements LwM2MTransportService {
transportService.process(sessionInfo, DefaultTransportService.getSessionEventMsg(SessionEvent.OPEN), null); transportService.process(sessionInfo, DefaultTransportService.getSessionEventMsg(SessionEvent.OPEN), null);
transportService.process(sessionInfo, TransportProtos.SubscribeToAttributeUpdatesMsg.newBuilder().build(), null); transportService.process(sessionInfo, TransportProtos.SubscribeToAttributeUpdatesMsg.newBuilder().build(), null);
this.sentLogsToThingsboard(LOG_LW2M_INFO + ": Client create after Registration", registration); this.sentLogsToThingsboard(LOG_LW2M_INFO + ": Client create after Registration", registration);
this.putDelayedUpdateResourcesThingsboard(lwM2MClient);
} else { } else {
log.error("Client: [{}] onRegistered [{}] name [{}] sessionInfo ", registration.getId(), registration.getEndpoint(), null); log.error("Client: [{}] onRegistered [{}] name [{}] sessionInfo ", registration.getId(), registration.getEndpoint(), null);
} }
@ -198,7 +200,6 @@ public class LwM2MTransportServiceImpl implements LwM2MTransportService {
}); });
} }
/** /**
* @param registration - Registration LwM2M Client * @param registration - Registration LwM2M Client
* @param observations - All paths observations before unReg * @param observations - All paths observations before unReg
@ -279,33 +280,33 @@ public class LwM2MTransportServiceImpl implements LwM2MTransportService {
* @param registration - Registration LwM2M Client * @param registration - Registration LwM2M Client
* @param lwM2MClient - object with All parameters off client * @param lwM2MClient - object with All parameters off client
*/ */
private void setLwM2MClient(LeshanServer lwServer, Registration registration, LwM2MClient lwM2MClient) { private void setLwM2mFromClientValue(LeshanServer lwServer, Registration registration, LwM2MClient lwM2MClient) {
// Arrays.stream(registration.getObjectLinks()).forEach(url -> { Arrays.stream(registration.getObjectLinks()).forEach(url -> {
// LwM2mPath pathIds = new LwM2mPath(url.getUrl()); LwM2mPath pathIds = new LwM2mPath(url.getUrl());
// if (pathIds.isObjectInstance() && !pathIds.isResource()) { if (pathIds.isObjectInstance() && !pathIds.isResource()) {
// // #1 // #1
// lwM2MClient.getPendingRequests().add(url.getUrl()); lwM2MClient.getPendingRequests().add(url.getUrl());
// // #2 // #2
// lwM2MTransportRequest.sendAllRequest(lwServer, registration, url.getUrl(), GET_TYPE_OPER_READ, ContentFormat.TLV.getName(), lwM2MTransportRequest.sendAllRequest(lwServer, registration, url.getUrl(), GET_TYPE_OPER_READ, ContentFormat.TLV.getName(),
// lwM2MClient, null, null, this.context.getCtxServer().getTimeout(), false); lwM2MClient, null, null, this.context.getCtxServer().getTimeout(), false);
// } }
// }); });
// // #1 // #1
// for (Link url : registration.getObjectLinks()) { for (Link url : registration.getObjectLinks()) {
// LwM2mPath pathIds = new LwM2mPath(url.getUrl()); LwM2mPath pathIds = new LwM2mPath(url.getUrl());
// if (pathIds.isObjectInstance() && !pathIds.isResource()) { if (pathIds.isObjectInstance() && !pathIds.isResource()) {
// lwM2MClient.getPendingRequests().add(url.getUrl()); lwM2MClient.getPendingRequests().add(url.getUrl());
// } }
// } }
// // #2 // #2
// for (Link url : registration.getObjectLinks()) { for (Link url : registration.getObjectLinks()) {
// LwM2mPath pathIds = new LwM2mPath(url.getUrl()); LwM2mPath pathIds = new LwM2mPath(url.getUrl());
// if (pathIds.isObjectInstance() && !pathIds.isResource()) { if (pathIds.isObjectInstance() && !pathIds.isResource()) {
// lwM2MTransportRequest.sendAllRequest(lwServer, registration, url.getUrl(), GET_TYPE_OPER_READ, ContentFormat.TLV.getName(), lwM2MTransportRequest.sendAllRequest(lwServer, registration, url.getUrl(), GET_TYPE_OPER_READ, ContentFormat.TLV.getName(),
// lwM2MClient, null, null, this.context.getCtxServer().getTimeout(), false); lwM2MClient, null, null, this.context.getCtxServer().getTimeout(), false);
// } }
// } }
// #1 // #1
Arrays.stream(registration.getObjectLinks()).forEach(url -> { Arrays.stream(registration.getObjectLinks()).forEach(url -> {

View File

@ -93,7 +93,7 @@ public class LwM2MClient implements Cloneable {
this.pendingRequests.remove(path); this.pendingRequests.remove(path);
if (this.pendingRequests.size() == 0) { if (this.pendingRequests.size() == 0) {
this.initValue(); this.initValue();
this.lwM2MTransportServiceImpl.putDelayedUpdateResourcesThingsboard(this); // this.lwM2MTransportServiceImpl.putDelayedUpdateResourcesThingsboard(this);
} }
} }

View File

@ -31,9 +31,7 @@
</mat-form-field> </mat-form-field>
<mat-form-field class="mat-block"> <mat-form-field class="mat-block">
<mat-label>{{ 'device-profile.lwm2m.instances-input' | translate }}</mat-label> <mat-label>{{ 'device-profile.lwm2m.instances-input' | translate }}</mat-label>
<input fxFlexFill matInput type="number" <input fxFlexFill matInput type='text'
[min]="instanceIdValueMin"
[max]="instanceIdValueMax"
placeholder="{{'device-profile.lwm2m.instances-input-holder' | translate}}" placeholder="{{'device-profile.lwm2m.instances-input-holder' | translate}}"
formControlName="instanceIdInput"> formControlName="instanceIdInput">
<button mat-icon-button matSuffix <button mat-icon-button matSuffix
@ -41,18 +39,18 @@
<mat-icon>add</mat-icon> <mat-icon>add</mat-icon>
</button> </button>
<mat-error *ngIf="instancesListFormGroup.get('instanceIdInput').hasError('min')"> <mat-error *ngIf="instancesListFormGroup.get('instanceIdInput').hasError('min')">
{{ translate.get('device-profile.lwm2m.valid-id-instance-no-min', { {{ translate.get('device-profile.lwm2m.valid-id-instance', {
instance: instanceId, min: instanceIdValueMin count: 2, instance: instanceId, min: instanceIdValueMin
}) | async }} }) | async }}
</mat-error> </mat-error>
<mat-error *ngIf="instancesListFormGroup.get('instanceIdInput').hasError('max')"> <mat-error *ngIf="instancesListFormGroup.get('instanceIdInput').hasError('max')">
{{ translate.get('device-profile.lwm2m.valid-id-instance-no-max', { {{ translate.get('device-profile.lwm2m.valid-id-instance', {
instance: instanceId, max: instanceIdValueMax count: 1, instance: instanceId, max: instanceIdValueMax
}) | async }} }) | async }}
</mat-error> </mat-error>
<mat-error *ngIf="instancesListFormGroup.get('instanceIdInput').hasError('pattern')"> <mat-error *ngIf="instancesListFormGroup.get('instanceIdInput').hasError('pattern')">
{{ translate.get('device-profile.lwm2m.instances-input-holder', { {{ translate.get('device-profile.lwm2m.valid-id-instance', {
instance: instanceId, max: instanceIdValueMax count: 0, instance: instanceId, max: instanceIdValueMax
}) | async }} }) | async }}
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>

View File

@ -80,8 +80,8 @@ export class Lwm2mObjectAddInstancesListComponent implements ControlValueAccesso
} }
add = (): void => { add = (): void => {
if (this.instancesListFormGroup.get('instanceIdInput').valid) { if (this.instancesListFormGroup.get('instanceIdInput').valid && Number.isFinite(Number(this.instanceId))) {
this.instancesId.add(this.instanceId); this.instancesId.add(Number(this.instanceId));
this.instancesListFormGroup.get('instanceIdInput').setValue(null); this.instancesListFormGroup.get('instanceIdInput').setValue(null);
this.propagateChange(this.instancesId); this.propagateChange(this.instancesId);
this.dirty = true; this.dirty = true;

View File

@ -33,7 +33,7 @@ export const DEFAULT_BOOTSTRAP_SERVER_ACCOUNT_TIME_OUT = 0;
export const LEN_MAX_PUBLIC_KEY_RPK = 182; export const LEN_MAX_PUBLIC_KEY_RPK = 182;
export const LEN_MAX_PUBLIC_KEY_X509 = 3000; export const LEN_MAX_PUBLIC_KEY_X509 = 3000;
export const KEY_REGEXP_HEX_DEC = /^[-+]?[0-9A-Fa-f]+\.?[0-9A-Fa-f]*?$/; export const KEY_REGEXP_HEX_DEC = /^[-+]?[0-9A-Fa-f]+\.?[0-9A-Fa-f]*?$/;
export const KEY_REGEXP_NUMBER = /^\d*$/; export const KEY_REGEXP_NUMBER = /^(\-?|\+?)\d*$/;
export const INSTANCES_ID_VALUE_MIN = 0; export const INSTANCES_ID_VALUE_MIN = 0;
export const INSTANCES_ID_VALUE_MAX = 65535; export const INSTANCES_ID_VALUE_MAX = 65535;

View File

@ -1102,6 +1102,7 @@
"no-objects-matching": "No objects matching '{{object}}' were found.", "no-objects-matching": "No objects matching '{{object}}' were found.",
"valid-id-instance-no-min": "Instance number '{{instance}}' no validated. Min value='{{min}}'", "valid-id-instance-no-min": "Instance number '{{instance}}' no validated. Min value='{{min}}'",
"valid-id-instance-no-max": "Instance number '{{instance}}' no validated. Max value='{{max}}'", "valid-id-instance-no-max": "Instance number '{{instance}}' no validated. Max value='{{max}}'",
"valid-id-instance": "Instance number '{{instance}}' no validated. { count, plural, 1 {Max value='{{max}}'} 2 {Min value='{{min}}'} other {Must be only number} }",
"model-tab": "LWM2M Model", "model-tab": "LWM2M Model",
"add-instances-tip": "Add new instances", "add-instances-tip": "Add new instances",
"instances-list": "Instances list", "instances-list": "Instances list",