@robotical/webapp-types 0.6.58
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/application-manager.ts +20 -0
- package/dist-types/src/analytics/AnalyticsManager.d.ts +28 -0
- package/dist-types/src/analytics/AnalyticsManager.js +171 -0
- package/dist-types/src/application/ApplicationManager/ApplicationManager.d.ts +117 -0
- package/dist-types/src/application/ApplicationManager/ApplicationManager.js +567 -0
- package/dist-types/src/application/RAFTs/Cog/Cog.d.ts +50 -0
- package/dist-types/src/application/RAFTs/Cog/Cog.js +223 -0
- package/dist-types/src/application/RAFTs/Cog/PublishedDataAnalyser.d.ts +120 -0
- package/dist-types/src/application/RAFTs/Cog/PublishedDataAnalyser.js +533 -0
- package/dist-types/src/application/RAFTs/Marty/Marty.d.ts +42 -0
- package/dist-types/src/application/RAFTs/Marty/Marty.js +187 -0
- package/dist-types/src/application/RAFTs/RAFT.d.ts +114 -0
- package/dist-types/src/application/RAFTs/RAFT.js +341 -0
- package/dist-types/src/application/RAFTs/RAFTInterface.d.ts +13 -0
- package/dist-types/src/application/RAFTs/RAFTInterface.js +6 -0
- package/dist-types/src/application/RAFTs/RaftObserver.d.ts +10 -0
- package/dist-types/src/application/RAFTs/RaftObserver.js +1 -0
- package/dist-types/src/application/RAFTs/raft-subscription-helpers.d.ts +63 -0
- package/dist-types/src/application/RAFTs/raft-subscription-helpers.js +355 -0
- package/dist-types/src/application/communicators/SelfdestructiveMessagePromise.d.ts +10 -0
- package/dist-types/src/application/communicators/SelfdestructiveMessagePromise.js +31 -0
- package/dist-types/src/application/communicators/WrapperCommunicator.d.ts +24 -0
- package/dist-types/src/application/communicators/WrapperCommunicator.js +137 -0
- package/dist-types/src/components/disposables/LoadingSpinner/index.d.ts +7 -0
- package/dist-types/src/components/disposables/LoadingSpinner/index.js +29 -0
- package/dist-types/src/components/disposables/buttons/SVGImageButton/index.d.ts +14 -0
- package/dist-types/src/components/disposables/buttons/SVGImageButton/index.js +19 -0
- package/dist-types/src/components/disposables/buttons/SimpleButton/index.d.ts +14 -0
- package/dist-types/src/components/disposables/buttons/SimpleButton/index.js +18 -0
- package/dist-types/src/components/modals/ SensorsDashboardModal/index.d.ts +2 -0
- package/dist-types/src/components/modals/ SensorsDashboardModal/index.js +61 -0
- package/dist-types/src/components/modals/ConnectingLoadingSpinnerModal/index.d.ts +3 -0
- package/dist-types/src/components/modals/ConnectingLoadingSpinnerModal/index.js +16 -0
- package/dist-types/src/components/modals/DetailedFeedbackModal/index.d.ts +5 -0
- package/dist-types/src/components/modals/DetailedFeedbackModal/index.js +37 -0
- package/dist-types/src/components/modals/DisconnectConfirmation/index.d.ts +1 -0
- package/dist-types/src/components/modals/DisconnectConfirmation/index.js +8 -0
- package/dist-types/src/components/modals/DisconnectConfirmation/styles.d.ts +1 -0
- package/dist-types/src/components/modals/DisconnectConfirmation/styles.js +7 -0
- package/dist-types/src/components/modals/InUnplugged/index.d.ts +1 -0
- package/dist-types/src/components/modals/InUnplugged/index.js +12 -0
- package/dist-types/src/components/modals/InUnplugged/styles.d.ts +5 -0
- package/dist-types/src/components/modals/InUnplugged/styles.js +11 -0
- package/dist-types/src/components/modals/VerificationModal/index.d.ts +6 -0
- package/dist-types/src/components/modals/VerificationModal/index.js +124 -0
- package/dist-types/src/components/modals/VerificationModalPhoneApp/index.d.ts +6 -0
- package/dist-types/src/components/modals/VerificationModalPhoneApp/index.js +195 -0
- package/dist-types/src/components/oneoffs/LEDs/index.d.ts +8 -0
- package/dist-types/src/components/oneoffs/LEDs/index.js +39 -0
- package/dist-types/src/components/oneoffs/RaftSignal/index.d.ts +7 -0
- package/dist-types/src/components/oneoffs/RaftSignal/index.js +29 -0
- package/dist-types/src/services/logger/Logger.d.ts +8 -0
- package/dist-types/src/services/logger/Logger.js +25 -0
- package/dist-types/src/state-observables/modal/DraggableModalState.d.ts +16 -0
- package/dist-types/src/state-observables/modal/DraggableModalState.js +52 -0
- package/dist-types/src/state-observables/modal/ModalObserver.d.ts +18 -0
- package/dist-types/src/state-observables/modal/ModalObserver.js +1 -0
- package/dist-types/src/state-observables/modal/ModalState.d.ts +25 -0
- package/dist-types/src/state-observables/modal/ModalState.js +71 -0
- package/dist-types/src/store/SelectedRaftContext.d.ts +19 -0
- package/dist-types/src/store/SelectedRaftContext.js +84 -0
- package/dist-types/src/styles/colors.d.ts +35 -0
- package/dist-types/src/styles/colors.js +42 -0
- package/dist-types/src/types/communication-between-apps/wrapper-communication.d.ts +48 -0
- package/dist-types/src/types/communication-between-apps/wrapper-communication.js +28 -0
- package/dist-types/src/types/events/raft-info.d.ts +10 -0
- package/dist-types/src/types/events/raft-info.js +11 -0
- package/dist-types/src/types/phone-app-communicator.d.ts +20 -0
- package/dist-types/src/types/phone-app-communicator.js +5 -0
- package/dist-types/src/types/raft.d.ts +18 -0
- package/dist-types/src/types/raft.js +14 -0
- package/dist-types/src/utils/Toaster.d.ts +13 -0
- package/dist-types/src/utils/Toaster.js +38 -0
- package/dist-types/src/utils/helpers/compare-version.d.ts +2 -0
- package/dist-types/src/utils/helpers/compare-version.js +19 -0
- package/dist-types/src/utils/helpers/randomHashGenerator.d.ts +1 -0
- package/dist-types/src/utils/helpers/randomHashGenerator.js +10 -0
- package/dist-types/src/utils/helpers/rescale-range.d.ts +2 -0
- package/dist-types/src/utils/helpers/rescale-range.js +4 -0
- package/dist-types/src/utils/helpers/wifi-configuration-subtitle-gen.d.ts +3 -0
- package/dist-types/src/utils/helpers/wifi-configuration-subtitle-gen.js +34 -0
- package/dist-types/src/utils/phone-app-communication/is-phone-app.d.ts +5 -0
- package/dist-types/src/utils/phone-app-communication/is-phone-app.js +7 -0
- package/dist-types/src/wrapper-app/WrapperAppManager.d.ts +58 -0
- package/dist-types/src/wrapper-app/WrapperAppManager.js +176 -0
- package/dist-types/src/wrapper-app/communicators/WebAppCommunicator.d.ts +24 -0
- package/dist-types/src/wrapper-app/communicators/WebAppCommunicator.js +243 -0
- package/dist-types/src/wrapper-app/connectors/CogConnector/CogConnector.d.ts +40 -0
- package/dist-types/src/wrapper-app/connectors/CogConnector/CogConnector.js +209 -0
- package/dist-types/src/wrapper-app/connectors/Connector.d.ts +72 -0
- package/dist-types/src/wrapper-app/connectors/Connector.js +314 -0
- package/dist-types/src/wrapper-app/connectors/ConnectorFactory.d.ts +15 -0
- package/dist-types/src/wrapper-app/connectors/ConnectorFactory.js +99 -0
- package/dist-types/src/wrapper-app/connectors/ConnectorInterface.d.ts +10 -0
- package/dist-types/src/wrapper-app/connectors/ConnectorInterface.js +6 -0
- package/dist-types/src/wrapper-app/connectors/MartyConnector/MartyConnector.d.ts +40 -0
- package/dist-types/src/wrapper-app/connectors/MartyConnector/MartyConnector.js +243 -0
- package/dist-types/types-package/application-manager.d.ts +17 -0
- package/dist-types/types-package/application-manager.js +5 -0
- package/package.json +13 -0
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
11
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
12
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
13
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
|
+
function step(op) {
|
|
15
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
16
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
17
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
18
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
19
|
+
switch (op[0]) {
|
|
20
|
+
case 0: case 1: t = op; break;
|
|
21
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
22
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
23
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
24
|
+
default:
|
|
25
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
26
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
27
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
28
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
29
|
+
if (t[2]) _.ops.pop();
|
|
30
|
+
_.trys.pop(); continue;
|
|
31
|
+
}
|
|
32
|
+
op = body.call(thisArg, _);
|
|
33
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
34
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
import { RaftInfoEvents } from "../../types/events/raft-info";
|
|
38
|
+
import { WrapperSentMessage } from "../../types/communication-between-apps/wrapper-communication";
|
|
39
|
+
import Logger from "../../services/logger/Logger";
|
|
40
|
+
import { RaftTypeE } from "../../types/raft";
|
|
41
|
+
import { RaftConnEvent, RaftUpdateEvent, } from "@robotical/raftjs";
|
|
42
|
+
var SHOW_LOGS = true;
|
|
43
|
+
var TAG = "Connector";
|
|
44
|
+
var Connector = /** @class */ (function () {
|
|
45
|
+
function Connector(id, connManager) {
|
|
46
|
+
var _this = this;
|
|
47
|
+
this.id = id;
|
|
48
|
+
this.type = RaftTypeE.undefined;
|
|
49
|
+
// RAFT
|
|
50
|
+
// Observers
|
|
51
|
+
this._observers = {};
|
|
52
|
+
this.connManager = connManager;
|
|
53
|
+
// Set the listener function
|
|
54
|
+
// Subscribe to connManager events
|
|
55
|
+
this.connManager.setConnectionEventListener(function (eventType, eventEnum, eventName, eventData) {
|
|
56
|
+
if (eventType === "pub") {
|
|
57
|
+
// if it's a pub event, we are publishing it from _pubEventHandler method (in child classes)
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
Logger.info(SHOW_LOGS, TAG, "eventType: ".concat(eventType, " eventEnum: ").concat(eventEnum, " eventName: ").concat(eventName, " eventData: ").concat(eventData));
|
|
61
|
+
_this.publish(eventType, eventEnum, eventName, eventData);
|
|
62
|
+
}
|
|
63
|
+
_this.eventHandler(eventType, eventEnum, eventName, eventData);
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Connect to a RAFT after having found the RAFT type
|
|
68
|
+
*/
|
|
69
|
+
Connector.prototype.connect = function () {
|
|
70
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
71
|
+
return __generator(this, function (_a) {
|
|
72
|
+
throw new Error("Method should be implemented in child class");
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* Get connected raft info
|
|
78
|
+
*/
|
|
79
|
+
Connector.prototype.getSystemInfo = function () {
|
|
80
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
81
|
+
return __generator(this, function (_a) {
|
|
82
|
+
return [2 /*return*/, this.connManager.getConnector().getRaftSystemUtils().getSystemInfo()];
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* Gets the RAFT name
|
|
88
|
+
*/
|
|
89
|
+
Connector.prototype.getRaftName = function () {
|
|
90
|
+
var _a;
|
|
91
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
92
|
+
return __generator(this, function (_b) {
|
|
93
|
+
return [2 /*return*/, ((_a = this.connManager.getConnector().getRaftSystemUtils().getFriendlyName()) === null || _a === void 0 ? void 0 : _a.friendlyName) || ""];
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
};
|
|
97
|
+
/**
|
|
98
|
+
* Send a REST message to the RAFT
|
|
99
|
+
*/
|
|
100
|
+
Connector.prototype.sendRestMessage = function (msg, params) {
|
|
101
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
102
|
+
return __generator(this, function (_a) {
|
|
103
|
+
return [2 /*return*/, this.connManager.getConnector().sendRICRESTMsg(msg, params || {})];
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
};
|
|
107
|
+
/**
|
|
108
|
+
* Verify correct RAFT is selected
|
|
109
|
+
*/
|
|
110
|
+
Connector.prototype.verifyRaft = function (ledLcdColours) {
|
|
111
|
+
var _a;
|
|
112
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
113
|
+
var msgHandler, onConnEvent, isConnectedFn;
|
|
114
|
+
return __generator(this, function (_b) {
|
|
115
|
+
msgHandler = this.connManager.getConnector().getRaftSystemUtils().getMsgHandler();
|
|
116
|
+
onConnEvent = this.connManager.getConnector().onConnEvent.bind(this.connManager.getConnector());
|
|
117
|
+
isConnectedFn = this.connManager.isConnected.bind(this.connManager);
|
|
118
|
+
return [2 /*return*/, (_a = this.connManager.getConnector().getSystemType()) === null || _a === void 0 ? void 0 : _a.getLEDPatternChecker().checkCorrectRICStart(ledLcdColours, msgHandler, onConnEvent, isConnectedFn)];
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
};
|
|
122
|
+
/**
|
|
123
|
+
* Disconnect from a RAFT
|
|
124
|
+
*/
|
|
125
|
+
Connector.prototype.disconnect = function () {
|
|
126
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
127
|
+
return __generator(this, function (_a) {
|
|
128
|
+
switch (_a.label) {
|
|
129
|
+
case 0:
|
|
130
|
+
// this.sendRestMessage('blerestart');
|
|
131
|
+
return [4 /*yield*/, this.connManager.disconnect()];
|
|
132
|
+
case 1:
|
|
133
|
+
// this.sendRestMessage('blerestart');
|
|
134
|
+
_a.sent();
|
|
135
|
+
return [2 /*return*/, true];
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
});
|
|
139
|
+
};
|
|
140
|
+
/**
|
|
141
|
+
* Stop verifying RAFT
|
|
142
|
+
* @param confirmCorrectRIC - indicates if the correct RAFT was selected (user input)
|
|
143
|
+
*/
|
|
144
|
+
Connector.prototype.stopVerifyingRaft = function (confirmCorrectRIC) {
|
|
145
|
+
var _a;
|
|
146
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
147
|
+
return __generator(this, function (_b) {
|
|
148
|
+
if (confirmCorrectRIC) {
|
|
149
|
+
// successful connection to RAFT
|
|
150
|
+
// const ricSystem = this.connManager.getConnector().getRICSystem();
|
|
151
|
+
// await ricSystem.getRICSystemInfo(true);
|
|
152
|
+
// this.publish("conn", RaftInfoEvents.SYSTEM_INFO, "SystemInfo", systemInfo);
|
|
153
|
+
// this.publish("conn", RaftInfoEvents.MARTY_VERSION, "MartyVersion", systemInfo.SystemVersion);
|
|
154
|
+
// this.publish("conn", RaftInfoEvents.MARTY_SERIAL_NO, "MartySerialNo", systemInfo.SerialNo);
|
|
155
|
+
// this.publish("conn", RaftInfoEvents.MARTY_IS_VERIFIED, "MartyIsVerified", true);
|
|
156
|
+
// this.analytics_RobotStartSession(systemInfo); TODO: respond to the systemInfo event and call this function
|
|
157
|
+
// this.isVerified = true; TODO: this event should be published from RICJS, listen for it in the front-end
|
|
158
|
+
// const serialNo = systemInfo.SerialNo!;
|
|
159
|
+
// TODO: respond to the MartySerialNo event and call this block
|
|
160
|
+
// const isSerialNoRegisteredInWarranty = await isSerialNumberRegistered(serialNo);
|
|
161
|
+
// const dbManager = DatabaseManager.getInstance();
|
|
162
|
+
// dbManager.isSerialNoRegisteredInWarranty = isSerialNoRegisteredInWarranty;
|
|
163
|
+
// this.isSerialNoRegisteredInWarranty = isSerialNoRegisteredInWarranty;
|
|
164
|
+
// if (isSerialNoRegisteredInWarranty) {
|
|
165
|
+
// addMartyNameToSerialNumber(serialNo, this.RICFriendlyName);
|
|
166
|
+
// }
|
|
167
|
+
// store ble conn performance
|
|
168
|
+
// as promise because we don't want to wait for it to finish
|
|
169
|
+
// Promise.resolve().then(async () => {
|
|
170
|
+
// const bleConnPerf = await this.connManager.getConnector().checkConnPerformance();
|
|
171
|
+
// const dbManager = DatabaseManager.getInstance();
|
|
172
|
+
// const appDb = await dbManager.initializeOrGetDatabase(DatabaseEnum.APP, DatabaseEnum.APP) as AppDatabase;
|
|
173
|
+
// bleConnPerf && appDb.storeBlePerformance(bleConnPerf);
|
|
174
|
+
// this.soundStreamingStats.configureSoundStreamingForRobot(systemInfo, bleConnPerf);
|
|
175
|
+
// });
|
|
176
|
+
}
|
|
177
|
+
return [2 /*return*/, (_a = this.connManager.getConnector().getSystemType()) === null || _a === void 0 ? void 0 : _a.getLEDPatternChecker().checkCorrectRICStop(confirmCorrectRIC)];
|
|
178
|
+
});
|
|
179
|
+
});
|
|
180
|
+
};
|
|
181
|
+
/**
|
|
182
|
+
* Audio streaming
|
|
183
|
+
*/
|
|
184
|
+
Connector.prototype.streamAudio = function (streamContents, clearExisting, duration) {
|
|
185
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
186
|
+
var streamContentsNewUint8Array;
|
|
187
|
+
return __generator(this, function (_a) {
|
|
188
|
+
streamContentsNewUint8Array = new Uint8Array(streamContents);
|
|
189
|
+
return [2 /*return*/, this.connManager.getConnector().streamAudio(streamContentsNewUint8Array, clearExisting, duration)];
|
|
190
|
+
});
|
|
191
|
+
});
|
|
192
|
+
};
|
|
193
|
+
/**
|
|
194
|
+
* Publish an event to all observers
|
|
195
|
+
* Set in RICConnector as an event listener callback
|
|
196
|
+
*/
|
|
197
|
+
Connector.prototype.publish = function (eventType, eventEnum, eventName, eventData) {
|
|
198
|
+
if (eventType === "raftinfo") {
|
|
199
|
+
// should be handled from child class
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
window.WebAppCommunicator.sendMessageNoWait(WrapperSentMessage.RAFT_PUBLISHED_EVENT, { raftId: this.id, eventType: eventType, eventEnum: eventEnum, eventName: eventName, eventData: eventData });
|
|
203
|
+
if (this._observers.hasOwnProperty(eventType)) {
|
|
204
|
+
for (var _i = 0, _a = this._observers[eventType]; _i < _a.length; _i++) {
|
|
205
|
+
var observer = _a[_i];
|
|
206
|
+
observer.notify(eventType, eventEnum, eventName, eventData);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
};
|
|
210
|
+
/**
|
|
211
|
+
* Event handler
|
|
212
|
+
*/
|
|
213
|
+
Connector.prototype.eventHandler = function (eventType, eventEnum, eventName, data) {
|
|
214
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
215
|
+
return __generator(this, function (_a) {
|
|
216
|
+
switch (eventType) {
|
|
217
|
+
case "conn":
|
|
218
|
+
this._connectionEventHandler(eventEnum, eventName, data);
|
|
219
|
+
break;
|
|
220
|
+
case "update":
|
|
221
|
+
this._updateEventHandler(eventEnum, eventName, data);
|
|
222
|
+
break;
|
|
223
|
+
case "pub":
|
|
224
|
+
this._pubEventHandler(eventEnum, eventName, data);
|
|
225
|
+
break;
|
|
226
|
+
default:
|
|
227
|
+
break;
|
|
228
|
+
}
|
|
229
|
+
return [2 /*return*/];
|
|
230
|
+
});
|
|
231
|
+
});
|
|
232
|
+
};
|
|
233
|
+
/**
|
|
234
|
+
* Connection Event Handler
|
|
235
|
+
* This handles the events that are the same for all RAFT systems (e.g., Marty, Cog, etc.)
|
|
236
|
+
* While the system-specific events are handled in the system-specific connectors
|
|
237
|
+
*/
|
|
238
|
+
Connector.prototype._connectionEventHandler = function (eventEnum, eventName, data) {
|
|
239
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
240
|
+
var _a, systemInfo, raftName, raftMsgHandler;
|
|
241
|
+
var _this = this;
|
|
242
|
+
return __generator(this, function (_b) {
|
|
243
|
+
switch (_b.label) {
|
|
244
|
+
case 0:
|
|
245
|
+
Logger.info(SHOW_LOGS, TAG, "Event: ".concat(eventEnum, " data: ").concat(data));
|
|
246
|
+
_a = eventEnum;
|
|
247
|
+
switch (_a) {
|
|
248
|
+
case RaftConnEvent.CONN_CONNECTED: return [3 /*break*/, 1];
|
|
249
|
+
case RaftConnEvent.CONN_VERIFIED_CORRECT: return [3 /*break*/, 6];
|
|
250
|
+
}
|
|
251
|
+
return [3 /*break*/, 7];
|
|
252
|
+
case 1:
|
|
253
|
+
systemInfo = this.connManager.getConnector().getRaftSystemUtils().getCachedSystemInfo();
|
|
254
|
+
if (!!systemInfo) return [3 /*break*/, 3];
|
|
255
|
+
return [4 /*yield*/, this.connManager.getConnector().getRaftSystemUtils().getSystemInfo()];
|
|
256
|
+
case 2:
|
|
257
|
+
systemInfo = _b.sent();
|
|
258
|
+
_b.label = 3;
|
|
259
|
+
case 3:
|
|
260
|
+
raftName = this.connManager.getConnector().getRaftSystemUtils().getCachedRaftName() || this.connManager.getConnector().getRaftSystemUtils().getFriendlyName();
|
|
261
|
+
if (!!raftName) return [3 /*break*/, 5];
|
|
262
|
+
return [4 /*yield*/, this.connManager.getConnector().getRaftSystemUtils().getRaftName()];
|
|
263
|
+
case 4:
|
|
264
|
+
raftName = _b.sent();
|
|
265
|
+
_b.label = 5;
|
|
266
|
+
case 5:
|
|
267
|
+
systemInfo.Friendly = raftName.friendlyName;
|
|
268
|
+
this.publish("raftinfo", RaftInfoEvents.SYSTEM_INFO, "SystemInfo", { systemInfo: systemInfo });
|
|
269
|
+
return [3 /*break*/, 8];
|
|
270
|
+
case 6:
|
|
271
|
+
raftMsgHandler = this.connManager.getConnector().getRaftMsgHandler();
|
|
272
|
+
raftMsgHandler.reportMsgCallbacksSet("notifyCB", function (report) { return _this.publish("msg", RaftInfoEvents.RAFT_MSG, "RICMsg", report); });
|
|
273
|
+
return [3 /*break*/, 8];
|
|
274
|
+
case 7: return [3 /*break*/, 8];
|
|
275
|
+
case 8: return [2 /*return*/];
|
|
276
|
+
}
|
|
277
|
+
});
|
|
278
|
+
});
|
|
279
|
+
};
|
|
280
|
+
/**
|
|
281
|
+
* Update Event Handler
|
|
282
|
+
*/
|
|
283
|
+
Connector.prototype._updateEventHandler = function (eventEnum, eventName, data) {
|
|
284
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
285
|
+
return __generator(this, function (_a) {
|
|
286
|
+
Logger.info(SHOW_LOGS, TAG, "Event: ".concat(eventEnum, " data: ").concat(data));
|
|
287
|
+
switch (eventEnum) {
|
|
288
|
+
case RaftUpdateEvent.UPDATE_APP_UPDATE_REQUIRED:
|
|
289
|
+
// do something
|
|
290
|
+
break;
|
|
291
|
+
default:
|
|
292
|
+
break;
|
|
293
|
+
}
|
|
294
|
+
return [2 /*return*/];
|
|
295
|
+
});
|
|
296
|
+
});
|
|
297
|
+
};
|
|
298
|
+
/**
|
|
299
|
+
* Pub Event Handler
|
|
300
|
+
*/
|
|
301
|
+
Connector.prototype._pubEventHandler = function (eventEnum, eventName, data) {
|
|
302
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
303
|
+
return __generator(this, function (_a) {
|
|
304
|
+
switch (eventEnum) {
|
|
305
|
+
default:
|
|
306
|
+
break;
|
|
307
|
+
}
|
|
308
|
+
return [2 /*return*/];
|
|
309
|
+
});
|
|
310
|
+
});
|
|
311
|
+
};
|
|
312
|
+
return Connector;
|
|
313
|
+
}());
|
|
314
|
+
export default Connector;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ConnManager } from "@robotical/roboticaljs";
|
|
2
|
+
import { RaftConnectionMethod } from "../../types/raft";
|
|
3
|
+
import Connector from "./Connector";
|
|
4
|
+
export default class ConnectorFactory {
|
|
5
|
+
/**
|
|
6
|
+
* Connect to a RAFT
|
|
7
|
+
*
|
|
8
|
+
* @param {string} method - can be "WebBLE" or "WebSocket"
|
|
9
|
+
* @param {string | object} locator - either a string (WebSocket URL) or an object (WebBLE)
|
|
10
|
+
* @returns Promise<ConnectionAttemptResults>
|
|
11
|
+
*
|
|
12
|
+
*/
|
|
13
|
+
static connectToRaftHelper(method: RaftConnectionMethod, uuids: string[]): Promise<Connector | null>;
|
|
14
|
+
static createConnector(raftType: string | undefined, connManager: ConnManager): Connector;
|
|
15
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
11
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
12
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
13
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
|
+
function step(op) {
|
|
15
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
16
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
17
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
18
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
19
|
+
switch (op[0]) {
|
|
20
|
+
case 0: case 1: t = op; break;
|
|
21
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
22
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
23
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
24
|
+
default:
|
|
25
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
26
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
27
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
28
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
29
|
+
if (t[2]) _.ops.pop();
|
|
30
|
+
_.trys.pop(); continue;
|
|
31
|
+
}
|
|
32
|
+
op = body.call(thisArg, _);
|
|
33
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
34
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
import { ConnManager } from "@robotical/roboticaljs";
|
|
38
|
+
import randomHashGenerator from "../../utils/helpers/randomHashGenerator";
|
|
39
|
+
import CogConnector from "./CogConnector/CogConnector";
|
|
40
|
+
import MartyConnector from "./MartyConnector/MartyConnector";
|
|
41
|
+
import Logger from "../../services/logger/Logger";
|
|
42
|
+
var SHOW_LOGS = true;
|
|
43
|
+
var TAG = "ConnectorFactory";
|
|
44
|
+
var ConnectorFactory = /** @class */ (function () {
|
|
45
|
+
function ConnectorFactory() {
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Connect to a RAFT
|
|
49
|
+
*
|
|
50
|
+
* @param {string} method - can be "WebBLE" or "WebSocket"
|
|
51
|
+
* @param {string | object} locator - either a string (WebSocket URL) or an object (WebBLE)
|
|
52
|
+
* @returns Promise<ConnectionAttemptResults>
|
|
53
|
+
*
|
|
54
|
+
*/
|
|
55
|
+
ConnectorFactory.connectToRaftHelper = function (method, uuids) {
|
|
56
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
57
|
+
var connManager, wasConnected, systemInfo, raftType, connector;
|
|
58
|
+
return __generator(this, function (_a) {
|
|
59
|
+
switch (_a.label) {
|
|
60
|
+
case 0:
|
|
61
|
+
connManager = new ConnManager();
|
|
62
|
+
Logger.info(SHOW_LOGS, TAG, "Connecting to RAFT with method: ".concat(method));
|
|
63
|
+
return [4 /*yield*/, connManager.connect(method, "", uuids)];
|
|
64
|
+
case 1:
|
|
65
|
+
wasConnected = _a.sent();
|
|
66
|
+
Logger.info(SHOW_LOGS, TAG, "Was connected to RAFT: ".concat(wasConnected));
|
|
67
|
+
if (!wasConnected) {
|
|
68
|
+
return [2 /*return*/, null];
|
|
69
|
+
}
|
|
70
|
+
systemInfo = connManager.getConnector().getRaftSystemUtils().getCachedSystemInfo();
|
|
71
|
+
raftType = systemInfo === null || systemInfo === void 0 ? void 0 : systemInfo.SystemName;
|
|
72
|
+
connector = this.createConnector(raftType, connManager);
|
|
73
|
+
return [2 /*return*/, connector];
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
};
|
|
78
|
+
ConnectorFactory.createConnector = function (raftType, connManager) {
|
|
79
|
+
var systemInfo = connManager.getConnector().getRaftSystemUtils().getCachedSystemInfo();
|
|
80
|
+
var serialNo = (systemInfo === null || systemInfo === void 0 ? void 0 : systemInfo.MAC) || (systemInfo === null || systemInfo === void 0 ? void 0 : systemInfo.SerialNo);
|
|
81
|
+
var connector;
|
|
82
|
+
var randomId = serialNo || randomHashGenerator();
|
|
83
|
+
switch (raftType) {
|
|
84
|
+
case "RIC":
|
|
85
|
+
connector = new MartyConnector(randomId, connManager);
|
|
86
|
+
break;
|
|
87
|
+
case "Cog":
|
|
88
|
+
connector = new CogConnector(randomId, connManager);
|
|
89
|
+
break;
|
|
90
|
+
case "Axiom":
|
|
91
|
+
throw new Error("Axiom not supported yet");
|
|
92
|
+
default:
|
|
93
|
+
throw new Error("Unknown RAFT type");
|
|
94
|
+
}
|
|
95
|
+
return connector;
|
|
96
|
+
};
|
|
97
|
+
return ConnectorFactory;
|
|
98
|
+
}());
|
|
99
|
+
export default ConnectorFactory;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { RaftConnEvent, RaftPublishEvent, RaftUpdateEvent } from "@robotical/raftjs";
|
|
2
|
+
import { ConnectionAttemptResults, RaftTypeE } from "../../types/raft";
|
|
3
|
+
import { RaftInfoEvents } from "../../types/events/raft-info";
|
|
4
|
+
import { RICLedLcdColours } from "@robotical/roboticaljs";
|
|
5
|
+
export default abstract class ConnectorInterface {
|
|
6
|
+
abstract type: RaftTypeE;
|
|
7
|
+
abstract eventHandler: (eventType: string, eventEnum: RaftConnEvent | RaftUpdateEvent | RaftPublishEvent | RaftInfoEvents, eventName: string, eventData: any) => void;
|
|
8
|
+
abstract verifyRaft(ledLcdColours: RICLedLcdColours): Promise<boolean>;
|
|
9
|
+
abstract connect(): Promise<ConnectionAttemptResults>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { RaftInfoEvents } from "../../../types/events/raft-info";
|
|
2
|
+
import { ConnectionAttemptResults, RaftTypeE } from "../../../types/raft";
|
|
3
|
+
import Connector from "../Connector";
|
|
4
|
+
import ConnectorInterface from "../ConnectorInterface";
|
|
5
|
+
import { RaftConnEvent, RaftUpdateEvent, RaftPublishEvent } from "@robotical/raftjs";
|
|
6
|
+
import { ConnManager } from "@robotical/roboticaljs";
|
|
7
|
+
declare class MartyConnector extends Connector implements ConnectorInterface {
|
|
8
|
+
type: RaftTypeE;
|
|
9
|
+
constructor(raftId: string, connManager: ConnManager);
|
|
10
|
+
/**
|
|
11
|
+
* Publish an event to all observers
|
|
12
|
+
* Set in RICConnector as an event listener callback
|
|
13
|
+
*/
|
|
14
|
+
publish(eventType: string, eventEnum: RaftConnEvent | RaftUpdateEvent | RaftPublishEvent | RaftInfoEvents, eventName: string, eventData: any): void;
|
|
15
|
+
/**
|
|
16
|
+
* Connect to a RAFT
|
|
17
|
+
*/
|
|
18
|
+
connect(): Promise<ConnectionAttemptResults>;
|
|
19
|
+
/**
|
|
20
|
+
* Disconnect from Marty
|
|
21
|
+
*/
|
|
22
|
+
disconnect(): Promise<boolean>;
|
|
23
|
+
/**
|
|
24
|
+
* Event handler
|
|
25
|
+
*/
|
|
26
|
+
eventHandler(eventType: string, eventEnum: RaftConnEvent | RaftUpdateEvent | RaftPublishEvent | RaftInfoEvents, eventName: string, data: any): Promise<void>;
|
|
27
|
+
/**
|
|
28
|
+
* Connection Event Handler
|
|
29
|
+
*/
|
|
30
|
+
connectionEventHandler(eventEnum: RaftConnEvent, eventName: string, data: any): Promise<void>;
|
|
31
|
+
/**
|
|
32
|
+
* Update Event Handler
|
|
33
|
+
*/
|
|
34
|
+
updateEventHandler(eventEnum: RaftUpdateEvent, eventName: string, data: any): Promise<void>;
|
|
35
|
+
/**
|
|
36
|
+
* Pub Event Handler
|
|
37
|
+
*/
|
|
38
|
+
pubEventHandler(eventEnum: RaftPublishEvent, eventName: string, data: any): Promise<void>;
|
|
39
|
+
}
|
|
40
|
+
export default MartyConnector;
|