Browse Source

hints and opc-ua adjustments

pull/11427/head
mpetrov 2 years ago
parent
commit
840751b3ca
  1. 33
      ui-ngx/src/app/modules/home/components/widget/lib/gateway/connectors-configuration/opc-server-config/opc-server-config.component.html
  2. 9
      ui-ngx/src/app/modules/home/components/widget/lib/gateway/connectors-configuration/opc-server-config/opc-server-config.component.ts
  3. 10
      ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-configuration.component.html
  4. 6
      ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-configuration.component.ts
  5. 3
      ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-widget.models.ts
  6. 19
      ui-ngx/src/assets/locale/locale.constant-en_US.json
  7. 5
      ui-ngx/src/assets/metadata/connector-default-configs/opcua_asyncio.json

33
ui-ngx/src/app/modules/home/components/widget/lib/gateway/connectors-configuration/opc-server-config/opc-server-config.component.html

@ -69,15 +69,36 @@
</div>
<div class="tb-flex no-gap">
<mat-form-field class="tb-flex no-gap" appearance="outline" subscriptSizing="dynamic">
<input matInput type="number" min="1000" name="value"
formControlName="scanPeriodInMillis" placeholder="{{ 'gateway.set' | translate }}"/>
<input matInput type="number" min="1" name="value"
formControlName="scanPeriodInSec" placeholder="{{ 'gateway.set' | translate }}"/>
<mat-icon matSuffix
matTooltipPosition="above"
matTooltipClass="tb-error-tooltip"
[matTooltip]="'gateway.scan-period-error' | translate: {min: 1000}"
*ngIf="(serverConfigFormGroup.get('scanPeriodInMillis').hasError('required') ||
serverConfigFormGroup.get('scanPeriodInMillis').hasError('min')) &&
serverConfigFormGroup.get('scanPeriodInMillis').touched"
[matTooltip]="'gateway.scan-period-error' | translate: {min: 1}"
*ngIf="(serverConfigFormGroup.get('scanPeriodInSec').hasError('required') ||
serverConfigFormGroup.get('scanPeriodInSec').hasError('min')) &&
serverConfigFormGroup.get('scanPeriodInSec').touched"
class="tb-error">
warning
</mat-icon>
</mat-form-field>
</div>
</div>
<div class="tb-form-row column-xs" fxLayoutAlign="space-between center">
<div class="fixed-title-width" tb-hint-tooltip-icon="{{ 'gateway.hints.poll-period' | translate }}">
<div tbTruncateWithTooltip>{{ 'gateway.poll-period' | translate }}</div>
</div>
<div class="tb-flex no-gap">
<mat-form-field class="tb-flex no-gap" appearance="outline" subscriptSizing="dynamic">
<input matInput type="number" min="50" name="value"
formControlName="pollPeriodInMillis" placeholder="{{ 'gateway.set' | translate }}"/>
<mat-icon matSuffix
matTooltipPosition="above"
matTooltipClass="tb-error-tooltip"
[matTooltip]="'gateway.poll-period-error' | translate: {min: 50}"
*ngIf="(serverConfigFormGroup.get('pollPeriodInMillis').hasError('required') ||
serverConfigFormGroup.get('pollPeriodInMillis').hasError('min')) &&
serverConfigFormGroup.get('pollPeriodInMillis').touched"
class="tb-error">
warning
</mat-icon>

9
ui-ngx/src/app/modules/home/components/widget/lib/gateway/connectors-configuration/opc-server-config/opc-server-config.component.ts

@ -80,7 +80,8 @@ export class OpcServerConfigComponent implements ControlValueAccessor, Validator
name: ['', []],
url: ['', [Validators.required, Validators.pattern(noLeadTrailSpacesRegex)]],
timeoutInMillis: [1000, [Validators.required, Validators.min(1000)]],
scanPeriodInMillis: [1000, [Validators.required, Validators.min(1000)]],
scanPeriodInSec: [3600, [Validators.required, Validators.min(1)]],
pollPeriodInMillis: [5000, [Validators.required, Validators.min(50)]],
enableSubscriptions: [true, []],
subCheckPeriodInMillis: [100, [Validators.required, Validators.min(100)]],
showMap: [false, []],
@ -118,7 +119,8 @@ export class OpcServerConfigComponent implements ControlValueAccessor, Validator
writeValue(serverConfig: ServerConfig): void {
const {
timeoutInMillis = 1000,
scanPeriodInMillis = 1000,
scanPeriodInSec = 3600,
pollPeriodInMillis = 5000,
enableSubscriptions = true,
subCheckPeriodInMillis = 100,
showMap = false,
@ -129,7 +131,8 @@ export class OpcServerConfigComponent implements ControlValueAccessor, Validator
this.serverConfigFormGroup.reset({
...serverConfig,
timeoutInMillis,
scanPeriodInMillis,
scanPeriodInSec,
pollPeriodInMillis,
enableSubscriptions,
subCheckPeriodInMillis,
showMap,

10
ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-configuration.component.html

@ -726,6 +726,10 @@
<mat-error *ngIf="gatewayConfigGroup.get('thingsboard.minPackSendDelayMS').hasError('min')">
{{ 'gateway.min-pack-send-delay-min' | translate }}
</mat-error>
<mat-error
*ngIf="gatewayConfigGroup.get('thingsboard.minPackSendDelayMS').hasError('pattern')">
{{ 'gateway.min-pack-send-delay-min-pattern' | translate }}
</mat-error>
<mat-icon matIconSuffix style="cursor:pointer;"
matTooltip="{{ 'gateway.hints.minimal-pack-delay' | translate }}">info_outlined
</mat-icon>
@ -779,6 +783,9 @@
*ngIf="gatewayConfigGroup.get('thingsboard.maxPayloadSizeBytes').hasError('pattern')">
{{ 'gateway.statistics.max-payload-size-bytes-pattern' | translate }}
</mat-error>
<mat-icon matIconSuffix style="cursor:pointer;"
matTooltip="{{ 'gateway.hints.max-payload-size-bytes' | translate }}">info_outlined
</mat-icon>
</mat-form-field>
</section>
<section class="tb-form-row no-border no-padding tb-standard-fields column-xs">
@ -797,6 +804,9 @@
*ngIf="gatewayConfigGroup.get('thingsboard.minPackSizeToSend').hasError('pattern')">
{{ 'gateway.statistics.min-pack-size-to-send-pattern' | translate }}
</mat-error>
<mat-icon matIconSuffix style="cursor:pointer;"
matTooltip="{{ 'gateway.hints.min-pack-size-to-send' | translate }}">info_outlined
</mat-icon>
</mat-form-field>
</section>
</div>

6
ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-configuration.component.ts

@ -102,9 +102,9 @@ export class GatewayConfigurationComponent implements OnInit {
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]+$/)]],
minPackSendDelayMS: [200, [Validators.required, Validators.min(0), Validators.pattern(/^-?[0-9]+$/)]],
minPackSizeToSend: [500, [Validators.required, Validators.min(1), Validators.pattern(/^-?[0-9]+$/)]],
maxPayloadSizeBytes: [8196, [Validators.required, Validators.min(100), Validators.pattern(/^-?[0-9]+$/)]],
minPackSendDelayMS: [50, [Validators.required, Validators.min(10), Validators.pattern(/^-?[0-9]+$/)]],
minPackSizeToSend: [500, [Validators.required, Validators.min(100), Validators.pattern(/^-?[0-9]+$/)]],
handleDeviceRenaming: [true, []],
checkingDeviceActivity: this.fb.group({
checkDeviceInactivity: [false, []],

3
ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-widget.models.ts

@ -150,7 +150,8 @@ export interface ServerConfig {
name: string;
url: string;
timeoutInMillis: number;
scanPeriodInMillis: number;
scanPeriodInSec: number;
pollPeriodInMillis: number;
enableSubscriptions: boolean;
subCheckPeriodInMillis: number;
showMap: boolean;

19
ui-ngx/src/assets/locale/locale.constant-en_US.json

@ -3016,7 +3016,8 @@
"method-required": "Method name is required.",
"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 0",
"min-pack-send-delay-min": "Min pack send delay can not be less then 10",
"min-pack-send-delay-pattern": "Min pack send delay is not valid",
"mode": "Mode",
"model-name": "Model name",
"mqtt-version": "MQTT version",
@ -3040,6 +3041,7 @@
"password-required": "Password is required.",
"permit-without-calls": "Keep alive permit without calls",
"poll-period": "Poll period (ms)",
"poll-period-error": "Poll period should be at least {{min}} (ms).",
"port": "Port",
"port-required": "Port is required.",
"port-limits-error": "Port should be number from {{min}} to {{max}}.",
@ -3176,8 +3178,8 @@
"without-response": "Without response",
"other": "Other",
"save-tip": "Save configuration file",
"scan-period": "Scan period (ms)",
"scan-period-error": "Scan period should be at least {{min}} (ms).",
"scan-period": "Scan period (s)",
"scan-period-error": "Scan period should be at least {{min}} (s).",
"sub-check-period": "Subscription check period (ms)",
"sub-check-period-error": "Subscription check period should be at least {{min}} (ms).",
"security": "Security",
@ -3221,11 +3223,11 @@
"check-connectors-configuration": "Check connectors configuration (in sec)",
"max-payload-size-bytes": "Max payload size in bytes",
"max-payload-size-bytes-required": "Max payload size in bytes is required",
"max-payload-size-bytes-min": "Max payload size in bytes can not be less then 1",
"max-payload-size-bytes-min": "Max payload size in bytes can not be less then 100",
"max-payload-size-bytes-pattern": "Max payload size in bytes is not valid",
"min-pack-size-to-send": "Min packet size to send",
"min-pack-size-to-send-required": "Min packet size to send is required",
"min-pack-size-to-send-min": "Min packet size to send can not be less then 1",
"min-pack-size-to-send-min": "Min packet size to send can not be less then 100",
"min-pack-size-to-send-pattern": "Min packet size to send is not valid",
"check-connectors-configuration-required": "Check connectors configuration is required",
"check-connectors-configuration-min": "Check connectors configuration can not be less then 1",
@ -3387,12 +3389,15 @@
"file": "Your data will be stored in separated files and will be saved even after the gateway restart.",
"sqlite": "Your data will be stored in file based database. And will be saved even after the gateway restart.",
"opc-timeout": "Timeout in milliseconds for connecting to OPC-UA server.",
"scan-period": "Period in milliseconds to rescan the server.",
"scan-period": "Period in seconds to rescan the server.",
"sub-check-period": "Period to check the subscriptions in the OPC-UA server.",
"enable-subscription": "If true - the gateway will subscribe to interesting nodes and wait for data update and if false - the gateway will rescan OPC-UA server every scanPeriodInMillis.",
"enable-subscription": "If true - the gateway will subscribe to interesting nodes and wait for data update and if false - the gateway will rescan OPC-UA server every scanPeriodInSec.",
"show-map": "Show nodes on scanning.",
"method-name": "Name of method on OPC-UA server.",
"arguments": "Arguments for the method (will be overwritten by arguments from the RPC request).",
"min-pack-size-to-send": "Minimum package size for sending.",
"max-payload-size-bytes": "Maximum package size in bytes",
"poll-period": "Period in milliseconds to read data from nodes.",
"modbus": {
"framer-type": "Type of a framer (Socket, RTU, or ASCII), if needed.",
"host": "Hostname or IP address of Modbus server.",

5
ui-ngx/src/assets/metadata/connector-default-configs/opcua_asyncio.json

@ -3,7 +3,8 @@
"name": "OPC-UA Default Server",
"url": "localhost:4840/freeopcua/server/",
"timeoutInMillis": 5000,
"scanPeriodInMillis": 5000,
"scanPeriodInSec": 3600,
"pollPeriodInMillis": 5000,
"disableSubscriptions": false,
"subCheckPeriodInMillis": 100,
"showMap": false,
@ -49,4 +50,4 @@
}
]
}
}
}

Loading…
Cancel
Save