edge-impulse-linux 1.15.6 → 1.16.1
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/build/cli/linux/camera-debug.js +4 -2
- package/build/cli/linux/camera-debug.js.map +1 -1
- package/build/cli/linux/linux.js +17 -8
- package/build/cli/linux/linux.js.map +1 -1
- package/build/cli/linux/runner-utils.d.ts +12 -4
- package/build/cli/linux/runner-utils.js +191 -47
- package/build/cli/linux/runner-utils.js.map +1 -1
- package/build/cli/linux/runner.js +94 -16
- package/build/cli/linux/runner.js.map +1 -1
- package/build/cli/linux/webserver/middleware/asyncMiddleware.js.map +1 -1
- package/build/cli/linux/webserver/public/webserver.js +5 -1
- package/build/cli/linux/webserver/public/webserver.js.map +1 -1
- package/build/cli/linux/webserver/views/index.d.ts +4 -0
- package/{cli/linux/webserver/public/index.html → build/cli/linux/webserver/views/index.js} +32 -7
- package/build/cli/linux/webserver/views/index.js.map +1 -0
- package/build/cli-common/socket-utils.d.ts +11 -0
- package/build/cli-common/socket-utils.js +53 -0
- package/build/cli-common/socket-utils.js.map +1 -0
- package/build/library/sensors/gstreamer.js +1 -1
- package/build/library/sensors/gstreamer.js.map +1 -1
- package/build/library/sensors/sensors-helper.d.ts +6 -2
- package/build/library/sensors/sensors-helper.js +47 -5
- package/build/library/sensors/sensors-helper.js.map +1 -1
- package/build/sdk/studio/sdk/api/devicesApi.d.ts +2 -0
- package/build/sdk/studio/sdk/api/devicesApi.js +8 -0
- package/build/sdk/studio/sdk/api/devicesApi.js.map +1 -1
- package/build/sdk/studio/sdk/api/jobsApi.d.ts +12 -0
- package/build/sdk/studio/sdk/api/jobsApi.js +81 -0
- package/build/sdk/studio/sdk/api/jobsApi.js.map +1 -1
- package/build/sdk/studio/sdk/api/organizationDataApi.d.ts +1 -1
- package/build/sdk/studio/sdk/api/organizationDataApi.js +1 -1
- package/build/sdk/studio/sdk/model/dSPInfo.d.ts +6 -0
- package/build/sdk/studio/sdk/model/dSPInfo.js +10 -0
- package/build/sdk/studio/sdk/model/dSPInfo.js.map +1 -1
- package/build/sdk/studio/sdk/model/dSPNormalizeData.d.ts +13 -0
- package/build/sdk/studio/sdk/model/dSPNormalizeData.js +16 -0
- package/build/sdk/studio/sdk/model/dSPNormalizeData.js.map +1 -0
- package/build/sdk/studio/sdk/model/exportInferenceHistoryDataRequest.d.ts +37 -0
- package/build/sdk/studio/sdk/model/exportInferenceHistoryDataRequest.js +50 -0
- package/build/sdk/studio/sdk/model/exportInferenceHistoryDataRequest.js.map +1 -0
- package/build/sdk/studio/sdk/model/generateFeaturesRequest.d.ts +2 -0
- package/build/sdk/studio/sdk/model/generateFeaturesRequest.js +5 -0
- package/build/sdk/studio/sdk/model/generateFeaturesRequest.js.map +1 -1
- package/build/sdk/studio/sdk/model/getModelMonitoringDeploymentsResponseAllOfDeployments.d.ts +1 -0
- package/build/sdk/studio/sdk/model/getModelMonitoringDeploymentsResponseAllOfDeployments.js +5 -0
- package/build/sdk/studio/sdk/model/getModelMonitoringDeploymentsResponseAllOfDeployments.js.map +1 -1
- package/build/sdk/studio/sdk/model/models.d.ts +2 -0
- package/build/sdk/studio/sdk/model/models.js +6 -0
- package/build/sdk/studio/sdk/model/models.js.map +1 -1
- package/cli/linux/webserver/public/assets/argon-dashboard.css +6 -6
- package/cli/linux/webserver/public/assets/mobileclient.css +28 -0
- package/cli/linux/webserver/public/webserver.js +6 -1
- package/examples/ts/classify-camera-webserver.ts +2 -2
- package/package.json +9 -11
- package/test/gstreamer.test.ts +12 -12
|
@@ -14,7 +14,8 @@ const fs_1 = __importDefault(require("fs"));
|
|
|
14
14
|
const prophesee_1 = require("../../library/sensors/prophesee");
|
|
15
15
|
const express = require("express");
|
|
16
16
|
const http_1 = __importDefault(require("http"));
|
|
17
|
-
const socket_io_1 =
|
|
17
|
+
const socket_io_1 = require("socket.io");
|
|
18
|
+
const socket_utils_1 = require("../../cli-common/socket-utils");
|
|
18
19
|
const packageVersion = JSON.parse(fs_1.default.readFileSync(path_1.default.join(__dirname, '..', '..', '..', 'package.json'), 'utf-8')).version;
|
|
19
20
|
commander_1.default
|
|
20
21
|
.description('Edge Impulse Camera debug client ' + packageVersion)
|
|
@@ -128,7 +129,8 @@ function startWebServer(camera, cameraName) {
|
|
|
128
129
|
const app = express();
|
|
129
130
|
app.use(express.static(path_1.default.join(__dirname, '..', '..', '..', 'cli', 'linux', 'webserver', 'public')));
|
|
130
131
|
const server = new http_1.default.Server(app);
|
|
131
|
-
const io =
|
|
132
|
+
const io = new socket_io_1.Server(server, socket_utils_1.DEFAULT_SOCKET_IO_V2_PARAMS);
|
|
133
|
+
(0, socket_utils_1.startEio3Interceptor)(io);
|
|
132
134
|
camera.on('snapshot', async (data, fileName) => {
|
|
133
135
|
io.emit('image', {
|
|
134
136
|
img: 'data:image/jpeg;base64,' + data.toString('base64'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"camera-debug.js","sourceRoot":"","sources":["../../../cli/linux/camera-debug.ts"],"names":[],"mappings":";;;;;;AAEA,+DAA4D;AAC5D,wDAAgC;AAEhC,+DAA4D;AAC5D,sDAA+C;AAC/C,0DAAgC;AAChC,gDAAwB;AACxB,4CAAoB;AACpB,+DAA4D;AAC5D,mCAAoC;AACpC,gDAAwB;AACxB,
|
|
1
|
+
{"version":3,"file":"camera-debug.js","sourceRoot":"","sources":["../../../cli/linux/camera-debug.ts"],"names":[],"mappings":"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"}
|
package/build/cli/linux/linux.js
CHANGED
|
@@ -29,6 +29,10 @@ commander_1.default
|
|
|
29
29
|
.option('--silent', `Run in silent mode, don't prompt for credentials`)
|
|
30
30
|
.option('--dev', 'List development servers, alternatively you can use the EI_HOST environmental variable ' +
|
|
31
31
|
'to specify the Edge Impulse instance.')
|
|
32
|
+
.option('--camera <camera>', 'Which camera to use (either the name, or the device address - e.g. /dev/video0). ' +
|
|
33
|
+
'If this argument is omitted, and multiple cameras are found, a CLI selector is shown.')
|
|
34
|
+
.option('--microphone <microphone>', 'Which microphone to use (either the name, or the device address). ' +
|
|
35
|
+
'If this argument is omitted, and multiple microphones are found, a CLI selector is shown.')
|
|
32
36
|
.option('--verbose', 'Enable debug logs')
|
|
33
37
|
.option('--greengrass', 'Enable AWS IoT greengrass integration mode')
|
|
34
38
|
.allowUnknownOption(true)
|
|
@@ -49,6 +53,8 @@ const dimensions = commander_1.default.width && commander_1.default.height ? {
|
|
|
49
53
|
width: Number(commander_1.default.width),
|
|
50
54
|
height: Number(commander_1.default.height)
|
|
51
55
|
} : undefined;
|
|
56
|
+
const cameraArgv = commander_1.default.camera;
|
|
57
|
+
const microphoneArgv = commander_1.default.microphone;
|
|
52
58
|
if ((commander_1.default.width && !commander_1.default.height) || (!commander_1.default.width && commander_1.default.height)) {
|
|
53
59
|
console.error('--width and --height need to either be both specified or both omitted');
|
|
54
60
|
process.exit(1);
|
|
@@ -126,24 +132,27 @@ let isExiting = false;
|
|
|
126
132
|
process.on('SIGHUP', onSignal);
|
|
127
133
|
process.on('SIGINT', onSignal);
|
|
128
134
|
if (!noMicrophone) {
|
|
129
|
-
let audioDeviceName =
|
|
135
|
+
let audioDeviceName = '';
|
|
130
136
|
try {
|
|
131
|
-
audioDeviceName = await (0, sensors_helper_1.initMicrophone)(
|
|
137
|
+
audioDeviceName = await (0, sensors_helper_1.initMicrophone)({
|
|
138
|
+
audioDeviceNameInConfig: await configFactory.getAudio(),
|
|
139
|
+
audioNameArgv: microphoneArgv,
|
|
140
|
+
});
|
|
132
141
|
}
|
|
133
|
-
catch (
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
142
|
+
catch (ex2) {
|
|
143
|
+
const ex = ex2;
|
|
144
|
+
console.warn(SERIAL_PREFIX, (ex.message || ex.toString()));
|
|
145
|
+
process.exit(1);
|
|
137
146
|
}
|
|
138
147
|
await configFactory.storeAudio(audioDeviceName);
|
|
139
148
|
linuxDevice.setAudioDeviceName(audioDeviceName);
|
|
140
149
|
console.log(SERIAL_PREFIX, 'Using microphone', audioDeviceName);
|
|
141
150
|
}
|
|
142
151
|
if (!noCamera) {
|
|
143
|
-
const storedCamera = await configFactory.getCamera();
|
|
144
152
|
camera = await (0, sensors_helper_1.initCamera)({
|
|
145
153
|
cameraType: cameraType,
|
|
146
|
-
|
|
154
|
+
cameraDeviceNameInConfig: await configFactory.getCamera(),
|
|
155
|
+
cameraNameArgv: cameraArgv,
|
|
147
156
|
dimensions: dimensions,
|
|
148
157
|
gstLaunchArgs: gstLaunchArgsArgv,
|
|
149
158
|
verboseOutput: verboseArgv,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linux.js","sourceRoot":"","sources":["../../../cli/linux/linux.ts"],"names":[],"mappings":";;;;;;AAEA,wDAAgC;AAChC,gEAAwE;AACxE,8EAAkE;AAGlE,0DAAgC;AAChC,gDAAwB;AACxB,4CAAoB;AACpB,4CAA2B;AAC3B,yEAA8F;AAC9F,iDAA6C;AAE7C,MAAM,cAAc,GAAyB,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CACnE,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAE,CAAC,OAAO,CAAC;AAE/E,mBAAO;KACF,WAAW,CAAC,4BAA4B,GAAG,cAAc,CAAC;KAC1D,OAAO,CAAC,cAAc,CAAC;KACvB,MAAM,CAAC,iBAAiB,EAAE,2EAA2E,CAAC;KACtG,MAAM,CAAC,kBAAkB,EAAE,gEAAgE,CAAC;KAC5F,MAAM,CAAC,kBAAkB,EAAE,yBAAyB,CAAC;KACrD,MAAM,CAAC,sBAAsB,EAAE,6BAA6B,CAAC;KAC7D,MAAM,CAAC,cAAc,EAAE,oCAAoC,CAAC;KAC5D,MAAM,CAAC,eAAe,EAAE,qCAAqC,CAAC;KAC9D,MAAM,CAAC,0BAA0B,EAAE,oGAAoG;IACpI,0FAA0F,CAAC;KAC9F,MAAM,CAAC,SAAS,EAAE,mBAAmB,CAAC;KACtC,MAAM,CAAC,UAAU,EAAE,kDAAkD,CAAC;KACtE,MAAM,CAAC,OAAO,EAAE,yFAAyF;IACtG,uCAAuC,CAAC;KAC3C,MAAM,CAAC,WAAW,EAAE,mBAAmB,CAAC;KACxC,MAAM,CAAC,cAAc,EAAE,4CAA4C,CAAC;KACpE,kBAAkB,CAAC,IAAI,CAAC;KACxB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAEzB,MAAM,OAAO,GAAY,CAAC,CAAC,mBAAO,CAAC,GAAG,CAAC;AACvC,MAAM,SAAS,GAAY,CAAC,CAAC,mBAAO,CAAC,KAAK,CAAC;AAC3C,MAAM,UAAU,GAAY,CAAC,CAAC,mBAAO,CAAC,MAAM,CAAC;AAC7C,MAAM,WAAW,GAAY,CAAC,CAAC,mBAAO,CAAC,OAAO,CAAC;AAC/C,MAAM,UAAU,GAAuB,mBAAO,CAAC,MAAM,CAAC;AACtD,MAAM,cAAc,GAAY,CAAC,CAAC,mBAAO,CAAC,UAAU,CAAC;AACrD,MAAM,WAAW,GAAuB,mBAAO,CAAC,OAAO,CAAC;AACxD,MAAM,iBAAiB,GAAuB,mBAAO,CAAC,aAAa,CAAC;AACpE,MAAM,QAAQ,GAAY,CAAC,CAAC,mBAAO,CAAC,aAAa,CAAC;AAClD,MAAM,YAAY,GAAY,CAAC,CAAC,mBAAO,CAAC,iBAAiB,CAAC;AAC1D,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,GAAG,CAAC;AACtD,MAAM,WAAW,GAAG,WAAW,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC;AACtE,MAAM,UAAU,GAAG,mBAAO,CAAC,KAAK,IAAI,mBAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IACjD,KAAK,EAAE,MAAM,CAAC,mBAAO,CAAC,KAAK,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC,mBAAO,CAAC,MAAM,CAAC;CACjC,CAAC,CAAC,CAAC,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"linux.js","sourceRoot":"","sources":["../../../cli/linux/linux.ts"],"names":[],"mappings":";;;;;;AAEA,wDAAgC;AAChC,gEAAwE;AACxE,8EAAkE;AAGlE,0DAAgC;AAChC,gDAAwB;AACxB,4CAAoB;AACpB,4CAA2B;AAC3B,yEAA8F;AAC9F,iDAA6C;AAE7C,MAAM,cAAc,GAAyB,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CACnE,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAE,CAAC,OAAO,CAAC;AAE/E,mBAAO;KACF,WAAW,CAAC,4BAA4B,GAAG,cAAc,CAAC;KAC1D,OAAO,CAAC,cAAc,CAAC;KACvB,MAAM,CAAC,iBAAiB,EAAE,2EAA2E,CAAC;KACtG,MAAM,CAAC,kBAAkB,EAAE,gEAAgE,CAAC;KAC5F,MAAM,CAAC,kBAAkB,EAAE,yBAAyB,CAAC;KACrD,MAAM,CAAC,sBAAsB,EAAE,6BAA6B,CAAC;KAC7D,MAAM,CAAC,cAAc,EAAE,oCAAoC,CAAC;KAC5D,MAAM,CAAC,eAAe,EAAE,qCAAqC,CAAC;KAC9D,MAAM,CAAC,0BAA0B,EAAE,oGAAoG;IACpI,0FAA0F,CAAC;KAC9F,MAAM,CAAC,SAAS,EAAE,mBAAmB,CAAC;KACtC,MAAM,CAAC,UAAU,EAAE,kDAAkD,CAAC;KACtE,MAAM,CAAC,OAAO,EAAE,yFAAyF;IACtG,uCAAuC,CAAC;KAC3C,MAAM,CAAC,mBAAmB,EAAE,mFAAmF;IAC5G,uFAAuF,CAAC;KAC3F,MAAM,CAAC,2BAA2B,EAAE,oEAAoE;IACrG,2FAA2F,CAAC;KAC/F,MAAM,CAAC,WAAW,EAAE,mBAAmB,CAAC;KACxC,MAAM,CAAC,cAAc,EAAE,4CAA4C,CAAC;KACpE,kBAAkB,CAAC,IAAI,CAAC;KACxB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAEzB,MAAM,OAAO,GAAY,CAAC,CAAC,mBAAO,CAAC,GAAG,CAAC;AACvC,MAAM,SAAS,GAAY,CAAC,CAAC,mBAAO,CAAC,KAAK,CAAC;AAC3C,MAAM,UAAU,GAAY,CAAC,CAAC,mBAAO,CAAC,MAAM,CAAC;AAC7C,MAAM,WAAW,GAAY,CAAC,CAAC,mBAAO,CAAC,OAAO,CAAC;AAC/C,MAAM,UAAU,GAAuB,mBAAO,CAAC,MAAM,CAAC;AACtD,MAAM,cAAc,GAAY,CAAC,CAAC,mBAAO,CAAC,UAAU,CAAC;AACrD,MAAM,WAAW,GAAuB,mBAAO,CAAC,OAAO,CAAC;AACxD,MAAM,iBAAiB,GAAuB,mBAAO,CAAC,aAAa,CAAC;AACpE,MAAM,QAAQ,GAAY,CAAC,CAAC,mBAAO,CAAC,aAAa,CAAC;AAClD,MAAM,YAAY,GAAY,CAAC,CAAC,mBAAO,CAAC,iBAAiB,CAAC;AAC1D,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,GAAG,CAAC;AACtD,MAAM,WAAW,GAAG,WAAW,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC;AACtE,MAAM,UAAU,GAAG,mBAAO,CAAC,KAAK,IAAI,mBAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IACjD,KAAK,EAAE,MAAM,CAAC,mBAAO,CAAC,KAAK,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC,mBAAO,CAAC,MAAM,CAAC;CACjC,CAAC,CAAC,CAAC,SAAS,CAAC;AACd,MAAM,UAAU,GAAuB,mBAAO,CAAC,MAAM,CAAC;AACtD,MAAM,cAAc,GAAuB,mBAAO,CAAC,UAAU,CAAC;AAE9D,IAAI,CAAC,mBAAO,CAAC,KAAK,IAAI,CAAC,mBAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,mBAAO,CAAC,KAAK,IAAI,mBAAO,CAAC,MAAM,CAAC,EAAE;IAC1E,OAAO,CAAC,KAAK,CAAC,uEAAuE,CAAC,CAAC;IACvF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;CACnB;AAED,MAAM,aAAa,GAAG,sBAAsB,CAAC;AAE7C,MAAM,UAAU,GAAG;IACf,OAAO,EAAE,2BAA2B;IACpC,UAAU,EAAE,UAAU;IACtB,cAAc,EAAE,cAAc;IAC9B,SAAS,EAAE,SAAS;IACpB,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,WAAW;IACxB,UAAU,EAAE,UAAU;IACtB,iBAAiB,EAAE,sDAAsD;IACzE,oBAAoB,EAAE,KAAK,IAAI,EAAE;QAC7B,IAAI,SAAS,GAAG,MAAM,aAAa,CAAC,iBAAiB,EAAE,CAAC;QACxD,IAAI,CAAC,SAAS,EAAE;YACZ,OAAO,SAAS,CAAC;SACpB;QACD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;IACpC,CAAC;CACJ,CAAC;AAEF,IAAI,MAA2B,CAAC;AAChC,IAAI,aAAqB,CAAC;AAC1B,IAAI,SAAS,GAAG,KAAK,CAAC;AAEtB,CAAC,KAAK,IAAI,EAAE;IACR,IAAI;QACA,MAAM,UAAU,GACZ,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,GAAG,CAAC,CAAC,CAAC,2BAAU,CAAC,eAAe,CAAC,CAAC;YAChE,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,2BAAU,CAAC,eAAe,CAAC,CAAC;gBAC5D,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,2BAAU,CAAC,eAAe,CAAC,CAAC;oBACvD,2BAAU,CAAC,aAAa,CAAC;QACjC,MAAM,IAAI,GAAG,MAAM,IAAA,yBAAU,EAAC,UAAU,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QAEnC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,0BAAW,EAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QAE/F,MAAM,aAAa,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAEjD,MAAM,WAAW,GAAG,IAAI,0BAAW,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAClG,aAAa,CAAC,CAAC;QACnB,MAAM,UAAU,GAAG,IAAI,gCAAU,CAAC,SAAS,EACvC,OAAO,EACP,MAAM,CAAC,MAAM,CAAC;YACV,OAAO,EAAwB,oBAAoB;SACtD,EAAE,MAAM,CAAC,EACV,WAAW,EACX,SAAS,EAAE,0BAA0B;QACrC,AADW,0BAA0B;QACrC,GAAG,CAAC,EAAE,CAAC,IAAI,YAAS,CAAC,GAAG,CAAC,EACzB,KAAK,EAAE,QAAQ,EAAE,EAAE;YACf,4EAA4E;YAC5E,IAAI,UAAU,GAA2B,MAAM,kBAAQ,CAAC,MAAM,CAAC,CAAC;oBAC5D,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,4CAA4C;oBACrD,IAAI,EAAE,YAAY;oBAClB,OAAO,EAAE,QAAQ;iBACpB,CAAC,CAAC,CAAC;YACJ,OAAO,UAAU,CAAC,UAAU,CAAC;QACjC,CAAC,CAAC,CAAC;QAEP,IAAI,SAAS,GAAG,IAAI,CAAC;QAErB,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;YACxB,IAAI,CAAC,SAAS,EAAE;gBACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACnB;iBACI;gBACD,SAAS,GAAG,IAAI,CAAC;gBAEjB,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,gDAAgD;oBACvE,mCAAmC,CAAC,CAAC;gBACzC,SAAS,GAAG,KAAK,CAAC;gBAClB,IAAI;oBACA,IAAI,MAAM,EAAE;wBACR,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;qBACvB;oBACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBACnB;gBACD,OAAO,GAAG,EAAE;oBACR,IAAI,EAAE,GAAU,GAAG,CAAC;oBACpB,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,4BAA4B,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;iBACxE;gBACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACnB;QACL,CAAC,CAAC;QAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC/B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAE/B,IAAI,CAAC,YAAY,EAAE;YACf,IAAI,eAAe,GAAG,EAAE,CAAC;YACzB,IAAI;gBACA,eAAe,GAAG,MAAM,IAAA,+BAAc,EAAC;oBACnC,uBAAuB,EAAE,MAAM,aAAa,CAAC,QAAQ,EAAE;oBACvD,aAAa,EAAE,cAAc;iBAChC,CAAC,CAAC;aACN;YACD,OAAO,GAAG,EAAE;gBACR,MAAM,EAAE,GAAU,GAAG,CAAC;gBACtB,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;gBAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACnB;YACD,MAAM,aAAa,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;YAChD,WAAW,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;YAEhD,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,kBAAkB,EAAE,eAAe,CAAC,CAAC;SACnE;QAED,IAAI,CAAC,QAAQ,EAAE;YACX,MAAM,GAAG,MAAM,IAAA,2BAAU,EAAC;gBACtB,UAAU,EAAE,UAAU;gBACtB,wBAAwB,EAAE,MAAM,aAAa,CAAC,SAAS,EAAE;gBACzD,cAAc,EAAE,UAAU;gBAC1B,UAAU,EAAE,UAAU;gBACtB,aAAa,EAAE,iBAAiB;gBAChC,aAAa,EAAE,WAAW;gBAC1B,mBAAmB,EAAE,SAAS;aACjC,CAAC,CAAC;YAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;gBACvB,IAAI,SAAS;oBAAE,OAAO;gBAEtB,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;gBACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC,CAAC,CAAC;YAEH,IAAI,IAAI,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;YACnC,IAAI,CAAC,IAAI,EAAE;gBACP,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;aAC5D;YACD,MAAM,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7C,WAAW,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC;YAElD,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,sBAAsB,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;SACpE;QAED,UAAU,CAAC,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;YAC7C,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAAC;YACpD,IAAI,MAAM,EAAE;gBACR,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;aACvB;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC;KAC9B;IACD,OAAO,EAAE,EAAE;QACP,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,EAAE,CAAC,CAAC;QACrD,IAAI,MAAM,EAAE;YACR,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;SACvB;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACnB;AACL,CAAC,CAAC,EAAE,CAAC"}
|
|
@@ -1,15 +1,23 @@
|
|
|
1
|
-
import { EdgeImpulseApi } from '../../sdk/studio/api';
|
|
2
|
-
import { LinuxImpulseRunner, ModelInformation } from '../../library/classifier/linux-impulse-runner';
|
|
1
|
+
import type { EdgeImpulseApi } from '../../sdk/studio/api';
|
|
2
|
+
import { type LinuxImpulseRunner, type ModelInformation } from '../../library/classifier/linux-impulse-runner';
|
|
3
3
|
import { ImageClassifier } from '../../library/classifier/image-classifier';
|
|
4
|
-
import { ICamera } from '../../library/sensors/icamera';
|
|
4
|
+
import type { ICamera } from '../../library/sensors/icamera';
|
|
5
5
|
export declare function listTargets(projectId: number, api: EdgeImpulseApi): Promise<void>;
|
|
6
6
|
export declare function audioClassifierHelloMsg(model: ModelInformation): void;
|
|
7
7
|
export declare function imageClassifierHelloMsg(model: ModelInformation): void;
|
|
8
8
|
export declare function printThresholds(model: ModelInformation): void;
|
|
9
|
-
export declare function startApiServer(
|
|
9
|
+
export declare function startApiServer(opts: {
|
|
10
|
+
model: ModelInformation;
|
|
11
|
+
runner: LinuxImpulseRunner;
|
|
12
|
+
projectStudioUrl: string;
|
|
13
|
+
port: number;
|
|
14
|
+
printIncomingInferenceReqs: boolean;
|
|
15
|
+
}): Promise<void>;
|
|
10
16
|
export declare function startWebServer(opts: {
|
|
11
17
|
model: ModelInformation;
|
|
12
18
|
camera: ICamera;
|
|
13
19
|
imgClassifier: ImageClassifier;
|
|
14
20
|
verbose: boolean;
|
|
21
|
+
host: string;
|
|
22
|
+
port: number;
|
|
15
23
|
}): Promise<number>;
|
|
@@ -4,27 +4,31 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.startWebServer = exports.startApiServer = exports.printThresholds = exports.imageClassifierHelloMsg = exports.audioClassifierHelloMsg = exports.listTargets = void 0;
|
|
7
|
-
const
|
|
7
|
+
const node_http_1 = require("node:http");
|
|
8
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
9
|
+
const node_util_1 = require("node:util");
|
|
10
|
+
const express_1 = __importDefault(require("express"));
|
|
8
11
|
const multer_1 = __importDefault(require("multer"));
|
|
9
|
-
const
|
|
12
|
+
const sharp_1 = __importDefault(require("sharp"));
|
|
13
|
+
const socket_io_1 = require("socket.io");
|
|
14
|
+
const linux_impulse_runner_1 = require("../../library/classifier/linux-impulse-runner");
|
|
10
15
|
const inference_server_view_1 = require("./webserver/views/inference-server-view");
|
|
11
16
|
const asyncMiddleware_1 = require("./webserver/middleware/asyncMiddleware");
|
|
12
|
-
const express = require("express");
|
|
13
|
-
const http_1 = __importDefault(require("http"));
|
|
14
17
|
const image_classifier_1 = require("../../library/classifier/image-classifier");
|
|
15
|
-
const
|
|
16
|
-
const
|
|
17
|
-
const
|
|
18
|
+
const socket_utils_1 = require("../../cli-common/socket-utils");
|
|
19
|
+
const ws_1 = __importDefault(require("ws"));
|
|
20
|
+
const url_1 = __importDefault(require("url"));
|
|
21
|
+
const views_1 = require("./webserver/views");
|
|
18
22
|
const RUNNER_PREFIX = '\x1b[33m[RUN]\x1b[0m';
|
|
19
23
|
async function listTargets(projectId, api) {
|
|
20
24
|
const targets = await api.deployment.listDeploymentTargetsForProjectDataSources(projectId, {});
|
|
21
25
|
console.log('Listing all available targets');
|
|
22
26
|
console.log('-----------------------------');
|
|
23
|
-
for (let t of targets
|
|
27
|
+
for (let t of targets?.targets?.filter(x => x.format?.startsWith('runner')) || []) {
|
|
24
28
|
console.log(`target: ${t.format}, ` +
|
|
25
29
|
`name: ${t.name}, ` +
|
|
26
|
-
`supported engines: [${t.supportedEngines
|
|
27
|
-
`supported variants: [${t.modelVariants
|
|
30
|
+
`supported engines: [${t.supportedEngines?.join(', ') ?? ''}], ` +
|
|
31
|
+
`supported variants: [${t.modelVariants?.filter(x => x.supported)?.map(x => x.variant).join(', ') ?? ''}]`);
|
|
28
32
|
}
|
|
29
33
|
}
|
|
30
34
|
exports.listTargets = listTargets;
|
|
@@ -71,19 +75,20 @@ function printThresholds(model) {
|
|
|
71
75
|
}
|
|
72
76
|
}
|
|
73
77
|
exports.printThresholds = printThresholds;
|
|
74
|
-
function startApiServer(
|
|
75
|
-
const
|
|
78
|
+
function startApiServer(opts) {
|
|
79
|
+
const { model, runner, projectStudioUrl, port, printIncomingInferenceReqs } = opts;
|
|
80
|
+
const app = (0, express_1.default)();
|
|
76
81
|
app.disable('x-powered-by');
|
|
77
|
-
app.use(
|
|
78
|
-
app.use(
|
|
82
|
+
app.use(express_1.default.json({ limit: '150mb' }));
|
|
83
|
+
app.use(express_1.default.urlencoded({ extended: true }));
|
|
79
84
|
app.use((req, res, next) => {
|
|
80
85
|
res.header('x-ei-owner', model.project.owner);
|
|
81
86
|
res.header('x-ei-project-name', model.project.name);
|
|
82
87
|
res.header('x-ei-project-version', model.project.deploy_version.toString());
|
|
83
88
|
next();
|
|
84
89
|
});
|
|
85
|
-
const server = new
|
|
86
|
-
app.get('/', (0, asyncMiddleware_1.asyncMiddleware)(
|
|
90
|
+
const server = new node_http_1.Server(app);
|
|
91
|
+
app.get('/', (0, asyncMiddleware_1.asyncMiddleware)((req, res) => {
|
|
87
92
|
let text = [
|
|
88
93
|
'Edge Impulse inference server for ' +
|
|
89
94
|
model.project.owner + ' / ' + model.project.name + ' (v' + model.project.deploy_version + ')',
|
|
@@ -136,7 +141,7 @@ function startApiServer(model, runner, projectStudioUrl, port) {
|
|
|
136
141
|
res.header('Content-Type', 'text/html');
|
|
137
142
|
res.end(view.toString());
|
|
138
143
|
}));
|
|
139
|
-
app.get('/api/info', (0, asyncMiddleware_1.asyncMiddleware)(
|
|
144
|
+
app.get('/api/info', (0, asyncMiddleware_1.asyncMiddleware)((req, res) => {
|
|
140
145
|
res.header('Content-Type', 'application/json');
|
|
141
146
|
let modelParametersCloned = Object.assign({
|
|
142
147
|
has_visual_anomaly_detection: model.modelParameters.has_anomaly === linux_impulse_runner_1.RunnerHelloHasAnomaly.VisualGMM,
|
|
@@ -172,7 +177,9 @@ function startApiServer(model, runner, projectStudioUrl, port) {
|
|
|
172
177
|
res.header('Content-Type', 'text/plain');
|
|
173
178
|
return res.end(ex.message || ex.toString() + '\n');
|
|
174
179
|
}
|
|
175
|
-
|
|
180
|
+
if (printIncomingInferenceReqs) {
|
|
181
|
+
console.log(RUNNER_PREFIX, 'Incoming inference request (/api/features)');
|
|
182
|
+
}
|
|
176
183
|
let response = await runner.classify(body.features);
|
|
177
184
|
res.header('Content-Type', 'application/json');
|
|
178
185
|
return res.end(JSON.stringify(response, null, 4) + '\n');
|
|
@@ -182,7 +189,7 @@ function startApiServer(model, runner, projectStudioUrl, port) {
|
|
|
182
189
|
try {
|
|
183
190
|
const multipartUpload = (0, multer_1.default)({ limits: { files: 1, fileSize: 100 * 1024 * 1024 } });
|
|
184
191
|
const fields = [{ name: "file", maxCount: 1 }];
|
|
185
|
-
await
|
|
192
|
+
await (0, node_util_1.promisify)(multipartUpload.fields(fields))(req, res);
|
|
186
193
|
if (!req.files) {
|
|
187
194
|
throw new Error('No files posted, requiring a multipart/form-data body with 1 item "file"');
|
|
188
195
|
}
|
|
@@ -196,8 +203,10 @@ function startApiServer(model, runner, projectStudioUrl, port) {
|
|
|
196
203
|
if (!file) {
|
|
197
204
|
throw new Error('Missing "file" in the multipart/form-data');
|
|
198
205
|
}
|
|
199
|
-
|
|
200
|
-
(
|
|
206
|
+
if (printIncomingInferenceReqs) {
|
|
207
|
+
console.log(RUNNER_PREFIX, 'Incoming inference request (/api/image) for ' +
|
|
208
|
+
(file.originalname || 'a file with size ' + file.size + ' bytes'));
|
|
209
|
+
}
|
|
201
210
|
resized = (await image_classifier_1.ImageClassifier.resizeImage(model, file.buffer));
|
|
202
211
|
}
|
|
203
212
|
catch (ex2) {
|
|
@@ -280,20 +289,45 @@ function startApiServer(model, runner, projectStudioUrl, port) {
|
|
|
280
289
|
res.header('Content-Type', 'application/json');
|
|
281
290
|
return res.end(JSON.stringify(response, null, 4) + '\n');
|
|
282
291
|
}));
|
|
283
|
-
app.use(
|
|
284
|
-
return new Promise((resolve) => {
|
|
292
|
+
app.use(express_1.default.static(node_path_1.default.join(__dirname, '..', '..', '..', 'cli', 'linux', 'webserver', 'public')));
|
|
293
|
+
return new Promise((resolve, reject) => {
|
|
285
294
|
server.listen(port, process.env.HOST || '0.0.0.0', async () => {
|
|
286
295
|
resolve();
|
|
287
296
|
});
|
|
297
|
+
server.on('error', err => {
|
|
298
|
+
reject(err);
|
|
299
|
+
});
|
|
288
300
|
});
|
|
289
301
|
}
|
|
290
302
|
exports.startApiServer = startApiServer;
|
|
291
303
|
function startWebServer(opts) {
|
|
292
304
|
const { model, camera, imgClassifier, verbose } = opts;
|
|
293
|
-
const
|
|
294
|
-
app
|
|
295
|
-
|
|
296
|
-
|
|
305
|
+
const publicFolder = node_path_1.default.join(__dirname, '..', '..', '..', 'cli', 'linux', 'webserver', 'public');
|
|
306
|
+
const app = (0, express_1.default)();
|
|
307
|
+
app.get('/', (0, asyncMiddleware_1.asyncMiddleware)(async (req, res) => {
|
|
308
|
+
const view = (0, views_1.renderIndexView)({
|
|
309
|
+
isEmbedView: false,
|
|
310
|
+
});
|
|
311
|
+
res.status(200);
|
|
312
|
+
res.header('Content-Type', 'text/html');
|
|
313
|
+
res.end(view.toString());
|
|
314
|
+
}));
|
|
315
|
+
app.get('/embed', (0, asyncMiddleware_1.asyncMiddleware)(async (req, res) => {
|
|
316
|
+
const view = (0, views_1.renderIndexView)({
|
|
317
|
+
isEmbedView: true,
|
|
318
|
+
});
|
|
319
|
+
res.status(200);
|
|
320
|
+
res.header('Content-Type', 'text/html');
|
|
321
|
+
res.end(view.toString());
|
|
322
|
+
}));
|
|
323
|
+
app.use(express_1.default.static(publicFolder));
|
|
324
|
+
const server = new node_http_1.Server(app);
|
|
325
|
+
const io = new socket_io_1.Server(server, socket_utils_1.DEFAULT_SOCKET_IO_V2_PARAMS);
|
|
326
|
+
(0, socket_utils_1.startEio3Interceptor)(io);
|
|
327
|
+
const wss = new ws_1.default.Server({
|
|
328
|
+
noServer: true,
|
|
329
|
+
});
|
|
330
|
+
const websocketsToSendPreviews = new Set();
|
|
297
331
|
// you can also get the actual image being classified from 'imageClassifier.on("result")',
|
|
298
332
|
// but then you're limited by the inference speed.
|
|
299
333
|
// here we get a direct feed from the camera so we guarantee the fps that we set earlier.
|
|
@@ -319,9 +353,16 @@ function startWebServer(opts) {
|
|
|
319
353
|
fastShrinkOnLoad: false
|
|
320
354
|
}).toColourspace('b-w');
|
|
321
355
|
}
|
|
356
|
+
const imgBase64 = 'data:image/jpeg;base64,' + (await img.jpeg().toBuffer()).toString('base64');
|
|
322
357
|
io.emit('image', {
|
|
323
|
-
img:
|
|
358
|
+
img: imgBase64,
|
|
324
359
|
});
|
|
360
|
+
for (const wsClient of websocketsToSendPreviews) {
|
|
361
|
+
wsClient.send(JSON.stringify({
|
|
362
|
+
type: 'camera-preview',
|
|
363
|
+
image: imgBase64,
|
|
364
|
+
}));
|
|
365
|
+
}
|
|
325
366
|
nextFrame = Date.now() + 50;
|
|
326
367
|
}
|
|
327
368
|
catch (ex2) {
|
|
@@ -335,43 +376,146 @@ function startWebServer(opts) {
|
|
|
335
376
|
processingFrame = false;
|
|
336
377
|
}
|
|
337
378
|
});
|
|
338
|
-
imgClassifier.on('result',
|
|
379
|
+
imgClassifier.on('result', (result, timeMs, imgAsJpg) => {
|
|
339
380
|
io.emit('classification', {
|
|
340
381
|
modelType: model.modelParameters.model_type,
|
|
341
382
|
result: result.result,
|
|
342
383
|
timeMs: timeMs,
|
|
343
384
|
additionalInfo: result.info,
|
|
344
385
|
});
|
|
386
|
+
for (const client of wss.clients) {
|
|
387
|
+
client.send(JSON.stringify({
|
|
388
|
+
type: 'classification',
|
|
389
|
+
result: result.result,
|
|
390
|
+
timeMs: timeMs,
|
|
391
|
+
additionalInfo: result.info,
|
|
392
|
+
}));
|
|
393
|
+
}
|
|
345
394
|
});
|
|
395
|
+
const onThresholdOverride = async (ev) => {
|
|
396
|
+
try {
|
|
397
|
+
process.stdout.write(`Updating threshold for block ID ${ev.id}, key ${ev.key} to: ${ev.value}... `);
|
|
398
|
+
if (typeof ev.id !== 'number') {
|
|
399
|
+
throw new Error(`Invalid value for "id", should be a number (type: ${typeof ev.id})`);
|
|
400
|
+
}
|
|
401
|
+
if (typeof ev.key !== 'string' || ev.key === '') {
|
|
402
|
+
throw new Error(`Invalid value for "key", should be a string (type: ${typeof ev.key})`);
|
|
403
|
+
}
|
|
404
|
+
if (typeof ev.value !== 'number') {
|
|
405
|
+
throw new Error(`Invalid value for "value", should be a number (type: ${typeof ev.value})`);
|
|
406
|
+
}
|
|
407
|
+
let thresholdObj = (model.modelParameters.thresholds || []).find(x => x.id === ev.id);
|
|
408
|
+
if (!thresholdObj) {
|
|
409
|
+
throw new Error(`Cannot find threshold with ID ` + ev.id);
|
|
410
|
+
}
|
|
411
|
+
const thresholdKeys = Object.keys(thresholdObj).filter(x => x !== 'id' && x !== 'type');
|
|
412
|
+
if (thresholdKeys.indexOf(ev.key) === -1) {
|
|
413
|
+
throw new Error(`Threshold key "${ev.key}" not found (valid keys: [ ${thresholdKeys.map(x => `"${x}"`).join(', ')} ])`);
|
|
414
|
+
}
|
|
415
|
+
let obj = {
|
|
416
|
+
id: ev.id,
|
|
417
|
+
};
|
|
418
|
+
obj.type = thresholdObj.type;
|
|
419
|
+
obj[ev.key] = ev.value;
|
|
420
|
+
await imgClassifier.getRunner().setLearnBlockThreshold(obj);
|
|
421
|
+
thresholdObj[ev.key] = ev.value;
|
|
422
|
+
console.log(`OK`);
|
|
423
|
+
}
|
|
424
|
+
catch (ex2) {
|
|
425
|
+
const ex = ex2;
|
|
426
|
+
console.log('Failed to set threshold:', ex);
|
|
427
|
+
throw new Error(`Failed to set threshold "${ev.key}" (block ID: ${ev.id}): ` + (ex.message || ex.toString()));
|
|
428
|
+
}
|
|
429
|
+
};
|
|
346
430
|
io.on('connection', socket => {
|
|
347
431
|
socket.emit('hello', {
|
|
348
432
|
projectName: model.project.owner + ' / ' + model.project.name,
|
|
349
433
|
thresholds: model.modelParameters.thresholds,
|
|
350
434
|
});
|
|
351
|
-
socket.on('threshold-override',
|
|
435
|
+
socket.on('threshold-override', (ev) => {
|
|
352
436
|
try {
|
|
353
|
-
|
|
354
|
-
let thresholdObj = (model.modelParameters.thresholds || []).find(x => x.id === ev.id);
|
|
355
|
-
if (!thresholdObj) {
|
|
356
|
-
throw new Error(`Cannot find threshold with ID ` + ev.id);
|
|
357
|
-
}
|
|
358
|
-
let obj = {
|
|
359
|
-
id: ev.id,
|
|
360
|
-
};
|
|
361
|
-
obj.type = thresholdObj.type;
|
|
362
|
-
obj[ev.key] = ev.value;
|
|
363
|
-
await imgClassifier.getRunner().setLearnBlockThreshold(obj);
|
|
364
|
-
thresholdObj[ev.key] = ev.value;
|
|
365
|
-
console.log(`OK`);
|
|
437
|
+
onThresholdOverride(ev);
|
|
366
438
|
}
|
|
367
439
|
catch (ex) {
|
|
368
|
-
|
|
440
|
+
// noop
|
|
441
|
+
}
|
|
442
|
+
});
|
|
443
|
+
});
|
|
444
|
+
wss.on('connection', (websocket) => {
|
|
445
|
+
websocket.send(JSON.stringify({
|
|
446
|
+
type: 'hello',
|
|
447
|
+
...model,
|
|
448
|
+
}));
|
|
449
|
+
websocket.on('message', async (msg) => {
|
|
450
|
+
let body;
|
|
451
|
+
let messageId;
|
|
452
|
+
try {
|
|
453
|
+
if (typeof msg !== 'string') {
|
|
454
|
+
throw new Error(`Can only handle messages of type "string"`);
|
|
455
|
+
}
|
|
456
|
+
body = JSON.parse(msg.toString());
|
|
457
|
+
messageId = body.messageId;
|
|
458
|
+
if (body.type === 'threshold-override') {
|
|
459
|
+
await onThresholdOverride({
|
|
460
|
+
id: body.id,
|
|
461
|
+
key: body.key,
|
|
462
|
+
value: body.value,
|
|
463
|
+
});
|
|
464
|
+
}
|
|
465
|
+
else if (body.type === 'toggle-camera-preview' ||
|
|
466
|
+
body.type === 'set-camera-preview') {
|
|
467
|
+
if (typeof body.enabled !== 'boolean') {
|
|
468
|
+
throw new Error(`Invalid value for "enabled", should be a boolean (type: ${typeof body.enabled})`);
|
|
469
|
+
}
|
|
470
|
+
if (body.enabled) {
|
|
471
|
+
websocketsToSendPreviews.add(websocket);
|
|
472
|
+
}
|
|
473
|
+
else {
|
|
474
|
+
websocketsToSendPreviews.delete(websocket);
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
else {
|
|
478
|
+
throw new Error(`Invalid "type" (${body.type})`);
|
|
479
|
+
}
|
|
480
|
+
websocket.send(JSON.stringify({
|
|
481
|
+
messageId: messageId,
|
|
482
|
+
type: 'handling-message-success',
|
|
483
|
+
message: msg,
|
|
484
|
+
}));
|
|
369
485
|
}
|
|
486
|
+
catch (ex2) {
|
|
487
|
+
const ex = ex2;
|
|
488
|
+
websocket.send(JSON.stringify({
|
|
489
|
+
messageId: messageId,
|
|
490
|
+
type: 'handling-message-error',
|
|
491
|
+
message: msg,
|
|
492
|
+
error: ex.message || ex.toString(),
|
|
493
|
+
}));
|
|
494
|
+
return;
|
|
495
|
+
}
|
|
496
|
+
});
|
|
497
|
+
websocket.on('close', () => {
|
|
498
|
+
websocketsToSendPreviews.delete(websocket);
|
|
370
499
|
});
|
|
371
500
|
});
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
501
|
+
server.on('upgrade', (request, socket, head) => {
|
|
502
|
+
const { pathname } = url_1.default.parse(request.url || '');
|
|
503
|
+
if (pathname === '/') {
|
|
504
|
+
// Only handle /ws upgrades with ws
|
|
505
|
+
wss.handleUpgrade(request, socket, head, (newWs) => {
|
|
506
|
+
wss.emit('connection', newWs, request);
|
|
507
|
+
});
|
|
508
|
+
}
|
|
509
|
+
else {
|
|
510
|
+
// socket.io will handle this
|
|
511
|
+
}
|
|
512
|
+
});
|
|
513
|
+
return new Promise((resolve, reject) => {
|
|
514
|
+
server.listen(opts.port, opts.host, async () => {
|
|
515
|
+
resolve(opts.port);
|
|
516
|
+
});
|
|
517
|
+
server.on('error', err => {
|
|
518
|
+
reject(err);
|
|
375
519
|
});
|
|
376
520
|
});
|
|
377
521
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner-utils.js","sourceRoot":"","sources":["../../../cli/linux/runner-utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runner-utils.js","sourceRoot":"","sources":["../../../cli/linux/runner-utils.ts"],"names":[],"mappings":"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"}
|