@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,223 @@
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 RAFT from "../RAFT";
53
+ import { RaftTypeE } from "../../../types/raft";
54
+ import { RaftConnEvent, RaftPublishEvent } from "@robotical/raftjs";
55
+ import { RaftInfoEvents } from "../../../types/events/raft-info";
56
+ import PublishedDataAnalyser, { setButtonThresholdsUtil } from "./PublishedDataAnalyser";
57
+ var Cog = /** @class */ (function (_super) {
58
+ __extends(Cog, _super);
59
+ function Cog(id) {
60
+ var _this = _super.call(this, id) || this;
61
+ _this.id = id;
62
+ _this.type = RaftTypeE.COG;
63
+ // Colours to use for LED patterns
64
+ _this._ledLcdColours = [
65
+ { led: "#202000", lcd: "#FFFF00" },
66
+ { led: "#880000", lcd: "#FF0000" },
67
+ { led: "#000040", lcd: "#0080FF" },
68
+ { led: "#004000", lcd: "#00FF00" },
69
+ ];
70
+ // RAFT State Info
71
+ _this.raftStateInfo = null;
72
+ _this.publishedDataAnalyser = new PublishedDataAnalyser(_this);
73
+ return _this;
74
+ }
75
+ Object.defineProperty(Cog.prototype, "ledLcdColours", {
76
+ get: function () {
77
+ return this._ledLcdColours;
78
+ },
79
+ enumerable: false,
80
+ configurable: true
81
+ });
82
+ /**
83
+ * Gets the RSSI of the RAFT
84
+ */
85
+ Cog.prototype.getRSSI = function () {
86
+ // RSSI is not published by the COG yet
87
+ var possibleValues = [126, 127];
88
+ return possibleValues[Math.floor(Math.random() * possibleValues.length)];
89
+ };
90
+ /**
91
+ * Helper function to calculate battery strength based on voltage
92
+ */
93
+ Cog.prototype.calculateBatteryStrength = function (voltage) {
94
+ if (voltage >= 2.7) {
95
+ return 100;
96
+ }
97
+ else if (voltage >= 2.3) {
98
+ return ((voltage - 2.3) / 0.4) * 80 + 20;
99
+ }
100
+ else if (voltage >= 2.0) {
101
+ return ((voltage - 2.0) / 0.3) * 20;
102
+ }
103
+ else {
104
+ return 0;
105
+ }
106
+ };
107
+ /**
108
+ * Gets the battery strength of the RAFT
109
+ */
110
+ Cog.prototype.getBatteryStrength = function () {
111
+ /* check if usb is connected */
112
+ if (!this.raftStateInfo)
113
+ return 0.1;
114
+ if (this.raftStateInfo.power.usb === 'yes')
115
+ return 0; // 0 indicates USB is connected
116
+ /* if usb is not connected, check battery voltage */
117
+ var battV = this.raftStateInfo.power.battV;
118
+ if (!isNaN(+battV)) {
119
+ return Math.round(this.calculateBatteryStrength(+battV));
120
+ }
121
+ return 0;
122
+ };
123
+ /**
124
+ * This methods handles RAFT events coming from the RICConnector of the wrapper
125
+ */
126
+ Cog.prototype.handleRaftEvent = function (eventType, eventEnum, eventName, eventData) {
127
+ _super.prototype.handleRaftEvent.call(this, eventType, eventEnum, eventName, eventData);
128
+ switch (eventType) {
129
+ case "conn":
130
+ this.connEventHandler(eventEnum, eventName, eventData);
131
+ break;
132
+ case "pub":
133
+ this.pubEventHandler(eventEnum, eventName, eventData);
134
+ break;
135
+ case "raftinfo":
136
+ this.raftInfoEventHandler(eventEnum, eventName, eventData);
137
+ break;
138
+ default:
139
+ break;
140
+ }
141
+ };
142
+ /**
143
+ * Conn Event Handler
144
+ */
145
+ Cog.prototype.connEventHandler = function (eventEnum, eventName, data) {
146
+ return __awaiter(this, void 0, void 0, function () {
147
+ return __generator(this, function (_a) {
148
+ switch (eventEnum) {
149
+ case RaftConnEvent.CONN_VERIFIED_CORRECT:
150
+ // set up cog thresholds
151
+ setButtonThresholdsUtil(this);
152
+ break;
153
+ case RaftConnEvent.CONN_DISCONNECTED:
154
+ // this.publishedDataAnalyser.unsubscribeFromPublishedData();
155
+ break;
156
+ default:
157
+ break;
158
+ }
159
+ return [2 /*return*/];
160
+ });
161
+ });
162
+ };
163
+ /**
164
+ * Pub Event Handler
165
+ */
166
+ Cog.prototype.pubEventHandler = function (eventEnum, eventName, data) {
167
+ return __awaiter(this, void 0, void 0, function () {
168
+ return __generator(this, function (_a) {
169
+ switch (eventEnum) {
170
+ case RaftPublishEvent.PUBLISH_EVENT_DATA:
171
+ break;
172
+ default:
173
+ break;
174
+ }
175
+ return [2 /*return*/];
176
+ });
177
+ });
178
+ };
179
+ /**
180
+ * Highlights the COG by flashing the LED and playing a tune
181
+ */
182
+ Cog.prototype.highlight = function () {
183
+ return __awaiter(this, void 0, void 0, function () {
184
+ return __generator(this, function (_a) {
185
+ switch (_a.label) {
186
+ case 0: return [4 /*yield*/, this.sendRestMessage('led/ring/color/#ff8585')];
187
+ case 1:
188
+ _a.sent();
189
+ return [4 /*yield*/, this.sendRestMessage('audio/rtttl/NoteASharp:d=4,o=6,b=600:a#')];
190
+ case 2:
191
+ _a.sent();
192
+ return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, 100); })];
193
+ case 3:
194
+ _a.sent();
195
+ return [4 /*yield*/, this.sendRestMessage('led/ring/color/#000000')];
196
+ case 4:
197
+ _a.sent();
198
+ return [2 /*return*/];
199
+ }
200
+ });
201
+ });
202
+ };
203
+ /**
204
+ * Raft Info Event Handler
205
+ */
206
+ Cog.prototype.raftInfoEventHandler = function (eventEnum, eventName, data) {
207
+ return __awaiter(this, void 0, void 0, function () {
208
+ return __generator(this, function (_a) {
209
+ switch (eventEnum) {
210
+ case RaftInfoEvents.STATE_INFO:
211
+ this.raftStateInfo = data.stateInfo;
212
+ break;
213
+ default:
214
+ break;
215
+ }
216
+ return [2 /*return*/];
217
+ });
218
+ });
219
+ };
220
+ return Cog;
221
+ }(RAFT));
222
+ export { Cog };
223
+ export default Cog;
@@ -0,0 +1,120 @@
1
+ /// <reference types="node" />
2
+ import RAFT from "../RAFT";
3
+ import EventEmitter from "events";
4
+ import Cog from "./Cog";
5
+ import { SimplifiedCogStateInfo } from "@robotical/roboticaljs/dist/SystemTypeCog/CogTypes";
6
+ interface CogState {
7
+ tilt: "none" | "forward" | "backward" | "left" | "right";
8
+ movementType: "none" | "shake" | "move";
9
+ rotation: "none" | "clockwise" | "counterClockwise";
10
+ buttonClick: "none" | "click" | "release";
11
+ objectSense: "none" | "left" | "right";
12
+ lightSense: "none" | "high" | "mid" | "low";
13
+ }
14
+ declare class PublishedDataAnalyser extends EventEmitter {
15
+ private cog;
16
+ cogState: CogState;
17
+ private pubSub;
18
+ rotationDetection: RotationDetection;
19
+ shakeDetector: ShakeDetector;
20
+ buttonClickDetection: ButtonClickDetection;
21
+ tiltDetection: TiltDetection;
22
+ objectSenseDetection: ObjectSenseDetection;
23
+ lightSenseDetection: LightSenseDetection;
24
+ eventsMap: {
25
+ tilt: {
26
+ [key in CogState["tilt"]]: string;
27
+ };
28
+ movementType: {
29
+ [key in CogState["movementType"]]: string;
30
+ };
31
+ rotation: {
32
+ [key in CogState["rotation"]]: string;
33
+ };
34
+ buttonClick: {
35
+ [key in CogState["buttonClick"]]: string;
36
+ };
37
+ objectSense: {
38
+ [key in CogState["objectSense"]]: string;
39
+ };
40
+ lightSense: {
41
+ [key in CogState["lightSense"]]: string;
42
+ };
43
+ };
44
+ TiltDetection: typeof TiltDetection;
45
+ constructor(cog: RAFT);
46
+ subscribeToPublishedData(): void;
47
+ unsubscribeFromPublishedData(): void;
48
+ analyse(data: SimplifiedCogStateInfo): void;
49
+ setTilt(tilt: CogState["tilt"]): void;
50
+ setMovementType(movementType: CogState["movementType"]): void;
51
+ setRotation(rotation: CogState["rotation"]): void;
52
+ setButtonClick(buttonClick: CogState["buttonClick"]): void;
53
+ setObjectSense(objectSense: CogState["objectSense"]): void;
54
+ setLightSense(lightSense: CogState["lightSense"]): void;
55
+ }
56
+ declare class TiltDetection {
57
+ distance(a: number, b: number): number;
58
+ static rotateAccelData(x: number, y: number, z: number, degrees: number): {
59
+ x: number;
60
+ y: number;
61
+ z: number;
62
+ };
63
+ detectTilt(ax: number, ay: number, az: number, isMoving: boolean | undefined, analyser: PublishedDataAnalyser, cogVersion: string): void;
64
+ }
65
+ declare class RotationDetection {
66
+ private dataBuffer;
67
+ private bufferSize;
68
+ private DELAY_FOR_ROTATION;
69
+ private ROTATION_THRESHOLD;
70
+ private rotationDetected;
71
+ private lastRotationDetectionTime;
72
+ private rotationTimer;
73
+ constructor();
74
+ addToBuffer(data: number): void;
75
+ detectRotation(gz: number, isMoving: boolean | undefined, analyser: PublishedDataAnalyser): void;
76
+ calculateMetric(): number;
77
+ }
78
+ declare class ShakeDetector {
79
+ private thresholdAccelerationMove;
80
+ private thresholdAcceleration;
81
+ private thresholdShakeNumber;
82
+ private interval;
83
+ private maxShakeDuration;
84
+ private coolOffPeriod;
85
+ private lastTime;
86
+ private lastTimeShakeDetected;
87
+ private sensorBundles;
88
+ private gravityVector;
89
+ private lastVector;
90
+ private shakeInProgress;
91
+ private moveInProgress;
92
+ constructor();
93
+ detectShake(xAcc: number, yAcc: number, zAcc: number, timestamp: number, analyser: PublishedDataAnalyser): boolean;
94
+ performCheck(analyser: PublishedDataAnalyser): void;
95
+ updateAxis(index: number, acceleration: number, matrix: number[][], adjustment?: number): void;
96
+ }
97
+ export declare class ButtonClickDetection {
98
+ clickThreshold: number;
99
+ releaseThreshold: number;
100
+ lastTime: number;
101
+ buttonClicked: boolean;
102
+ constructor();
103
+ detectButtonClick(buttonValue: number, analyser: PublishedDataAnalyser, cogVersion: string): void;
104
+ }
105
+ declare class ObjectSenseDetection {
106
+ private objectSensed0Threshold;
107
+ private objectSensed1Threshold;
108
+ private objectSensed2Threshold;
109
+ constructor();
110
+ detectObjectSense(objectSenseValue: number[], analyser: PublishedDataAnalyser): void;
111
+ }
112
+ declare class LightSenseDetection {
113
+ private lowLightThreshold;
114
+ private midLightThreshold;
115
+ private highLightThreshold;
116
+ constructor();
117
+ detectLightSense(lightSenseValue: number, analyser: PublishedDataAnalyser): void;
118
+ }
119
+ export declare const setButtonThresholdsUtil: (connectedCog: Cog) => Promise<void>;
120
+ export default PublishedDataAnalyser;