@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,243 @@
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 SelfdestructiveMessagePromise from "../../application/communicators/SelfdestructiveMessagePromise";
38
+ import Logger from "../../services/logger/Logger";
39
+ import { AppSentMessage } from "../../types/communication-between-apps/wrapper-communication";
40
+ import randomHashGenerator from "../../utils/helpers/randomHashGenerator";
41
+ import wrapperAppManager from "../WrapperAppManager";
42
+ var SHOW_LOGS = true;
43
+ var TAG = "WebAppCommunicator";
44
+ /**
45
+ * This file is responsible for the communication between the web app and the Wrapper Web App
46
+ */
47
+ var WebAppCommunicator = /** @class */ (function () {
48
+ function WebAppCommunicator() {
49
+ this.messagePromises = {};
50
+ }
51
+ WebAppCommunicator.prototype.receiveMessage = function (receivedMessageStringified) {
52
+ return __awaiter(this, void 0, void 0, function () {
53
+ var receivedMessage;
54
+ return __generator(this, function (_a) {
55
+ Logger.info(SHOW_LOGS, TAG, "Received message: " + receivedMessageStringified);
56
+ receivedMessage = JSON.parse(receivedMessageStringified);
57
+ receivedMessageHandler(receivedMessage.message, receivedMessage.data, receivedMessage.messagePromiseId);
58
+ return [2 /*return*/];
59
+ });
60
+ });
61
+ };
62
+ /**
63
+ * It sends a message to the phone app
64
+ * The client can await the response to that message
65
+ */
66
+ WebAppCommunicator.prototype.sendMessageAndWait = function (message, data) {
67
+ var _this = this;
68
+ Logger.info(SHOW_LOGS, TAG, "Sending message with waiting: " + message);
69
+ var messagePromiseId = randomHashGenerator();
70
+ var promise = new Promise(function (resolve, reject) {
71
+ // this.messagePromises[messagePromiseId] = { resolve: (value: R | PromiseLike<R>) => resolve(value), reject };
72
+ _this.messagePromises[messagePromiseId] = new SelfdestructiveMessagePromise(resolve, reject, messagePromiseId, _this.messagePromises);
73
+ });
74
+ var messageObject = {
75
+ message: message,
76
+ data: data,
77
+ messagePromiseId: messagePromiseId
78
+ };
79
+ window.wrapperCommunicator.receiveMessage(messageObject);
80
+ return promise;
81
+ };
82
+ /**
83
+ * It sends a message to the phone app
84
+ * The client cannot await the response to that message
85
+ */
86
+ WebAppCommunicator.prototype.sendMessageNoWait = function (message, data) {
87
+ // Logger.info(SHOW_LOGS, TAG, "Sending message without waiting: " + message);
88
+ var messagePromiseId = randomHashGenerator();
89
+ var messageObject = {
90
+ message: message,
91
+ data: data,
92
+ messagePromiseId: messagePromiseId
93
+ };
94
+ window.wrapperCommunicator.receiveMessage(messageObject);
95
+ };
96
+ /**
97
+ * Called by the react-native code to respond to sendMessage
98
+ */
99
+ WebAppCommunicator.prototype.onMessageResponse = function (response) {
100
+ var _a, _b;
101
+ Logger.info(SHOW_LOGS, TAG, "Received message reply: " + JSON.stringify(response));
102
+ if (this.messagePromises[response.messagePromiseId]) {
103
+ if (response.success) {
104
+ (_a = this.messagePromises[response.messagePromiseId]) === null || _a === void 0 ? void 0 : _a.resolve(response.results);
105
+ }
106
+ else {
107
+ (_b = this.messagePromises[response.messagePromiseId]) === null || _b === void 0 ? void 0 : _b.reject(response.error);
108
+ }
109
+ }
110
+ else {
111
+ Logger.warn(SHOW_LOGS, TAG, "Unhandled message reply with id: ".concat(response.messagePromiseId));
112
+ }
113
+ };
114
+ return WebAppCommunicator;
115
+ }());
116
+ export default WebAppCommunicator;
117
+ var receivedMessageHandler = function (receivedMessage, data, messagePromiseId) { return __awaiter(void 0, void 0, void 0, function () {
118
+ var _a, connectionResults, error_1, ricName, error_2, verifyResults, error_3, stopVerifyResults, error_4, disconnectResults, error_5, restResults, error_6, missedConnEventResults, streamAudioResults;
119
+ return __generator(this, function (_b) {
120
+ switch (_b.label) {
121
+ case 0:
122
+ _a = receivedMessage;
123
+ switch (_a) {
124
+ case AppSentMessage.RAFT_IS_CONNECTED: return [3 /*break*/, 1];
125
+ case AppSentMessage.RAFT_CONNECT: return [3 /*break*/, 2];
126
+ case AppSentMessage.RAFT_GET_NAME: return [3 /*break*/, 6];
127
+ case AppSentMessage.RAFT_VERIFY: return [3 /*break*/, 10];
128
+ case AppSentMessage.RAFT_STOP_VERIFY: return [3 /*break*/, 14];
129
+ case AppSentMessage.RAFT_DISCONNECT: return [3 /*break*/, 18];
130
+ case AppSentMessage.RAFT_SEND_REST: return [3 /*break*/, 22];
131
+ case AppSentMessage.GET_MISSED_CONN_EVENT: return [3 /*break*/, 26];
132
+ case AppSentMessage.RAFT_STREAM_AUDIO: return [3 /*break*/, 27];
133
+ }
134
+ return [3 /*break*/, 28];
135
+ case 1:
136
+ try {
137
+ console.log("3");
138
+ // const connectionResults = await wrapperAppManager.isConnected();
139
+ console.log("12");
140
+ // console.log("raft is connected results", connectionResults);
141
+ window.wrapperCommunicator.onMessageResponse({ success: true, error: "", results: { log: "13" }, messagePromiseId: messagePromiseId });
142
+ }
143
+ catch (error) {
144
+ window.wrapperCommunicator.onMessageResponse({ success: false, error: error.message, messagePromiseId: messagePromiseId });
145
+ }
146
+ return [3 /*break*/, 29];
147
+ case 2:
148
+ _b.trys.push([2, 4, , 5]);
149
+ return [4 /*yield*/, wrapperAppManager.connect(data.method, data.uuids)];
150
+ case 3:
151
+ connectionResults = _b.sent();
152
+ window.wrapperCommunicator.onMessageResponse({ success: true, error: "", results: connectionResults, messagePromiseId: messagePromiseId });
153
+ return [3 /*break*/, 5];
154
+ case 4:
155
+ error_1 = _b.sent();
156
+ window.wrapperCommunicator.onMessageResponse({ success: false, error: error_1.message, messagePromiseId: messagePromiseId });
157
+ return [3 /*break*/, 5];
158
+ case 5: return [3 /*break*/, 29];
159
+ case 6:
160
+ _b.trys.push([6, 8, , 9]);
161
+ return [4 /*yield*/, wrapperAppManager.getRaftName(data.raftId)];
162
+ case 7:
163
+ ricName = _b.sent();
164
+ window.wrapperCommunicator.onMessageResponse({ success: true, error: "", results: ricName, messagePromiseId: messagePromiseId });
165
+ return [3 /*break*/, 9];
166
+ case 8:
167
+ error_2 = _b.sent();
168
+ window.wrapperCommunicator.onMessageResponse({ success: false, error: error_2.message, messagePromiseId: messagePromiseId });
169
+ return [3 /*break*/, 9];
170
+ case 9: return [3 /*break*/, 29];
171
+ case 10:
172
+ _b.trys.push([10, 12, , 13]);
173
+ return [4 /*yield*/, wrapperAppManager.verifyRaft(data.ledLcdColours, data.raftId)];
174
+ case 11:
175
+ verifyResults = _b.sent();
176
+ window.wrapperCommunicator.onMessageResponse({ success: true, error: "", results: verifyResults, messagePromiseId: messagePromiseId });
177
+ return [3 /*break*/, 13];
178
+ case 12:
179
+ error_3 = _b.sent();
180
+ window.wrapperCommunicator.onMessageResponse({ success: false, error: error_3.message, messagePromiseId: messagePromiseId });
181
+ return [3 /*break*/, 13];
182
+ case 13: return [3 /*break*/, 29];
183
+ case 14:
184
+ _b.trys.push([14, 16, , 17]);
185
+ return [4 /*yield*/, wrapperAppManager.stopVerifyingRaft(data.isCorrectRIC, data.raftId)];
186
+ case 15:
187
+ stopVerifyResults = _b.sent();
188
+ window.wrapperCommunicator.onMessageResponse({ success: true, error: "", results: stopVerifyResults, messagePromiseId: messagePromiseId });
189
+ return [3 /*break*/, 17];
190
+ case 16:
191
+ error_4 = _b.sent();
192
+ window.wrapperCommunicator.onMessageResponse({ success: false, error: error_4.message, messagePromiseId: messagePromiseId });
193
+ return [3 /*break*/, 17];
194
+ case 17: return [3 /*break*/, 29];
195
+ case 18:
196
+ _b.trys.push([18, 20, , 21]);
197
+ return [4 /*yield*/, wrapperAppManager.disconnect(data.raftId)];
198
+ case 19:
199
+ disconnectResults = _b.sent();
200
+ window.wrapperCommunicator.onMessageResponse({ success: true, error: "", results: disconnectResults, messagePromiseId: messagePromiseId });
201
+ return [3 /*break*/, 21];
202
+ case 20:
203
+ error_5 = _b.sent();
204
+ window.wrapperCommunicator.onMessageResponse({ success: false, error: error_5.message, messagePromiseId: messagePromiseId });
205
+ return [3 /*break*/, 21];
206
+ case 21: return [3 /*break*/, 29];
207
+ case 22:
208
+ _b.trys.push([22, 24, , 25]);
209
+ return [4 /*yield*/, wrapperAppManager.sendRestMessage(data.msg, data.params, data.raftId)];
210
+ case 23:
211
+ restResults = _b.sent();
212
+ window.wrapperCommunicator.onMessageResponse({ success: true, error: "", results: restResults, messagePromiseId: messagePromiseId });
213
+ return [3 /*break*/, 25];
214
+ case 24:
215
+ error_6 = _b.sent();
216
+ window.wrapperCommunicator.onMessageResponse({ success: false, error: error_6.message, messagePromiseId: messagePromiseId });
217
+ return [3 /*break*/, 25];
218
+ case 25: return [3 /*break*/, 29];
219
+ case 26:
220
+ try {
221
+ missedConnEventResults = wrapperAppManager.getMissedConnEvent(data.raftId);
222
+ window.wrapperCommunicator.onMessageResponse({ success: true, error: "", results: missedConnEventResults, messagePromiseId: messagePromiseId });
223
+ }
224
+ catch (error) {
225
+ window.wrapperCommunicator.onMessageResponse({ success: false, error: error.message, messagePromiseId: messagePromiseId });
226
+ }
227
+ return [3 /*break*/, 29];
228
+ case 27:
229
+ try {
230
+ streamAudioResults = wrapperAppManager.streamAudio(data.raftId, data.streamContents, data.clearExisting, data.duration);
231
+ window.wrapperCommunicator.onMessageResponse({ success: true, error: "", results: streamAudioResults, messagePromiseId: messagePromiseId });
232
+ }
233
+ catch (error) {
234
+ window.wrapperCommunicator.onMessageResponse({ success: false, error: error.message, messagePromiseId: messagePromiseId });
235
+ }
236
+ return [3 /*break*/, 29];
237
+ case 28:
238
+ Logger.warn(SHOW_LOGS, TAG, "Unhandled message: ".concat(receivedMessage));
239
+ _b.label = 29;
240
+ case 29: return [2 /*return*/];
241
+ }
242
+ });
243
+ }); };
@@ -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, RaftPublishEvent, RaftUpdateEvent } from "@robotical/raftjs";
6
+ import { ConnManager } from "@robotical/roboticaljs";
7
+ declare class CogConnector 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 Cog
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 CogConnector;
@@ -0,0 +1,209 @@
1
+ var __extends = (this && this.__extends) || (function () {
2
+ var extendStatics = function (d, b) {
3
+ extendStatics = Object.setPrototypeOf ||
4
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
5
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
6
+ return extendStatics(d, b);
7
+ };
8
+ return function (d, b) {
9
+ if (typeof b !== "function" && b !== null)
10
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
11
+ extendStatics(d, b);
12
+ function __() { this.constructor = d; }
13
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
14
+ };
15
+ })();
16
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
17
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
18
+ return new (P || (P = Promise))(function (resolve, reject) {
19
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
20
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
21
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
22
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
23
+ });
24
+ };
25
+ var __generator = (this && this.__generator) || function (thisArg, body) {
26
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
27
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
28
+ function verb(n) { return function (v) { return step([n, v]); }; }
29
+ function step(op) {
30
+ if (f) throw new TypeError("Generator is already executing.");
31
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
32
+ 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;
33
+ if (y = 0, t) op = [op[0] & 2, t.value];
34
+ switch (op[0]) {
35
+ case 0: case 1: t = op; break;
36
+ case 4: _.label++; return { value: op[1], done: false };
37
+ case 5: _.label++; y = op[1]; op = [0]; continue;
38
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
39
+ default:
40
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
41
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
42
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
43
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
44
+ if (t[2]) _.ops.pop();
45
+ _.trys.pop(); continue;
46
+ }
47
+ op = body.call(thisArg, _);
48
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
49
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
50
+ }
51
+ };
52
+ import { RaftInfoEvents } from "../../../types/events/raft-info";
53
+ import Logger from "../../../services/logger/Logger";
54
+ import { RaftTypeE } from "../../../types/raft";
55
+ import Connector from "../Connector";
56
+ import { RaftConnEvent, RaftPublishEvent, RaftUpdateEvent } from "@robotical/raftjs";
57
+ import { CogPublishedDataGetter } from "@robotical/roboticaljs";
58
+ import { WrapperSentMessage } from "../../../types/communication-between-apps/wrapper-communication";
59
+ var SHOW_LOGS = true;
60
+ var TAG = "CogConnector";
61
+ var CogConnector = /** @class */ (function (_super) {
62
+ __extends(CogConnector, _super);
63
+ function CogConnector(raftId, connManager) {
64
+ var _this = _super.call(this, raftId, connManager) || this;
65
+ _this.type = RaftTypeE.COG;
66
+ return _this;
67
+ }
68
+ /**
69
+ * Publish an event to all observers
70
+ * Set in RICConnector as an event listener callback
71
+ */
72
+ CogConnector.prototype.publish = function (eventType, eventEnum, eventName, eventData) {
73
+ window.WebAppCommunicator.sendMessageNoWait(WrapperSentMessage.RAFT_PUBLISHED_EVENT, { raftId: this.id, eventType: eventType, eventEnum: eventEnum, eventName: eventName, eventData: eventData });
74
+ if (this._observers.hasOwnProperty(eventType)) {
75
+ for (var _i = 0, _a = this._observers[eventType]; _i < _a.length; _i++) {
76
+ var observer = _a[_i];
77
+ observer.notify(eventType, eventEnum, eventName, eventData);
78
+ }
79
+ }
80
+ };
81
+ /**
82
+ * Connect to a RAFT
83
+ */
84
+ CogConnector.prototype.connect = function () {
85
+ return __awaiter(this, void 0, void 0, function () {
86
+ var sysInfoOk;
87
+ return __generator(this, function (_a) {
88
+ switch (_a.label) {
89
+ case 0: return [4 /*yield*/, this.connManager.getConnector().getRaftSystemUtils().getSystemInfo()];
90
+ case 1:
91
+ sysInfoOk = _a.sent();
92
+ if (!sysInfoOk) {
93
+ // this.emit(RAFT_REJECTED)
94
+ return [2 /*return*/, { success: false, reason: 'no_sys_info' }];
95
+ }
96
+ return [2 /*return*/, { success: true, reason: 'success' }];
97
+ }
98
+ });
99
+ });
100
+ };
101
+ /**
102
+ * Disconnect from Cog
103
+ */
104
+ CogConnector.prototype.disconnect = function () {
105
+ return __awaiter(this, void 0, void 0, function () {
106
+ return __generator(this, function (_a) {
107
+ switch (_a.label) {
108
+ case 0: return [4 /*yield*/, _super.prototype.disconnect.call(this)];
109
+ case 1:
110
+ // this.sendRestMessage('blerestart');
111
+ return [2 /*return*/, _a.sent()];
112
+ }
113
+ });
114
+ });
115
+ };
116
+ /**
117
+ * Event handler
118
+ */
119
+ CogConnector.prototype.eventHandler = function (eventType, eventEnum, eventName, data) {
120
+ return __awaiter(this, void 0, void 0, function () {
121
+ return __generator(this, function (_a) {
122
+ _super.prototype.eventHandler.call(this, eventType, eventEnum, eventName, data);
123
+ switch (eventType) {
124
+ case "conn":
125
+ this.connectionEventHandler(eventEnum, eventName, data);
126
+ break;
127
+ case "update":
128
+ this.updateEventHandler(eventEnum, eventName, data);
129
+ break;
130
+ case "pub":
131
+ this.pubEventHandler(eventEnum, eventName, data);
132
+ break;
133
+ default:
134
+ break;
135
+ }
136
+ return [2 /*return*/];
137
+ });
138
+ });
139
+ };
140
+ /**
141
+ * Connection Event Handler
142
+ */
143
+ CogConnector.prototype.connectionEventHandler = function (eventEnum, eventName, data) {
144
+ return __awaiter(this, void 0, void 0, function () {
145
+ return __generator(this, function (_a) {
146
+ Logger.info(SHOW_LOGS, TAG, "Event: ".concat(eventEnum, " data: ").concat(data));
147
+ switch (eventEnum) {
148
+ case RaftConnEvent.CONN_CONNECTED:
149
+ break;
150
+ case RaftConnEvent.CONN_VERIFIED_CORRECT:
151
+ break;
152
+ default:
153
+ break;
154
+ }
155
+ return [2 /*return*/];
156
+ });
157
+ });
158
+ };
159
+ /**
160
+ * Update Event Handler
161
+ */
162
+ CogConnector.prototype.updateEventHandler = function (eventEnum, eventName, data) {
163
+ return __awaiter(this, void 0, void 0, function () {
164
+ return __generator(this, function (_a) {
165
+ Logger.info(SHOW_LOGS, TAG, "Event: ".concat(eventEnum, " data: ").concat(data));
166
+ switch (eventEnum) {
167
+ case RaftUpdateEvent.UPDATE_APP_UPDATE_REQUIRED:
168
+ // do something
169
+ break;
170
+ default:
171
+ break;
172
+ }
173
+ return [2 /*return*/];
174
+ });
175
+ });
176
+ };
177
+ /**
178
+ * Pub Event Handler
179
+ */
180
+ CogConnector.prototype.pubEventHandler = function (eventEnum, eventName, data) {
181
+ return __awaiter(this, void 0, void 0, function () {
182
+ var systemType, stateInfo, simplifiedInfo;
183
+ return __generator(this, function (_a) {
184
+ switch (eventEnum) {
185
+ case RaftPublishEvent.PUBLISH_EVENT_DATA:
186
+ systemType = this.connManager.getConnector().getSystemType();
187
+ if (systemType) {
188
+ stateInfo = systemType.getStateInfo();
189
+ if (stateInfo.deviceManager) {
190
+ simplifiedInfo = {
191
+ power: CogPublishedDataGetter.getPowerData(stateInfo.deviceManager),
192
+ accelerometer: CogPublishedDataGetter.getAccelerometerData(stateInfo.deviceManager),
193
+ light: CogPublishedDataGetter.getLightData(stateInfo.deviceManager),
194
+ gyroscope: CogPublishedDataGetter.getGyroscopeData(stateInfo.deviceManager)
195
+ };
196
+ this.publish("raftinfo", RaftInfoEvents.STATE_INFO, "StateInfo", { stateInfo: simplifiedInfo });
197
+ }
198
+ }
199
+ break;
200
+ default:
201
+ break;
202
+ }
203
+ return [2 /*return*/];
204
+ });
205
+ });
206
+ };
207
+ return CogConnector;
208
+ }(Connector));
209
+ export default CogConnector;
@@ -0,0 +1,72 @@
1
+ import { RaftInfoEvents } from "../../types/events/raft-info";
2
+ import { ConnectionAttemptResults, RaftTypeE } from "../../types/raft";
3
+ import { RaftObserver } from "../../application/RAFTs/RaftObserver";
4
+ import ConnectorInterface from "./ConnectorInterface";
5
+ import { ConnManager, RICLedLcdColours } from "@robotical/roboticaljs";
6
+ import { RaftOKFail, RaftConnEvent, RaftUpdateEvent, RaftPublishEvent } from "@robotical/raftjs";
7
+ declare class Connector implements ConnectorInterface {
8
+ id: string;
9
+ type: RaftTypeE;
10
+ protected _observers: {
11
+ [key: string]: Array<RaftObserver>;
12
+ };
13
+ connManager: ConnManager;
14
+ constructor(id: string, connManager: ConnManager);
15
+ /**
16
+ * Connect to a RAFT after having found the RAFT type
17
+ */
18
+ connect(): Promise<ConnectionAttemptResults>;
19
+ /**
20
+ * Get connected raft info
21
+ */
22
+ getSystemInfo(): Promise<import("@robotical/raftjs").RaftSystemInfo>;
23
+ /**
24
+ * Gets the RAFT name
25
+ */
26
+ getRaftName(): Promise<string>;
27
+ /**
28
+ * Send a REST message to the RAFT
29
+ */
30
+ sendRestMessage(msg: string, params?: object): Promise<RaftOKFail>;
31
+ /**
32
+ * Verify correct RAFT is selected
33
+ */
34
+ verifyRaft(ledLcdColours: RICLedLcdColours): Promise<boolean>;
35
+ /**
36
+ * Disconnect from a RAFT
37
+ */
38
+ disconnect(): Promise<boolean>;
39
+ /**
40
+ * Stop verifying RAFT
41
+ * @param confirmCorrectRIC - indicates if the correct RAFT was selected (user input)
42
+ */
43
+ stopVerifyingRaft(confirmCorrectRIC: boolean): Promise<boolean>;
44
+ /**
45
+ * Audio streaming
46
+ */
47
+ streamAudio(streamContents: Uint8Array, clearExisting: boolean, duration: number): Promise<void>;
48
+ /**
49
+ * Publish an event to all observers
50
+ * Set in RICConnector as an event listener callback
51
+ */
52
+ publish(eventType: string, eventEnum: RaftConnEvent | RaftUpdateEvent | RaftPublishEvent | RaftInfoEvents, eventName: string, eventData: any): void;
53
+ /**
54
+ * Event handler
55
+ */
56
+ eventHandler(eventType: string, eventEnum: RaftConnEvent | RaftUpdateEvent | RaftPublishEvent | RaftInfoEvents, eventName: string, data: any): Promise<void>;
57
+ /**
58
+ * Connection Event Handler
59
+ * This handles the events that are the same for all RAFT systems (e.g., Marty, Cog, etc.)
60
+ * While the system-specific events are handled in the system-specific connectors
61
+ */
62
+ _connectionEventHandler(eventEnum: RaftConnEvent, eventName: string, data: any): Promise<void>;
63
+ /**
64
+ * Update Event Handler
65
+ */
66
+ _updateEventHandler(eventEnum: RaftUpdateEvent, eventName: string, data: any): Promise<void>;
67
+ /**
68
+ * Pub Event Handler
69
+ */
70
+ _pubEventHandler(eventEnum: RaftPublishEvent, eventName: string, data: any): Promise<void>;
71
+ }
72
+ export default Connector;