minor improvements

This commit is contained in:
Maksym Dudnik 2023-07-19 12:31:31 +03:00
parent 7c6283dbd9
commit 3d5d327e6b
6 changed files with 50 additions and 9 deletions

View File

@ -1326,7 +1326,7 @@
"decimals": null,
"funcBody": null,
"usePostProcessing": true,
"postFuncBody": "if (value.includes(\"RPC\")) {\n let parsedValue = value.match(/\\|(\\w+)\\|/);\n parsedValue = parsedValue ? parsedValue[1] :\n parsedValue;\n return parsedValue || value;\n} else return '';"
"postFuncBody": "if (value.includes(\"RPC\")&&!value.includes(\"GRPC\")) {\n let parsedValue = value.match(/\\|(\\w+)\\|/);\n parsedValue = parsedValue ? parsedValue[1] :\n parsedValue;\n return parsedValue || value;\n} else return '';"
},
{
"name": "SERVICE_LOGS",
@ -1654,7 +1654,7 @@
"decimals": null,
"funcBody": null,
"usePostProcessing": true,
"postFuncBody": "if (value.includes(\"RPC\")) {\n let parsedValue = value.match(/\\|(\\w+)\\|/);\n parsedValue = parsedValue ? parsedValue[1] :\n parsedValue;\n return parsedValue || value;\n} else return '';"
"postFuncBody": "if (value.includes(\"RPC\")&&!value.includes(\"GRPC\")) {\n let parsedValue = value.match(/\\|(\\w+)\\|/);\n parsedValue = parsedValue ? parsedValue[1] :\n parsedValue;\n return parsedValue || value;\n} else return '';"
},
{
"name": "SERVICE_LOGS",

View File

@ -481,10 +481,18 @@
</mat-slide-toggle>
<mat-slide-toggle color="primary" fxFlex="100" formControlName="keepalivePermitWithoutCalls">
{{ 'gateway.permit-without-calls' | translate }}
<mat-icon class="material-icons-outlined suffix-icon slider-icon " aria-hidden="false" aria-label="help-icon"
style="cursor:pointer;"
matTooltip="{{'gateway.hints.permit-without-calls' | translate }}">info
</mat-icon>
</mat-slide-toggle>
<mat-form-field appearance="outline" fxFlex="calc(50%-15px)" fxFlex.lt-md="100" class="mat-block tb-value-type">
<mat-label translate>gateway.server-port</mat-label>
<input matInput formControlName="serverPort" type="number" min="0"/>
<mat-icon class="mat-form-field-infix pointer-event suffix-icon"
matSuffix style="cursor:pointer;"
matTooltip="{{'gateway.hints.server-port' | translate }}">info_outlined
</mat-icon>
<mat-error *ngIf="gatewayConfigGroup.get('grpc.serverPort').hasError('required')">
{{'gateway.thingsboard-port-required' | translate }}
</mat-error>
@ -501,6 +509,10 @@
<mat-form-field appearance="outline" fxFlex="calc(50%-15px)" fxFlex.lt-md="100" class="mat-block tb-value-type">
<mat-label translate>gateway.grpc-keep-alive-timeout</mat-label>
<input matInput formControlName="keepAliveTimeoutMs" type="number" min="0"/>
<mat-icon class="mat-form-field-infix pointer-event suffix-icon"
matSuffix style="cursor:pointer;"
matTooltip="{{'gateway.hints.grpc-keep-alive-timeout' | translate }}">info_outlined
</mat-icon>
<mat-error *ngIf="gatewayConfigGroup.get('grpc.keepAliveTimeoutMs').hasError('required')">
{{'gateway.grpc-keep-alive-timeout-required' | translate }}
</mat-error>
@ -514,6 +526,10 @@
<mat-form-field appearance="outline" fxFlex="calc(50%-15px)" fxFlex.lt-md="100" class="mat-block tb-value-type">
<mat-label translate>gateway.grpc-keep-alive</mat-label>
<input matInput formControlName="keepAliveTimeMs" type="number" min="0"/>
<mat-icon class="mat-form-field-infix pointer-event suffix-icon"
matSuffix style="cursor:pointer;"
matTooltip="{{'gateway.hints.grpc-keep-alive' | translate }}">info_outlined
</mat-icon>
<mat-error *ngIf="gatewayConfigGroup.get('grpc.keepAliveTimeMs').hasError('required')">
{{'gateway.grpc-keep-alive-required' | translate }}
</mat-error>
@ -527,6 +543,10 @@
<mat-form-field appearance="outline" fxFlex="calc(50%-15px)" fxFlex.lt-md="100" class="mat-block tb-value-type">
<mat-label translate>gateway.grpc-min-time-between-pings</mat-label>
<input matInput formControlName="minTimeBetweenPingsMs" type="number" min="0"/>
<mat-icon class="mat-form-field-infix pointer-event suffix-icon"
matSuffix style="cursor:pointer;"
matTooltip="{{'gateway.hints.grpc-min-time-between-pings' | translate }}">info_outlined
</mat-icon>
<mat-error *ngIf="gatewayConfigGroup.get('grpc.minTimeBetweenPingsMs').hasError('required')">
{{'gateway.grpc-min-time-between-pings-required' | translate }}
</mat-error>
@ -540,6 +560,10 @@
<mat-form-field appearance="outline" fxFlex="calc(50%-15px)" fxFlex.lt-md="100" class="mat-block tb-value-type">
<mat-label translate>gateway.grpc-max-pings-without-data</mat-label>
<input matInput formControlName="maxPingsWithoutData" type="number" min="0"/>
<mat-icon class="mat-form-field-infix pointer-event suffix-icon"
matSuffix style="cursor:pointer;"
matTooltip="{{'gateway.hints.grpc-max-pings-without-data' | translate }}">info_outlined
</mat-icon>
<mat-error *ngIf="gatewayConfigGroup.get('grpc.maxPingsWithoutData').hasError('required')">
{{'gateway.grpc-max-pings-without-data-required' | translate }}
</mat-error>
@ -553,6 +577,10 @@
<mat-form-field appearance="outline" fxFlex="calc(50%-15px)" fxFlex.lt-md="100" class="mat-block tb-value-type">
<mat-label translate>gateway.grpc-min-ping-interval-without-data</mat-label>
<input matInput formControlName="minPingIntervalWithoutDataMs" type="number" min="0"/>
<mat-icon class="mat-form-field-infix pointer-event suffix-icon"
matSuffix style="cursor:pointer;"
matTooltip="{{'gateway.hints.grpc-min-ping-interval-without-data' | translate }}">info_outlined
</mat-icon>
<mat-error *ngIf="gatewayConfigGroup.get('grpc.minPingIntervalWithoutDataMs').hasError('required')">
{{'gateway.grpc-min-ping-interval-without-data-required' | translate }}
</mat-error>
@ -576,7 +604,7 @@
</mat-slide-toggle>
<mat-form-field appearance="outline" fxFlex="calc(50%-15px)" class="mat-block tb-value-type">
<mat-label translate>gateway.statistics.send-period</mat-label>
<input matInput formControlName="statsSendPeriodInSeconds" type="number" min="1"/>
<input matInput formControlName="statsSendPeriodInSeconds" type="number" min="60"/>
<mat-error
*ngIf="gatewayConfigGroup.get('thingsboard.statistics.statsSendPeriodInSeconds').hasError('required')">
{{'gateway.statistics.send-period-required' | translate }}

View File

@ -155,7 +155,7 @@ export class GatewayConfigurationComponent implements OnInit {
checkConnectorsConfigurationInSeconds: [60, [Validators.required, Validators.min(1), Validators.pattern(/^-?[0-9]+$/)]],
statistics: this.fb.group({
enable: [true, []],
statsSendPeriodInSeconds: [3600, [Validators.required, Validators.min(1), Validators.pattern(/^-?[0-9]+$/)]],
statsSendPeriodInSeconds: [3600, [Validators.required, Validators.min(60), Validators.pattern(/^-?[0-9]+$/)]],
commands: this.fb.array([], [])
}),
maxPayloadSizeBytes: [1024, [Validators.required, Validators.min(1), Validators.pattern(/^-?[0-9]+$/)]],
@ -434,6 +434,7 @@ export class GatewayConfigurationComponent implements OnInit {
grpcGroup.get('serverPort').enable();
grpcGroup.get('keepAliveTimeMs').enable();
grpcGroup.get('keepAliveTimeoutMs').enable();
grpcGroup.get('keepalivePermitWithoutCalls').enable();
grpcGroup.get('maxPingsWithoutData').enable();
grpcGroup.get('minTimeBetweenPingsMs').enable();
grpcGroup.get('minPingIntervalWithoutDataMs').enable();
@ -441,6 +442,7 @@ export class GatewayConfigurationComponent implements OnInit {
grpcGroup.get('serverPort').disable();
grpcGroup.get('keepAliveTimeMs').disable();
grpcGroup.get('keepAliveTimeoutMs').disable();
grpcGroup.get('keepalivePermitWithoutCalls').disable();
grpcGroup.get('maxPingsWithoutData').disable();
grpcGroup.get('minTimeBetweenPingsMs').disable();
grpcGroup.get('minPingIntervalWithoutDataMs').disable();

View File

@ -27,7 +27,11 @@
</mat-form-field>
<mat-form-field class="mat-block tb-value-type" fxFlex *ngIf="!isConnector">
<mat-label>{{'gateway.statistics.timeout-ms' | translate}}</mat-label>
<input matInput formControlName="time" type="number"/>
<input matInput formControlName="time" type="number" min="1"/>
<mat-error
*ngIf="commandForm.get('time').hasError('min')">
{{'gateway.statistics.timeout-min' | translate }}
</mat-error>
</mat-form-field>
<mat-form-field class="mat-block tb-value-type" fxFlex *ngIf="isConnector">
<mat-label>{{'widget-config.datasource-parameters' | translate}}</mat-label>

View File

@ -76,7 +76,7 @@ export class GatewayServiceRPCComponent extends PageComponent implements AfterVi
super(store);
this.commandForm = this.fb.group({
command: [null,[Validators.required]],
time: [60, [Validators.required]],
time: [60, [Validators.required, Validators.min(1)]],
params: ["{}", [Validators.required]],
result: [null]
})

View File

@ -2693,7 +2693,7 @@
},
"min-pack-send-delay": "Min pack send delay (in ms)",
"min-pack-send-delay-required": "Min pack send delay is required",
"min-pack-send-delay-min": "Min pack send delay can not be less then 1",
"min-pack-send-delay-min": "Min pack send delay can not be less then 0",
"no-connectors": "No connectors",
"no-data": "No configurations",
"no-gateway-found": "No gateway found.",
@ -2725,7 +2725,7 @@
"commands": "Commands",
"send-period": "Statistic send period (in sec)",
"send-period-required": "Statistic send period is required",
"send-period-min": "Statistic send period can not be less then 1",
"send-period-min": "Statistic send period can not be less then 60",
"send-period-pattern": "Statistic send period is not valid",
"check-connectors-configuration": "Check connectors configuration (in ms)",
"check-connectors-configuration-required": "Check connectors configuration is required",
@ -2841,7 +2841,14 @@
"inactivity-timeout": "Inactivity device time after whose the gateway will disconnect device",
"inactivity-period": "Periodicity of device activity check",
"minimal-pack-delay": "Delay between sending packets (Decreasing this setting results in increased CPU usage)",
"qos": "Quality of Service in MQTT messaging (0 - at most once, 1 - at least once)"
"qos": "Quality of Service in MQTT messaging (0 - at most once, 1 - at least once)",
"server-port": "Network port on which GRPC server will listen for incoming connections.",
"grpc-keep-alive-timeout": "Maximum time (in milliseconds) the server should wait for a keepalive ping response before considering the connection dead.",
"grpc-keep-alive": "Duration (in milliseconds) between two successive keepalive ping messages when there is no active RPC call.",
"grpc-min-time-between-pings": "Minimum amount of time (in milliseconds) the server should wait between sending keepalive ping messages",
"grpc-max-pings-without-data": "Maximum number of keepalive ping messages that the server can send without receiving any data before it considers the connection dead.",
"grpc-min-ping-interval-without-data": "Minimum amount of time (in milliseconds) the server should wait between sending keepalive ping messages when there is no data being sent or received.",
"permit-without-calls": "Allow server to keep the GRPC connection alive even when there are no active RPC calls."
}
},
"grid": {