@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.
Files changed (100) hide show
  1. package/application-manager.ts +20 -0
  2. package/dist-types/src/analytics/AnalyticsManager.d.ts +28 -0
  3. package/dist-types/src/analytics/AnalyticsManager.js +171 -0
  4. package/dist-types/src/application/ApplicationManager/ApplicationManager.d.ts +117 -0
  5. package/dist-types/src/application/ApplicationManager/ApplicationManager.js +567 -0
  6. package/dist-types/src/application/RAFTs/Cog/Cog.d.ts +50 -0
  7. package/dist-types/src/application/RAFTs/Cog/Cog.js +223 -0
  8. package/dist-types/src/application/RAFTs/Cog/PublishedDataAnalyser.d.ts +120 -0
  9. package/dist-types/src/application/RAFTs/Cog/PublishedDataAnalyser.js +533 -0
  10. package/dist-types/src/application/RAFTs/Marty/Marty.d.ts +42 -0
  11. package/dist-types/src/application/RAFTs/Marty/Marty.js +187 -0
  12. package/dist-types/src/application/RAFTs/RAFT.d.ts +114 -0
  13. package/dist-types/src/application/RAFTs/RAFT.js +341 -0
  14. package/dist-types/src/application/RAFTs/RAFTInterface.d.ts +13 -0
  15. package/dist-types/src/application/RAFTs/RAFTInterface.js +6 -0
  16. package/dist-types/src/application/RAFTs/RaftObserver.d.ts +10 -0
  17. package/dist-types/src/application/RAFTs/RaftObserver.js +1 -0
  18. package/dist-types/src/application/RAFTs/raft-subscription-helpers.d.ts +63 -0
  19. package/dist-types/src/application/RAFTs/raft-subscription-helpers.js +355 -0
  20. package/dist-types/src/application/communicators/SelfdestructiveMessagePromise.d.ts +10 -0
  21. package/dist-types/src/application/communicators/SelfdestructiveMessagePromise.js +31 -0
  22. package/dist-types/src/application/communicators/WrapperCommunicator.d.ts +24 -0
  23. package/dist-types/src/application/communicators/WrapperCommunicator.js +137 -0
  24. package/dist-types/src/components/disposables/LoadingSpinner/index.d.ts +7 -0
  25. package/dist-types/src/components/disposables/LoadingSpinner/index.js +29 -0
  26. package/dist-types/src/components/disposables/buttons/SVGImageButton/index.d.ts +14 -0
  27. package/dist-types/src/components/disposables/buttons/SVGImageButton/index.js +19 -0
  28. package/dist-types/src/components/disposables/buttons/SimpleButton/index.d.ts +14 -0
  29. package/dist-types/src/components/disposables/buttons/SimpleButton/index.js +18 -0
  30. package/dist-types/src/components/modals/ SensorsDashboardModal/index.d.ts +2 -0
  31. package/dist-types/src/components/modals/ SensorsDashboardModal/index.js +61 -0
  32. package/dist-types/src/components/modals/ConnectingLoadingSpinnerModal/index.d.ts +3 -0
  33. package/dist-types/src/components/modals/ConnectingLoadingSpinnerModal/index.js +16 -0
  34. package/dist-types/src/components/modals/DetailedFeedbackModal/index.d.ts +5 -0
  35. package/dist-types/src/components/modals/DetailedFeedbackModal/index.js +37 -0
  36. package/dist-types/src/components/modals/DisconnectConfirmation/index.d.ts +1 -0
  37. package/dist-types/src/components/modals/DisconnectConfirmation/index.js +8 -0
  38. package/dist-types/src/components/modals/DisconnectConfirmation/styles.d.ts +1 -0
  39. package/dist-types/src/components/modals/DisconnectConfirmation/styles.js +7 -0
  40. package/dist-types/src/components/modals/InUnplugged/index.d.ts +1 -0
  41. package/dist-types/src/components/modals/InUnplugged/index.js +12 -0
  42. package/dist-types/src/components/modals/InUnplugged/styles.d.ts +5 -0
  43. package/dist-types/src/components/modals/InUnplugged/styles.js +11 -0
  44. package/dist-types/src/components/modals/VerificationModal/index.d.ts +6 -0
  45. package/dist-types/src/components/modals/VerificationModal/index.js +124 -0
  46. package/dist-types/src/components/modals/VerificationModalPhoneApp/index.d.ts +6 -0
  47. package/dist-types/src/components/modals/VerificationModalPhoneApp/index.js +195 -0
  48. package/dist-types/src/components/oneoffs/LEDs/index.d.ts +8 -0
  49. package/dist-types/src/components/oneoffs/LEDs/index.js +39 -0
  50. package/dist-types/src/components/oneoffs/RaftSignal/index.d.ts +7 -0
  51. package/dist-types/src/components/oneoffs/RaftSignal/index.js +29 -0
  52. package/dist-types/src/services/logger/Logger.d.ts +8 -0
  53. package/dist-types/src/services/logger/Logger.js +25 -0
  54. package/dist-types/src/state-observables/modal/DraggableModalState.d.ts +16 -0
  55. package/dist-types/src/state-observables/modal/DraggableModalState.js +52 -0
  56. package/dist-types/src/state-observables/modal/ModalObserver.d.ts +18 -0
  57. package/dist-types/src/state-observables/modal/ModalObserver.js +1 -0
  58. package/dist-types/src/state-observables/modal/ModalState.d.ts +25 -0
  59. package/dist-types/src/state-observables/modal/ModalState.js +71 -0
  60. package/dist-types/src/store/SelectedRaftContext.d.ts +19 -0
  61. package/dist-types/src/store/SelectedRaftContext.js +84 -0
  62. package/dist-types/src/styles/colors.d.ts +35 -0
  63. package/dist-types/src/styles/colors.js +42 -0
  64. package/dist-types/src/types/communication-between-apps/wrapper-communication.d.ts +48 -0
  65. package/dist-types/src/types/communication-between-apps/wrapper-communication.js +28 -0
  66. package/dist-types/src/types/events/raft-info.d.ts +10 -0
  67. package/dist-types/src/types/events/raft-info.js +11 -0
  68. package/dist-types/src/types/phone-app-communicator.d.ts +20 -0
  69. package/dist-types/src/types/phone-app-communicator.js +5 -0
  70. package/dist-types/src/types/raft.d.ts +18 -0
  71. package/dist-types/src/types/raft.js +14 -0
  72. package/dist-types/src/utils/Toaster.d.ts +13 -0
  73. package/dist-types/src/utils/Toaster.js +38 -0
  74. package/dist-types/src/utils/helpers/compare-version.d.ts +2 -0
  75. package/dist-types/src/utils/helpers/compare-version.js +19 -0
  76. package/dist-types/src/utils/helpers/randomHashGenerator.d.ts +1 -0
  77. package/dist-types/src/utils/helpers/randomHashGenerator.js +10 -0
  78. package/dist-types/src/utils/helpers/rescale-range.d.ts +2 -0
  79. package/dist-types/src/utils/helpers/rescale-range.js +4 -0
  80. package/dist-types/src/utils/helpers/wifi-configuration-subtitle-gen.d.ts +3 -0
  81. package/dist-types/src/utils/helpers/wifi-configuration-subtitle-gen.js +34 -0
  82. package/dist-types/src/utils/phone-app-communication/is-phone-app.d.ts +5 -0
  83. package/dist-types/src/utils/phone-app-communication/is-phone-app.js +7 -0
  84. package/dist-types/src/wrapper-app/WrapperAppManager.d.ts +58 -0
  85. package/dist-types/src/wrapper-app/WrapperAppManager.js +176 -0
  86. package/dist-types/src/wrapper-app/communicators/WebAppCommunicator.d.ts +24 -0
  87. package/dist-types/src/wrapper-app/communicators/WebAppCommunicator.js +243 -0
  88. package/dist-types/src/wrapper-app/connectors/CogConnector/CogConnector.d.ts +40 -0
  89. package/dist-types/src/wrapper-app/connectors/CogConnector/CogConnector.js +209 -0
  90. package/dist-types/src/wrapper-app/connectors/Connector.d.ts +72 -0
  91. package/dist-types/src/wrapper-app/connectors/Connector.js +314 -0
  92. package/dist-types/src/wrapper-app/connectors/ConnectorFactory.d.ts +15 -0
  93. package/dist-types/src/wrapper-app/connectors/ConnectorFactory.js +99 -0
  94. package/dist-types/src/wrapper-app/connectors/ConnectorInterface.d.ts +10 -0
  95. package/dist-types/src/wrapper-app/connectors/ConnectorInterface.js +6 -0
  96. package/dist-types/src/wrapper-app/connectors/MartyConnector/MartyConnector.d.ts +40 -0
  97. package/dist-types/src/wrapper-app/connectors/MartyConnector/MartyConnector.js +243 -0
  98. package/dist-types/types-package/application-manager.d.ts +17 -0
  99. package/dist-types/types-package/application-manager.js +5 -0
  100. 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,6 @@
1
+ var ConnectorInterface = /** @class */ (function () {
2
+ function ConnectorInterface() {
3
+ }
4
+ return ConnectorInterface;
5
+ }());
6
+ export default ConnectorInterface;
@@ -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;