@flexem/fc-gui 3.0.0-alpha.62 → 3.0.0-alpha.63

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,14 +2,12 @@ import { Observable } from 'rxjs';
2
2
  import { VariableValue } from './variable-value';
3
3
  import { VariableState } from './variable-state';
4
4
  export interface VariableCommunicator {
5
- historyAlarmChanged: any;
6
5
  openVariable(variableName: string, appId: string): Observable<VariableValue>;
7
6
  openVariables(variableNames: Array<string>, appId: string): Observable<Array<VariableValue>>;
8
7
  write(variableName: string, value: any): Observable<VariableValue>;
9
8
  writeWordByBit(variableName: string, index: number, value: number): Observable<VariableValue>;
10
9
  subscribeVariableState(variableName: string): Observable<VariableState>;
11
10
  subscribeVariableStates(variableNames: Array<string>): Observable<Array<VariableState>>;
12
- subscribeUserDeviceAlarms(appId: string): Observable<any>;
13
- unSubscribeUserDeviceAlarms(appId: string): any;
11
+ subscribeUserDeviceAlarms(appId: string): any;
14
12
  dispose(): any;
15
13
  }
@@ -23,7 +23,6 @@ export declare class AlarmElement extends ConditionalDisplayElement {
23
23
  private totalCount;
24
24
  private pageSize;
25
25
  constructor(element: HTMLElement, injector: Injector, permissionChecker: PermissionChecker, variableCommunicator: VariableCommunicator, variableStore: VariableStore, alarmsStore: AlarmsStore, signalRAppId: string);
26
- ngOnDestroy(): void;
27
26
  dispose(): void;
28
27
  private getValidTimePeriods;
29
28
  private init;
@@ -81,11 +81,6 @@ export class AlarmElement extends ConditionalDisplayElement {
81
81
  }
82
82
  this.init();
83
83
  }
84
- ngOnDestroy() {
85
- if (!this.model.filterSetting.alarmType) {
86
- this.variableCommunicator.unSubscribeUserDeviceAlarms(this.signalRAppId);
87
- }
88
- }
89
84
  dispose() {
90
85
  clearInterval(this.refreshIntervalId);
91
86
  if (this.element) {
@@ -221,7 +216,7 @@ export class AlarmElement extends ConditionalDisplayElement {
221
216
  }
222
217
  this.element.appendChild(table);
223
218
  this.$element.append(this.element);
224
- this.renderOperationArea(this.model.size.width, elementHeight);
219
+ this.renderOperationArea(this.model.size.width, elementHeight - 39);
225
220
  }
226
221
  renderOperationArea(chartWidth, chartHeight) {
227
222
  const operationArea = this.rootElement.append('g').attr('transform', `translate(0,${chartHeight + this.displayOption.operationAreaMarginTop})`)
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"AlarmElement":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../base/conditional-display-element","name":"ConditionalDisplayElement","line":17,"character":34},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":48,"character":25,"context":{"typeName":"HTMLElement"}},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":49,"character":18},{"__symbolic":"reference","module":"../../service","name":"PermissionChecker","line":50,"character":27},{"__symbolic":"reference","module":"../../communication","name":"VariableCommunicator","line":51,"character":30},{"__symbolic":"reference","module":"../../config","name":"VariableStore","line":52,"character":23},{"__symbolic":"reference","module":"../../config","name":"AlarmsStore","line":53,"character":38},{"__symbolic":"reference","name":"string"}]}],"ngOnDestroy":[{"__symbolic":"method"}],"dispose":[{"__symbolic":"method"}],"getValidTimePeriods":[{"__symbolic":"method"}],"init":[{"__symbolic":"method"}],"renderElement":[{"__symbolic":"method"}],"renderOperationArea":[{"__symbolic":"method"}],"updateTimeRange":[{"__symbolic":"method"}],"updateQueryTimeRange":[{"__symbolic":"method"}],"loadFirstPage":[{"__symbolic":"method"}],"loadNextPage":[{"__symbolic":"method"}],"loadPreviousPage":[{"__symbolic":"method"}],"loadLastPage":[{"__symbolic":"method"}]}}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"AlarmElement":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../base/conditional-display-element","name":"ConditionalDisplayElement","line":17,"character":34},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":48,"character":25,"context":{"typeName":"HTMLElement"}},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":49,"character":18},{"__symbolic":"reference","module":"../../service","name":"PermissionChecker","line":50,"character":27},{"__symbolic":"reference","module":"../../communication","name":"VariableCommunicator","line":51,"character":30},{"__symbolic":"reference","module":"../../config","name":"VariableStore","line":52,"character":23},{"__symbolic":"reference","module":"../../config","name":"AlarmsStore","line":53,"character":38},{"__symbolic":"reference","name":"string"}]}],"dispose":[{"__symbolic":"method"}],"getValidTimePeriods":[{"__symbolic":"method"}],"init":[{"__symbolic":"method"}],"renderElement":[{"__symbolic":"method"}],"renderOperationArea":[{"__symbolic":"method"}],"updateTimeRange":[{"__symbolic":"method"}],"updateQueryTimeRange":[{"__symbolic":"method"}],"loadFirstPage":[{"__symbolic":"method"}],"loadNextPage":[{"__symbolic":"method"}],"loadPreviousPage":[{"__symbolic":"method"}],"loadLastPage":[{"__symbolic":"method"}]}}}}]
@@ -6,7 +6,7 @@ export declare class PerViewVariableCommunicator implements VariableCommunicator
6
6
  private observers;
7
7
  private variableValuesChangedSubscriptions;
8
8
  private variableStatesChangedSubscription;
9
- historyAlarmChanged: any;
9
+ private alarmSubscription;
10
10
  constructor(variableCommunicator: VariableCommunicator);
11
11
  openVariable(variableName: string, appId: string): Observable<VariableValue>;
12
12
  openVariables(variableNames: Array<string>, appId?: string): Observable<Array<VariableValue>>;
@@ -14,7 +14,6 @@ export declare class PerViewVariableCommunicator implements VariableCommunicator
14
14
  writeWordByBit(variableName: string, index: number, value: number): Observable<VariableValue>;
15
15
  subscribeVariableState(variableName: string): Observable<VariableState>;
16
16
  subscribeVariableStates(variableNames: string[]): Observable<Array<VariableState>>;
17
- subscribeUserDeviceAlarms(appId?: string): Observable<any>;
18
- unSubscribeUserDeviceAlarms(appId?: string): void;
17
+ subscribeUserDeviceAlarms(appId?: string): Observable<VariableState[]>;
19
18
  dispose(): void;
20
19
  }
@@ -6,8 +6,8 @@ export class PerViewVariableCommunicator {
6
6
  this.observers = new Map();
7
7
  this.variableValuesChangedSubscriptions = new Array();
8
8
  this.variableStatesChangedSubscription = new Array();
9
+ this.alarmSubscription = new Array();
9
10
  this._rawVariableCommunicator = variableCommunicator;
10
- this.historyAlarmChanged = variableCommunicator.historyAlarmChanged;
11
11
  }
12
12
  openVariable(variableName, appId) {
13
13
  return this.openVariables([variableName], appId).pipe(map(values => values[0]));
@@ -40,14 +40,14 @@ export class PerViewVariableCommunicator {
40
40
  });
41
41
  }
42
42
  subscribeUserDeviceAlarms(appId = '') {
43
- this._rawVariableCommunicator.subscribeUserDeviceAlarms(appId);
44
- return this._rawVariableCommunicator.historyAlarmChanged;
45
- }
46
- unSubscribeUserDeviceAlarms(appId = '') {
47
- this._rawVariableCommunicator.unSubscribeUserDeviceAlarms(appId);
43
+ return new Observable(subscriber => {
44
+ const subscription = this._rawVariableCommunicator.subscribeUserDeviceAlarms(appId).subscribe(values => subscriber.next(values), error => subscriber.error(error), () => subscriber.complete());
45
+ this.alarmSubscription.push(subscription);
46
+ });
48
47
  }
49
48
  dispose() {
50
49
  forEach(this.variableValuesChangedSubscriptions, s => s.unsubscribe());
51
50
  forEach(this.variableStatesChangedSubscription, s => s.unsubscribe());
51
+ forEach(this.alarmSubscription, s => s.unsubscribe());
52
52
  }
53
53
  }
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"PerViewVariableCommunicator":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"../communication","name":"VariableCommunicator","line":16,"character":38}]}],"openVariable":[{"__symbolic":"method"}],"openVariables":[{"__symbolic":"method"}],"write":[{"__symbolic":"method"}],"writeWordByBit":[{"__symbolic":"method"}],"subscribeVariableState":[{"__symbolic":"method"}],"subscribeVariableStates":[{"__symbolic":"method"}],"subscribeUserDeviceAlarms":[{"__symbolic":"method"}],"unSubscribeUserDeviceAlarms":[{"__symbolic":"method"}],"dispose":[{"__symbolic":"method"}]}}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"PerViewVariableCommunicator":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"../communication","name":"VariableCommunicator","line":15,"character":38}]}],"openVariable":[{"__symbolic":"method"}],"openVariables":[{"__symbolic":"method"}],"write":[{"__symbolic":"method"}],"writeWordByBit":[{"__symbolic":"method"}],"subscribeVariableState":[{"__symbolic":"method"}],"subscribeVariableStates":[{"__symbolic":"method"}],"subscribeUserDeviceAlarms":[{"__symbolic":"method"}],"dispose":[{"__symbolic":"method"}]}}}}]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "main": "bundles/fc-gui.umd.js",
3
- "version": "3.0.0-alpha.62",
3
+ "version": "3.0.0-alpha.63",
4
4
  "module": "public_api.js",
5
5
  "typings": "public_api.d.ts",
6
6
  "license": "UNLICENSED",
@@ -17,8 +17,10 @@ export declare class RemoteVariableCommunicator implements VariableCommunicator
17
17
  private variableStateCache;
18
18
  private variableStatesToBeOpened;
19
19
  private variableStatesToBeClosed;
20
- historyAlarmChanged: any;
20
+ private alarmObservers;
21
+ private alarmChangedSubscription;
21
22
  constructor(remoteVariableProtocol: RemoteVariableProtocol, logger: LoggerService);
23
+ private doAlarmChanged;
22
24
  private doVariableValuesChanged;
23
25
  private doVariableStatesChanged;
24
26
  subscribeVariableStates(variableNames: string[]): Observable<VariableState[]>;
@@ -27,7 +29,6 @@ export declare class RemoteVariableCommunicator implements VariableCommunicator
27
29
  openVariable(variableName: string, appId?: string): Observable<VariableValue>;
28
30
  write(variableName: string, value: any): Observable<VariableValue>;
29
31
  writeWordByBit(variableName: string, index: number, value: number): Observable<VariableValue>;
30
- subscribeUserDeviceAlarms(appId?: string): Observable<any>;
31
- unSubscribeUserDeviceAlarms(appId?: string): void;
32
+ subscribeUserDeviceAlarms(appId?: string): Observable<any[]>;
32
33
  dispose(): void;
33
34
  }
@@ -10,7 +10,7 @@ export class RemoteVariableCommunicator {
10
10
  this.appIdVariablesMap = new Map();
11
11
  this.variableStateObservers = new Map();
12
12
  this.variableStateCache = new Map();
13
- this.historyAlarmChanged = remoteVariableProtocol.historyAlarmChanged;
13
+ this.alarmObservers = [];
14
14
  this.variableValueCache = new StringifyingMap(k => JSON.stringify(k));
15
15
  this.connectedSubscription = this.remoteVariableProtocol.connected.subscribe(() => {
16
16
  const variableNamesToStart = [];
@@ -24,6 +24,17 @@ export class RemoteVariableCommunicator {
24
24
  });
25
25
  this.doVariableStatesChanged();
26
26
  this.doVariableValuesChanged();
27
+ this.doAlarmChanged();
28
+ }
29
+ doAlarmChanged() {
30
+ if (this.alarmChangedSubscription !== undefined) {
31
+ this.alarmChangedSubscription.unsubscribe();
32
+ }
33
+ this.alarmChangedSubscription = this.remoteVariableProtocol.historyAlarmChanged.subscribe((alarmWithAppId) => {
34
+ each(this.alarmObservers, ob => {
35
+ ob.next(alarmWithAppId);
36
+ });
37
+ });
27
38
  }
28
39
  doVariableValuesChanged() {
29
40
  if (this.variableValuesChangedSubscription !== undefined) {
@@ -205,17 +216,20 @@ export class RemoteVariableCommunicator {
205
216
  });
206
217
  }
207
218
  subscribeUserDeviceAlarms(appId = '') {
208
- this.remoteVariableProtocol.subscribeUserDeviceAlarms(appId);
209
- return this.remoteVariableProtocol.historyAlarmChanged;
210
- }
211
- unSubscribeUserDeviceAlarms(appId = '') {
212
- this.remoteVariableProtocol.unSubscribeUserDeviceAlarms(appId);
219
+ return new Observable(observer => {
220
+ this.alarmObservers.push(observer);
221
+ this.remoteVariableProtocol.subscribeUserDeviceAlarms(appId);
222
+ return () => {
223
+ this.remoteVariableProtocol.unSubscribeUserDeviceAlarms(appId);
224
+ };
225
+ });
213
226
  }
214
227
  dispose() {
215
228
  // TODO调用所有的ob.complete()。
216
229
  this.connectedSubscription.unsubscribe();
217
230
  this.variableStatesChangedSubscription.unsubscribe();
218
231
  this.variableValuesChangedSubscription.unsubscribe();
232
+ this.alarmChangedSubscription.unsubscribe();
219
233
  if (this.logger && this.logger.isDebugEnabled()) {
220
234
  this.logger.debug('[VariableCommunicator] RemoteVariableCommunicator disposed.');
221
235
  }
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"RemoteVariableCommunicator":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"./remote-variable-protocol","name":"RemoteVariableProtocol","line":26,"character":57},{"__symbolic":"reference","module":"../../../logger","name":"LoggerService","line":26,"character":106}]}],"doVariableValuesChanged":[{"__symbolic":"method"}],"doVariableStatesChanged":[{"__symbolic":"method"}],"subscribeVariableStates":[{"__symbolic":"method"}],"subscribeVariableState":[{"__symbolic":"method"}],"openVariables":[{"__symbolic":"method"}],"openVariable":[{"__symbolic":"method"}],"write":[{"__symbolic":"method"}],"writeWordByBit":[{"__symbolic":"method"}],"subscribeUserDeviceAlarms":[{"__symbolic":"method"}],"unSubscribeUserDeviceAlarms":[{"__symbolic":"method"}],"dispose":[{"__symbolic":"method"}]}}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"RemoteVariableCommunicator":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"./remote-variable-protocol","name":"RemoteVariableProtocol","line":27,"character":57},{"__symbolic":"reference","module":"../../../logger","name":"LoggerService","line":27,"character":106}]}],"doAlarmChanged":[{"__symbolic":"method"}],"doVariableValuesChanged":[{"__symbolic":"method"}],"doVariableStatesChanged":[{"__symbolic":"method"}],"subscribeVariableStates":[{"__symbolic":"method"}],"subscribeVariableState":[{"__symbolic":"method"}],"openVariables":[{"__symbolic":"method"}],"openVariable":[{"__symbolic":"method"}],"write":[{"__symbolic":"method"}],"writeWordByBit":[{"__symbolic":"method"}],"subscribeUserDeviceAlarms":[{"__symbolic":"method"}],"dispose":[{"__symbolic":"method"}]}}}}]
@@ -11,6 +11,6 @@ export interface RemoteVariableProtocol {
11
11
  writeVariableWordByBit(variableName: string, index: number, value: number): Observable<void>;
12
12
  subscribeVariableStates(variableNames: string[]): Observable<void>;
13
13
  unsubscribeVariableStates(variableNames: string[]): Observable<void>;
14
- subscribeUserDeviceAlarms(appId: string): Observable<void>;
15
- unSubscribeUserDeviceAlarms(appId: string): Observable<void>;
14
+ subscribeUserDeviceAlarms(appId: string): any;
15
+ unSubscribeUserDeviceAlarms(appId: string): any;
16
16
  }