motion-master-client 0.0.77 â 0.0.86
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.
- package/README.md +227 -138
- package/package.json +1 -1
- package/src/cli.d.ts +1 -1
- package/src/cli.js +160 -160
- package/src/index.d.ts +30 -28
- package/src/index.js +33 -31
- package/src/index.js.map +1 -1
- package/src/lib/cia402.d.ts +184 -182
- package/src/lib/cia402.js +393 -391
- package/src/lib/cia402.js.map +1 -1
- package/src/lib/config-file.d.ts +13 -13
- package/src/lib/config-file.js +49 -49
- package/src/lib/data-monitoring.d.ts +12 -12
- package/src/lib/data-monitoring.js +33 -33
- package/src/lib/device-log-line.d.ts +5 -5
- package/src/lib/device-log-line.js +2 -2
- package/src/lib/device-parameter.d.ts +56 -56
- package/src/lib/device-parameter.js +38 -38
- package/src/lib/device.d.ts +46 -9
- package/src/lib/device.js +166 -2
- package/src/lib/device.js.map +1 -1
- package/src/lib/encoder-register.d.ts +16 -16
- package/src/lib/encoder-register.js +116 -116
- package/src/lib/hardware-description.d.ts +46 -46
- package/src/lib/hardware-description.js +109 -109
- package/src/lib/integro-encoder-calibration.d.ts +31 -0
- package/src/lib/integro-encoder-calibration.js +196 -0
- package/src/lib/integro-encoder-calibration.js.map +1 -0
- package/src/lib/logger.d.ts +1 -1
- package/src/lib/logger.js +7 -7
- package/src/lib/monitoring-config.d.ts +31 -31
- package/src/lib/monitoring-config.js +2 -2
- package/src/lib/monitoring-entry.d.ts +9 -9
- package/src/lib/monitoring-entry.js +2 -2
- package/src/lib/motion-master-client.d.ts +77 -77
- package/src/lib/motion-master-client.js +196 -196
- package/src/lib/motion-master-pub-sub-client.d.ts +17 -17
- package/src/lib/motion-master-pub-sub-client.js +72 -72
- package/src/lib/motion-master-pub-sub-client.js.map +1 -1
- package/src/lib/motion-master-pub-sub-socket.d.ts +42 -42
- package/src/lib/motion-master-pub-sub-socket.js +2 -2
- package/src/lib/motion-master-pub-sub-web-socket.d.ts +18 -18
- package/src/lib/motion-master-pub-sub-web-socket.js +65 -65
- package/src/lib/motion-master-pub-sub-worker-socket.d.ts +18 -18
- package/src/lib/motion-master-pub-sub-worker-socket.js +47 -47
- package/src/lib/motion-master-req-res-client.d.ts +1104 -1062
- package/src/lib/motion-master-req-res-client.js +2137 -1997
- package/src/lib/motion-master-req-res-client.js.map +1 -1
- package/src/lib/motion-master-req-res-socket.d.ts +60 -60
- package/src/lib/motion-master-req-res-socket.js +2 -2
- package/src/lib/motion-master-req-res-web-socket.d.ts +28 -28
- package/src/lib/motion-master-req-res-web-socket.js +97 -97
- package/src/lib/motion-master-req-res-worker-socket.d.ts +24 -24
- package/src/lib/motion-master-req-res-worker-socket.js +71 -71
- package/src/lib/motion-master.proto.d.ts +5183 -5183
- package/src/lib/motion-master.proto.js +53218 -53218
- package/src/lib/operators.d.ts +20 -20
- package/src/lib/operators.js +82 -83
- package/src/lib/operators.js.map +1 -1
- package/src/lib/options.d.ts +10 -10
- package/src/lib/options.js +13 -13
- package/src/lib/os-command.d.ts +387 -173
- package/src/lib/os-command.js +555 -269
- package/src/lib/os-command.js.map +1 -1
- package/src/lib/parameter.d.ts +156 -138
- package/src/lib/parameter.js +377 -152
- package/src/lib/parameter.js.map +1 -1
- package/src/lib/product-id-range.d.ts +7 -7
- package/src/lib/product-id-range.js +11 -11
- package/src/lib/request-status-resolver.d.ts +4 -4
- package/src/lib/request-status-resolver.js +344 -344
- package/src/lib/somanet-product.d.ts +37 -0
- package/src/lib/somanet-product.js +126 -0
- package/src/lib/somanet-product.js.map +1 -0
- package/src/lib/system-log-line.d.ts +9 -9
- package/src/lib/system-log-line.js +2 -2
- package/src/lib/types.d.ts +141 -141
- package/src/lib/types.js +28 -28
- package/src/lib/urls.d.ts +3 -3
- package/src/lib/urls.js +9 -9
- package/src/lib/util.d.ts +21 -45
- package/src/lib/util.js +113 -379
- package/src/lib/util.js.map +1 -1
- package/src/lib/web-socket-connection-close-codes.d.ts +8 -8
- package/src/lib/web-socket-connection-close-codes.js +88 -88
|
@@ -1,98 +1,98 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MotionMasterReqResWebSocket = void 0;
|
|
4
|
-
const rxjs_1 = require("rxjs");
|
|
5
|
-
const webSocket_1 = require("rxjs/webSocket");
|
|
6
|
-
const logger_1 = require("./logger");
|
|
7
|
-
const types_1 = require("./types");
|
|
8
|
-
const util_1 = require("./util");
|
|
9
|
-
class MotionMasterReqResWebSocket {
|
|
10
|
-
constructor() {
|
|
11
|
-
this.opened$ = new rxjs_1.BehaviorSubject(false);
|
|
12
|
-
this.close$ = new rxjs_1.Subject;
|
|
13
|
-
this.alive$ = new rxjs_1.BehaviorSubject(false);
|
|
14
|
-
this.message$ = new rxjs_1.Subject();
|
|
15
|
-
this.aliveTimeoutId = 0;
|
|
16
|
-
this.pingSystemObserver = { next: () => this.send({ request: { pingSystem: {} } }) };
|
|
17
|
-
}
|
|
18
|
-
get url() {
|
|
19
|
-
return this._url;
|
|
20
|
-
}
|
|
21
|
-
get pingSystemInterval() {
|
|
22
|
-
return this._pingSystemInterval;
|
|
23
|
-
}
|
|
24
|
-
get systemAliveTimeout() {
|
|
25
|
-
return this._systemAliveTimeout;
|
|
26
|
-
}
|
|
27
|
-
open(url, pingSystemInterval = 250, systemAliveTimeout = 1000) {
|
|
28
|
-
var _a;
|
|
29
|
-
this._url = url;
|
|
30
|
-
this._pingSystemInterval = pingSystemInterval;
|
|
31
|
-
this._systemAliveTimeout = systemAliveTimeout;
|
|
32
|
-
this.webSocket$ = this.createWebSocket(url, pingSystemInterval);
|
|
33
|
-
(_a = this.webSocket$) === null || _a === void 0 ? void 0 : _a.pipe((0, rxjs_1.map)((data) => types_1.MotionMasterMessage.decode(data)), (0, rxjs_1.tap)(() => this.keepalive(systemAliveTimeout)), (0, rxjs_1.filter)((message) => { var _a; return !((_a = message.status) === null || _a === void 0 ? void 0 : _a.systemPong); }), (0, rxjs_1.map)(message => (0, util_1.createPlainObjectFromMotionMasterMessage)(message)), (0, rxjs_1.tap)((message) => {
|
|
34
|
-
const context = (0, util_1.convertMotionMasterMessageToLoggerContext)(message);
|
|
35
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
36
|
-
logger_1.logger.info(context, `Received ${context.name}`);
|
|
37
|
-
})).subscribe({
|
|
38
|
-
next: (message) => this.message$.next(message),
|
|
39
|
-
error: () => {
|
|
40
|
-
// ignore, clients will receive close$ event instead
|
|
41
|
-
},
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
close() {
|
|
45
|
-
var _a;
|
|
46
|
-
(_a = this.webSocket$) === null || _a === void 0 ? void 0 : _a.complete();
|
|
47
|
-
}
|
|
48
|
-
reopen() {
|
|
49
|
-
if (this.url && this.opened$.value === false) {
|
|
50
|
-
this.open(this.url, this.pingSystemInterval, this.systemAliveTimeout);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
send(message) {
|
|
54
|
-
var _a, _b;
|
|
55
|
-
if (!((_a = message.request) === null || _a === void 0 ? void 0 : _a.pingSystem)) {
|
|
56
|
-
const context = (0, util_1.convertMotionMasterMessageToLoggerContext)(message);
|
|
57
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
58
|
-
logger_1.logger.info(context, `Send ${context.name}`);
|
|
59
|
-
}
|
|
60
|
-
(_b = this.webSocket$) === null || _b === void 0 ? void 0 : _b.next(types_1.MotionMasterMessage.encode(message).finish());
|
|
61
|
-
}
|
|
62
|
-
createWebSocket(url, pingSystemInterval = 250) {
|
|
63
|
-
const webSocketConfig = {
|
|
64
|
-
binaryType: 'arraybuffer',
|
|
65
|
-
closeObserver: {
|
|
66
|
-
next: (ev) => {
|
|
67
|
-
var _a;
|
|
68
|
-
(_a = this.pingSystemSubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
|
|
69
|
-
clearTimeout(this.aliveTimeoutId);
|
|
70
|
-
this.alive$.next(false);
|
|
71
|
-
this.opened$.next(false);
|
|
72
|
-
this.close$.next({ code: ev.code, reason: ev.reason });
|
|
73
|
-
logger_1.logger.info(`Connection closed ${url}`);
|
|
74
|
-
},
|
|
75
|
-
},
|
|
76
|
-
deserializer: (e) => new Uint8Array(e.data),
|
|
77
|
-
openObserver: {
|
|
78
|
-
next: () => {
|
|
79
|
-
this.pingSystemSubscription = (0, rxjs_1.interval)(pingSystemInterval).subscribe(this.pingSystemObserver);
|
|
80
|
-
this.opened$.next(true);
|
|
81
|
-
logger_1.logger.info(`Connection opened ${url}`);
|
|
82
|
-
},
|
|
83
|
-
},
|
|
84
|
-
serializer: (value) => value,
|
|
85
|
-
url,
|
|
86
|
-
};
|
|
87
|
-
return (0, webSocket_1.webSocket)(webSocketConfig);
|
|
88
|
-
}
|
|
89
|
-
keepalive(systemAliveTimeout = 1000) {
|
|
90
|
-
if (this.alive$.getValue() === false) {
|
|
91
|
-
this.alive$.next(true);
|
|
92
|
-
}
|
|
93
|
-
clearTimeout(this.aliveTimeoutId);
|
|
94
|
-
this.aliveTimeoutId = setTimeout(() => this.alive$.next(false), systemAliveTimeout);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
exports.MotionMasterReqResWebSocket = MotionMasterReqResWebSocket;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MotionMasterReqResWebSocket = void 0;
|
|
4
|
+
const rxjs_1 = require("rxjs");
|
|
5
|
+
const webSocket_1 = require("rxjs/webSocket");
|
|
6
|
+
const logger_1 = require("./logger");
|
|
7
|
+
const types_1 = require("./types");
|
|
8
|
+
const util_1 = require("./util");
|
|
9
|
+
class MotionMasterReqResWebSocket {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.opened$ = new rxjs_1.BehaviorSubject(false);
|
|
12
|
+
this.close$ = new rxjs_1.Subject;
|
|
13
|
+
this.alive$ = new rxjs_1.BehaviorSubject(false);
|
|
14
|
+
this.message$ = new rxjs_1.Subject();
|
|
15
|
+
this.aliveTimeoutId = 0;
|
|
16
|
+
this.pingSystemObserver = { next: () => this.send({ request: { pingSystem: {} } }) };
|
|
17
|
+
}
|
|
18
|
+
get url() {
|
|
19
|
+
return this._url;
|
|
20
|
+
}
|
|
21
|
+
get pingSystemInterval() {
|
|
22
|
+
return this._pingSystemInterval;
|
|
23
|
+
}
|
|
24
|
+
get systemAliveTimeout() {
|
|
25
|
+
return this._systemAliveTimeout;
|
|
26
|
+
}
|
|
27
|
+
open(url, pingSystemInterval = 250, systemAliveTimeout = 1000) {
|
|
28
|
+
var _a;
|
|
29
|
+
this._url = url;
|
|
30
|
+
this._pingSystemInterval = pingSystemInterval;
|
|
31
|
+
this._systemAliveTimeout = systemAliveTimeout;
|
|
32
|
+
this.webSocket$ = this.createWebSocket(url, pingSystemInterval);
|
|
33
|
+
(_a = this.webSocket$) === null || _a === void 0 ? void 0 : _a.pipe((0, rxjs_1.map)((data) => types_1.MotionMasterMessage.decode(data)), (0, rxjs_1.tap)(() => this.keepalive(systemAliveTimeout)), (0, rxjs_1.filter)((message) => { var _a; return !((_a = message.status) === null || _a === void 0 ? void 0 : _a.systemPong); }), (0, rxjs_1.map)(message => (0, util_1.createPlainObjectFromMotionMasterMessage)(message)), (0, rxjs_1.tap)((message) => {
|
|
34
|
+
const context = (0, util_1.convertMotionMasterMessageToLoggerContext)(message);
|
|
35
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
36
|
+
logger_1.logger.info(context, `Received ${context.name}`);
|
|
37
|
+
})).subscribe({
|
|
38
|
+
next: (message) => this.message$.next(message),
|
|
39
|
+
error: () => {
|
|
40
|
+
// ignore, clients will receive close$ event instead
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
close() {
|
|
45
|
+
var _a;
|
|
46
|
+
(_a = this.webSocket$) === null || _a === void 0 ? void 0 : _a.complete();
|
|
47
|
+
}
|
|
48
|
+
reopen() {
|
|
49
|
+
if (this.url && this.opened$.value === false) {
|
|
50
|
+
this.open(this.url, this.pingSystemInterval, this.systemAliveTimeout);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
send(message) {
|
|
54
|
+
var _a, _b;
|
|
55
|
+
if (!((_a = message.request) === null || _a === void 0 ? void 0 : _a.pingSystem)) {
|
|
56
|
+
const context = (0, util_1.convertMotionMasterMessageToLoggerContext)(message);
|
|
57
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
58
|
+
logger_1.logger.info(context, `Send ${context.name}`);
|
|
59
|
+
}
|
|
60
|
+
(_b = this.webSocket$) === null || _b === void 0 ? void 0 : _b.next(types_1.MotionMasterMessage.encode(message).finish());
|
|
61
|
+
}
|
|
62
|
+
createWebSocket(url, pingSystemInterval = 250) {
|
|
63
|
+
const webSocketConfig = {
|
|
64
|
+
binaryType: 'arraybuffer',
|
|
65
|
+
closeObserver: {
|
|
66
|
+
next: (ev) => {
|
|
67
|
+
var _a;
|
|
68
|
+
(_a = this.pingSystemSubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
|
|
69
|
+
clearTimeout(this.aliveTimeoutId);
|
|
70
|
+
this.alive$.next(false);
|
|
71
|
+
this.opened$.next(false);
|
|
72
|
+
this.close$.next({ code: ev.code, reason: ev.reason });
|
|
73
|
+
logger_1.logger.info(`Connection closed ${url}`);
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
deserializer: (e) => new Uint8Array(e.data),
|
|
77
|
+
openObserver: {
|
|
78
|
+
next: () => {
|
|
79
|
+
this.pingSystemSubscription = (0, rxjs_1.interval)(pingSystemInterval).subscribe(this.pingSystemObserver);
|
|
80
|
+
this.opened$.next(true);
|
|
81
|
+
logger_1.logger.info(`Connection opened ${url}`);
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
serializer: (value) => value,
|
|
85
|
+
url,
|
|
86
|
+
};
|
|
87
|
+
return (0, webSocket_1.webSocket)(webSocketConfig);
|
|
88
|
+
}
|
|
89
|
+
keepalive(systemAliveTimeout = 1000) {
|
|
90
|
+
if (this.alive$.getValue() === false) {
|
|
91
|
+
this.alive$.next(true);
|
|
92
|
+
}
|
|
93
|
+
clearTimeout(this.aliveTimeoutId);
|
|
94
|
+
this.aliveTimeoutId = setTimeout(() => this.alive$.next(false), systemAliveTimeout);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
exports.MotionMasterReqResWebSocket = MotionMasterReqResWebSocket;
|
|
98
98
|
//# sourceMappingURL=motion-master-req-res-web-socket.js.map
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
import { BehaviorSubject, Subject } from "rxjs";
|
|
2
|
-
import { MotionMasterReqResSocket } from "./motion-master-req-res-socket";
|
|
3
|
-
import { IMotionMasterMessage } from "./types";
|
|
4
|
-
export declare class MotionMasterReqResWorkerSocket implements MotionMasterReqResSocket {
|
|
5
|
-
readonly worker: Worker;
|
|
6
|
-
readonly opened$: BehaviorSubject<boolean>;
|
|
7
|
-
readonly close$: Subject<{
|
|
8
|
-
code: number;
|
|
9
|
-
reason: string;
|
|
10
|
-
}>;
|
|
11
|
-
readonly alive$: BehaviorSubject<boolean>;
|
|
12
|
-
readonly message$: Subject<IMotionMasterMessage>;
|
|
13
|
-
private _url?;
|
|
14
|
-
private _pingSystemInterval?;
|
|
15
|
-
private _systemAliveTimeout?;
|
|
16
|
-
constructor(worker: Worker);
|
|
17
|
-
get url(): string | undefined;
|
|
18
|
-
get pingSystemInterval(): number | undefined;
|
|
19
|
-
get systemAliveTimeout(): number | undefined;
|
|
20
|
-
open(url: string, pingSystemInterval?: number, systemAliveTimeout?: number): void;
|
|
21
|
-
reopen(): void;
|
|
22
|
-
close(): void;
|
|
23
|
-
send(message: IMotionMasterMessage): void;
|
|
24
|
-
}
|
|
1
|
+
import { BehaviorSubject, Subject } from "rxjs";
|
|
2
|
+
import { MotionMasterReqResSocket } from "./motion-master-req-res-socket";
|
|
3
|
+
import { IMotionMasterMessage } from "./types";
|
|
4
|
+
export declare class MotionMasterReqResWorkerSocket implements MotionMasterReqResSocket {
|
|
5
|
+
readonly worker: Worker;
|
|
6
|
+
readonly opened$: BehaviorSubject<boolean>;
|
|
7
|
+
readonly close$: Subject<{
|
|
8
|
+
code: number;
|
|
9
|
+
reason: string;
|
|
10
|
+
}>;
|
|
11
|
+
readonly alive$: BehaviorSubject<boolean>;
|
|
12
|
+
readonly message$: Subject<IMotionMasterMessage>;
|
|
13
|
+
private _url?;
|
|
14
|
+
private _pingSystemInterval?;
|
|
15
|
+
private _systemAliveTimeout?;
|
|
16
|
+
constructor(worker: Worker);
|
|
17
|
+
get url(): string | undefined;
|
|
18
|
+
get pingSystemInterval(): number | undefined;
|
|
19
|
+
get systemAliveTimeout(): number | undefined;
|
|
20
|
+
open(url: string, pingSystemInterval?: number, systemAliveTimeout?: number): void;
|
|
21
|
+
reopen(): void;
|
|
22
|
+
close(): void;
|
|
23
|
+
send(message: IMotionMasterMessage): void;
|
|
24
|
+
}
|
|
@@ -1,72 +1,72 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MotionMasterReqResWorkerSocket = void 0;
|
|
4
|
-
const rxjs_1 = require("rxjs");
|
|
5
|
-
const logger_1 = require("./logger");
|
|
6
|
-
const util_1 = require("./util");
|
|
7
|
-
class MotionMasterReqResWorkerSocket {
|
|
8
|
-
constructor(worker) {
|
|
9
|
-
this.worker = worker;
|
|
10
|
-
this.opened$ = new rxjs_1.BehaviorSubject(false);
|
|
11
|
-
this.close$ = new rxjs_1.Subject();
|
|
12
|
-
this.alive$ = new rxjs_1.BehaviorSubject(false);
|
|
13
|
-
this.message$ = new rxjs_1.Subject();
|
|
14
|
-
}
|
|
15
|
-
get url() {
|
|
16
|
-
return this._url;
|
|
17
|
-
}
|
|
18
|
-
get pingSystemInterval() {
|
|
19
|
-
return this._pingSystemInterval;
|
|
20
|
-
}
|
|
21
|
-
get systemAliveTimeout() {
|
|
22
|
-
return this._systemAliveTimeout;
|
|
23
|
-
}
|
|
24
|
-
open(url, pingSystemInterval = 250, systemAliveTimeout = 1000) {
|
|
25
|
-
this._url = url;
|
|
26
|
-
this._pingSystemInterval = pingSystemInterval;
|
|
27
|
-
this._systemAliveTimeout = systemAliveTimeout;
|
|
28
|
-
this.worker.onmessage = ({ data }) => {
|
|
29
|
-
if ('opened' in data) {
|
|
30
|
-
const { opened } = data;
|
|
31
|
-
this.opened$.next(opened);
|
|
32
|
-
logger_1.logger.info(opened ? `Opened req/res ð ${url}` : `Closed req/res ð ${url}`);
|
|
33
|
-
}
|
|
34
|
-
else if ('alive' in data) {
|
|
35
|
-
const { alive } = data;
|
|
36
|
-
this.alive$.next(alive);
|
|
37
|
-
logger_1.logger.info(alive ? `System is alive ð` : 'System is as dead as ðĶĪ');
|
|
38
|
-
}
|
|
39
|
-
else if ('message' in data) {
|
|
40
|
-
const { message } = data;
|
|
41
|
-
const context = (0, util_1.convertMotionMasterMessageToLoggerContext)(message);
|
|
42
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
43
|
-
logger_1.logger.info(context, `Received ${context.name}`);
|
|
44
|
-
this.message$.next(message);
|
|
45
|
-
}
|
|
46
|
-
else if ('close' in data) {
|
|
47
|
-
const { close } = data;
|
|
48
|
-
this.close$.next(close);
|
|
49
|
-
logger_1.logger.info(`Close event received on req/res ð ${url} ${JSON.stringify(close)}`);
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
this.worker.postMessage({
|
|
53
|
-
open: { url, pingSystemInterval, systemAliveTimeout },
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
reopen() {
|
|
57
|
-
if (this.url && this.opened$.value === false) {
|
|
58
|
-
this.open(this.url, this.pingSystemInterval, this.systemAliveTimeout);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
close() {
|
|
62
|
-
this.worker.postMessage({ close: true });
|
|
63
|
-
}
|
|
64
|
-
send(message) {
|
|
65
|
-
const context = (0, util_1.convertMotionMasterMessageToLoggerContext)(message);
|
|
66
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
67
|
-
logger_1.logger.info(context, `Send ${context.name}`);
|
|
68
|
-
this.worker.postMessage({ message });
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
exports.MotionMasterReqResWorkerSocket = MotionMasterReqResWorkerSocket;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MotionMasterReqResWorkerSocket = void 0;
|
|
4
|
+
const rxjs_1 = require("rxjs");
|
|
5
|
+
const logger_1 = require("./logger");
|
|
6
|
+
const util_1 = require("./util");
|
|
7
|
+
class MotionMasterReqResWorkerSocket {
|
|
8
|
+
constructor(worker) {
|
|
9
|
+
this.worker = worker;
|
|
10
|
+
this.opened$ = new rxjs_1.BehaviorSubject(false);
|
|
11
|
+
this.close$ = new rxjs_1.Subject();
|
|
12
|
+
this.alive$ = new rxjs_1.BehaviorSubject(false);
|
|
13
|
+
this.message$ = new rxjs_1.Subject();
|
|
14
|
+
}
|
|
15
|
+
get url() {
|
|
16
|
+
return this._url;
|
|
17
|
+
}
|
|
18
|
+
get pingSystemInterval() {
|
|
19
|
+
return this._pingSystemInterval;
|
|
20
|
+
}
|
|
21
|
+
get systemAliveTimeout() {
|
|
22
|
+
return this._systemAliveTimeout;
|
|
23
|
+
}
|
|
24
|
+
open(url, pingSystemInterval = 250, systemAliveTimeout = 1000) {
|
|
25
|
+
this._url = url;
|
|
26
|
+
this._pingSystemInterval = pingSystemInterval;
|
|
27
|
+
this._systemAliveTimeout = systemAliveTimeout;
|
|
28
|
+
this.worker.onmessage = ({ data }) => {
|
|
29
|
+
if ('opened' in data) {
|
|
30
|
+
const { opened } = data;
|
|
31
|
+
this.opened$.next(opened);
|
|
32
|
+
logger_1.logger.info(opened ? `Opened req/res ð ${url}` : `Closed req/res ð ${url}`);
|
|
33
|
+
}
|
|
34
|
+
else if ('alive' in data) {
|
|
35
|
+
const { alive } = data;
|
|
36
|
+
this.alive$.next(alive);
|
|
37
|
+
logger_1.logger.info(alive ? `System is alive ð` : 'System is as dead as ðĶĪ');
|
|
38
|
+
}
|
|
39
|
+
else if ('message' in data) {
|
|
40
|
+
const { message } = data;
|
|
41
|
+
const context = (0, util_1.convertMotionMasterMessageToLoggerContext)(message);
|
|
42
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
43
|
+
logger_1.logger.info(context, `Received ${context.name}`);
|
|
44
|
+
this.message$.next(message);
|
|
45
|
+
}
|
|
46
|
+
else if ('close' in data) {
|
|
47
|
+
const { close } = data;
|
|
48
|
+
this.close$.next(close);
|
|
49
|
+
logger_1.logger.info(`Close event received on req/res ð ${url} ${JSON.stringify(close)}`);
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
this.worker.postMessage({
|
|
53
|
+
open: { url, pingSystemInterval, systemAliveTimeout },
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
reopen() {
|
|
57
|
+
if (this.url && this.opened$.value === false) {
|
|
58
|
+
this.open(this.url, this.pingSystemInterval, this.systemAliveTimeout);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
close() {
|
|
62
|
+
this.worker.postMessage({ close: true });
|
|
63
|
+
}
|
|
64
|
+
send(message) {
|
|
65
|
+
const context = (0, util_1.convertMotionMasterMessageToLoggerContext)(message);
|
|
66
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
67
|
+
logger_1.logger.info(context, `Send ${context.name}`);
|
|
68
|
+
this.worker.postMessage({ message });
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
exports.MotionMasterReqResWorkerSocket = MotionMasterReqResWorkerSocket;
|
|
72
72
|
//# sourceMappingURL=motion-master-req-res-worker-socket.js.map
|