Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 | 25x 25x 25x 22x 22x 250x 50x 5x 3x 2x 2x 3x 3x 5x 1x 39x 39x 11x 11x 9x 11x 27x 27x 27x 27x 89x 89x 74x 15x 327x 35x 4x 31x 66x 4x 62x 179x 4x 175x 28x 4x 24x 17x 4x 13x 25x | "use strict";
/*! Copyright (c) 2021 Siemens AG. Licensed under the MIT License. */
Object.defineProperty(exports, "__esModule", { value: true });
exports.MasterControlClient = void 0;
const __1 = require("..");
class MasterControlClient extends __1.Client {
constructor() {
super(...arguments);
this._connectionStates = new __1.AgvIdMap();
}
publish(topic, subject, object, options) {
return this.publishTopic(topic, subject, object, options);
}
subscribe(topic, subject, handler) {
return this.subscribeTopic(topic, subject, handler);
}
trackAgvs(handler) {
if (!this._trackHandler) {
this._trackHandler = handler;
}
else {
const previousHandler = this._trackHandler;
this._trackHandler = (subject, state, timestamp) => {
previousHandler(subject, state, timestamp);
handler(subject, state, timestamp);
};
}
for (const [agvId, connection] of this._connectionStates) {
handler(agvId, connection.connectionState, connection.timestamp);
}
}
getTrackedState(subject) {
const conn = this._connectionStates.get(subject);
return conn ? { state: conn.connectionState, timestamp: conn.timestamp } : undefined;
}
getTrackedStates() {
const states = [];
for (const [agvId, conn] of this._connectionStates) {
states.push({ subject: agvId, state: conn.connectionState, timestamp: conn.timestamp });
}
return states;
}
reset() {
super.reset();
this._connectionStates.clear();
this._trackHandler = undefined;
}
async onStarted() {
await this.subscribeTopic(__1.Topic.Connection, {}, (connection, agvId) => {
this._connectionStates.set(agvId, connection);
if (!this._trackHandler) {
return;
}
this._trackHandler(agvId, connection.connectionState, connection.timestamp);
});
}
validateTopicDirection(topic, asInbound) {
switch (topic) {
case __1.Topic.Connection:
if (!asInbound) {
throw new TypeError("Outbound connection message not compatible with MasterControlClient");
}
break;
case __1.Topic.Factsheet:
if (!asInbound) {
throw new TypeError("Outbound factsheet message not compatible with MasterControlClient");
}
break;
case __1.Topic.InstantActions:
if (asInbound) {
throw new TypeError("Inbound instantActions message not compatible with MasterControlClient");
}
break;
case __1.Topic.Order:
if (asInbound) {
throw new TypeError("Inbound order message not compatible with MasterControlClient");
}
break;
case __1.Topic.State:
if (!asInbound) {
throw new TypeError("Outbound state message not compatible with MasterControlClient");
}
break;
case __1.Topic.Visualization:
if (!asInbound) {
throw new TypeError("Outbound visualization message not compatible with MasterControlClient");
}
break;
}
}
}
exports.MasterControlClient = MasterControlClient;
|