node-poweredup 10.0.0 → 10.1.0
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/README.md +0 -1
- package/dist/browser/poweredup.js +6193 -0
- package/dist/browser/poweredup.js.map +7 -0
- package/dist/consts.d.ts +40 -0
- package/dist/consts.d.ts.map +1 -1
- package/dist/consts.js +42 -0
- package/dist/consts.js.map +1 -1
- package/dist/devices/absolutemotor.d.ts +8 -6
- package/dist/devices/absolutemotor.d.ts.map +1 -1
- package/dist/devices/absolutemotor.js +24 -31
- package/dist/devices/absolutemotor.js.map +1 -1
- package/dist/devices/basicmotor.d.ts +11 -10
- package/dist/devices/basicmotor.d.ts.map +1 -1
- package/dist/devices/basicmotor.js +16 -22
- package/dist/devices/basicmotor.js.map +1 -1
- package/dist/devices/colordistancesensor.d.ts +13 -12
- package/dist/devices/colordistancesensor.d.ts.map +1 -1
- package/dist/devices/colordistancesensor.js +25 -31
- package/dist/devices/colordistancesensor.js.map +1 -1
- package/dist/devices/device.d.ts +15 -6
- package/dist/devices/device.d.ts.map +1 -1
- package/dist/devices/device.js +209 -21
- package/dist/devices/device.js.map +1 -1
- package/dist/devices/duplotrainbasespeaker.d.ts +4 -4
- package/dist/devices/duplotrainbasespeaker.d.ts.map +1 -1
- package/dist/devices/duplotrainbasespeaker.js +5 -8
- package/dist/devices/duplotrainbasespeaker.js.map +1 -1
- package/dist/devices/hubled.d.ts +5 -4
- package/dist/devices/hubled.d.ts.map +1 -1
- package/dist/devices/hubled.js +24 -24
- package/dist/devices/hubled.js.map +1 -1
- package/dist/devices/light.d.ts +7 -4
- package/dist/devices/light.d.ts.map +1 -1
- package/dist/devices/light.js +11 -17
- package/dist/devices/light.js.map +1 -1
- package/dist/devices/piezobuzzer.d.ts +3 -2
- package/dist/devices/piezobuzzer.d.ts.map +1 -1
- package/dist/devices/piezobuzzer.js +2 -2
- package/dist/devices/piezobuzzer.js.map +1 -1
- package/dist/devices/tachomotor.d.ts +14 -8
- package/dist/devices/tachomotor.d.ts.map +1 -1
- package/dist/devices/tachomotor.js +50 -56
- package/dist/devices/tachomotor.js.map +1 -1
- package/dist/devices/technic3x3colorlightmatrix.d.ts +3 -2
- package/dist/devices/technic3x3colorlightmatrix.d.ts.map +1 -1
- package/dist/devices/technic3x3colorlightmatrix.js +20 -23
- package/dist/devices/technic3x3colorlightmatrix.js.map +1 -1
- package/dist/devices/techniccolorsensor.d.ts +9 -4
- package/dist/devices/techniccolorsensor.d.ts.map +1 -1
- package/dist/devices/techniccolorsensor.js +99 -8
- package/dist/devices/techniccolorsensor.js.map +1 -1
- package/dist/devices/technicdistancesensor.d.ts +1 -1
- package/dist/devices/technicdistancesensor.js +1 -1
- package/dist/devices/technicmediumhubtiltsensor.d.ts +7 -6
- package/dist/devices/technicmediumhubtiltsensor.d.ts.map +1 -1
- package/dist/devices/technicmediumhubtiltsensor.js +9 -18
- package/dist/devices/technicmediumhubtiltsensor.js.map +1 -1
- package/dist/devices/tiltsensor.d.ts +4 -1
- package/dist/devices/tiltsensor.d.ts.map +1 -1
- package/dist/devices/tiltsensor.js +84 -3
- package/dist/devices/tiltsensor.js.map +1 -1
- package/dist/hubs/basehub.d.ts +1 -0
- package/dist/hubs/basehub.d.ts.map +1 -1
- package/dist/hubs/basehub.js +17 -0
- package/dist/hubs/basehub.js.map +1 -1
- package/dist/hubs/lpf2hub.d.ts +1 -0
- package/dist/hubs/lpf2hub.d.ts.map +1 -1
- package/dist/hubs/lpf2hub.js +11 -0
- package/dist/hubs/lpf2hub.js.map +1 -1
- package/dist/portoutputcommand.d.ts +13 -0
- package/dist/portoutputcommand.d.ts.map +1 -0
- package/dist/portoutputcommand.js +30 -0
- package/dist/portoutputcommand.js.map +1 -0
- package/dist/portoutputsleep.d.ts +6 -0
- package/dist/portoutputsleep.d.ts.map +1 -0
- package/dist/portoutputsleep.js +10 -0
- package/dist/portoutputsleep.js.map +1 -0
- package/dist/utils.d.ts +1 -3
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +13 -19
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
- package/src/consts.ts +44 -0
- package/src/devices/absolutemotor.ts +24 -31
- package/src/devices/basicmotor.ts +16 -22
- package/src/devices/colordistancesensor.ts +23 -29
- package/src/devices/device.ts +198 -20
- package/src/devices/duplotrainbasespeaker.ts +5 -8
- package/src/devices/hubled.ts +22 -22
- package/src/devices/light.ts +11 -18
- package/src/devices/piezobuzzer.ts +3 -3
- package/src/devices/tachomotor.ts +47 -53
- package/src/devices/technic3x3colorlightmatrix.ts +20 -23
- package/src/devices/techniccolorsensor.ts +102 -10
- package/src/devices/technicdistancesensor.ts +1 -1
- package/src/devices/technicmediumhubtiltsensor.ts +9 -18
- package/src/devices/tiltsensor.ts +85 -5
- package/src/hubs/basehub.ts +18 -0
- package/src/hubs/lpf2hub.ts +12 -5
- package/src/portoutputcommand.ts +37 -0
- package/src/portoutputsleep.ts +11 -0
- package/src/utils.ts +14 -19
- package/tsconfig.tsbuildinfo +1 -1
- package/webpack.config.cjs +35 -0
- package/dist/node/color.d.ts +0 -6
- package/dist/node/color.js +0 -15
- package/dist/node/color.js.map +0 -1
- package/dist/node/commands.d.ts +0 -299
- package/dist/node/commands.js +0 -672
- package/dist/node/commands.js.map +0 -1
- package/dist/node/connection.d.ts +0 -187
- package/dist/node/connection.js +0 -478
- package/dist/node/connection.js.map +0 -1
- package/dist/node/consts.d.ts +0 -644
- package/dist/node/consts.js +0 -675
- package/dist/node/consts.js.map +0 -1
- package/dist/node/devices/absolutemotor.d.ts +0 -43
- package/dist/node/devices/absolutemotor.js +0 -118
- package/dist/node/devices/absolutemotor.js.map +0 -1
- package/dist/node/devices/basicmotor.d.ts +0 -40
- package/dist/node/devices/basicmotor.js +0 -61
- package/dist/node/devices/basicmotor.js.map +0 -1
- package/dist/node/devices/colordistancesensor.d.ts +0 -79
- package/dist/node/devices/colordistancesensor.js +0 -284
- package/dist/node/devices/colordistancesensor.js.map +0 -1
- package/dist/node/devices/currentsensor.d.ts +0 -16
- package/dist/node/devices/currentsensor.js +0 -55
- package/dist/node/devices/currentsensor.js.map +0 -1
- package/dist/node/devices/device.d.ts +0 -71
- package/dist/node/devices/device.js +0 -162
- package/dist/node/devices/device.js.map +0 -1
- package/dist/node/devices/duplotrainbasecolorsensor.d.ts +0 -19
- package/dist/node/devices/duplotrainbasecolorsensor.js +0 -77
- package/dist/node/devices/duplotrainbasecolorsensor.js.map +0 -1
- package/dist/node/devices/duplotrainbasemotor.d.ts +0 -9
- package/dist/node/devices/duplotrainbasemotor.js +0 -12
- package/dist/node/devices/duplotrainbasemotor.js.map +0 -1
- package/dist/node/devices/duplotrainbasespeaker.d.ts +0 -28
- package/dist/node/devices/duplotrainbasespeaker.js +0 -40
- package/dist/node/devices/duplotrainbasespeaker.js.map +0 -1
- package/dist/node/devices/duplotrainbasespeedometer.d.ts +0 -16
- package/dist/node/devices/duplotrainbasespeedometer.js +0 -34
- package/dist/node/devices/duplotrainbasespeedometer.js.map +0 -1
- package/dist/node/devices/hubled.d.ts +0 -29
- package/dist/node/devices/hubled.js +0 -60
- package/dist/node/devices/hubled.js.map +0 -1
- package/dist/node/devices/index.d.ts +0 -14
- package/dist/node/devices/index.js +0 -154
- package/dist/node/devices/index.js.map +0 -1
- package/dist/node/devices/led.d.ts +0 -140
- package/dist/node/devices/led.js +0 -295
- package/dist/node/devices/led.js.map +0 -1
- package/dist/node/devices/light.d.ts +0 -25
- package/dist/node/devices/light.js +0 -46
- package/dist/node/devices/light.js.map +0 -1
- package/dist/node/devices/marioaccelerometer.d.ts +0 -17
- package/dist/node/devices/marioaccelerometer.js +0 -50
- package/dist/node/devices/marioaccelerometer.js.map +0 -1
- package/dist/node/devices/mariobarcodesensor.d.ts +0 -17
- package/dist/node/devices/mariobarcodesensor.js +0 -58
- package/dist/node/devices/mariobarcodesensor.js.map +0 -1
- package/dist/node/devices/mariopantssensor.d.ts +0 -16
- package/dist/node/devices/mariopantssensor.js +0 -34
- package/dist/node/devices/mariopantssensor.js.map +0 -1
- package/dist/node/devices/mediumlinearmotor.d.ts +0 -9
- package/dist/node/devices/mediumlinearmotor.js +0 -12
- package/dist/node/devices/mediumlinearmotor.js.map +0 -1
- package/dist/node/devices/motionsensor.d.ts +0 -16
- package/dist/node/devices/motionsensor.js +0 -38
- package/dist/node/devices/motionsensor.js.map +0 -1
- package/dist/node/devices/motor.d.ts +0 -182
- package/dist/node/devices/motor.js +0 -367
- package/dist/node/devices/motor.js.map +0 -1
- package/dist/node/devices/movehubmediumlinearmotor.d.ts +0 -9
- package/dist/node/devices/movehubmediumlinearmotor.js +0 -12
- package/dist/node/devices/movehubmediumlinearmotor.js.map +0 -1
- package/dist/node/devices/movehubtiltsensor.d.ts +0 -16
- package/dist/node/devices/movehubtiltsensor.js +0 -36
- package/dist/node/devices/movehubtiltsensor.js.map +0 -1
- package/dist/node/devices/piezobuzzer.d.ts +0 -17
- package/dist/node/devices/piezobuzzer.js +0 -28
- package/dist/node/devices/piezobuzzer.js.map +0 -1
- package/dist/node/devices/remotecontrolbutton.d.ts +0 -19
- package/dist/node/devices/remotecontrolbutton.js +0 -40
- package/dist/node/devices/remotecontrolbutton.js.map +0 -1
- package/dist/node/devices/sensor.d.ts +0 -305
- package/dist/node/devices/sensor.js +0 -662
- package/dist/node/devices/sensor.js.map +0 -1
- package/dist/node/devices/simplemediumlinearmotor.d.ts +0 -9
- package/dist/node/devices/simplemediumlinearmotor.js +0 -12
- package/dist/node/devices/simplemediumlinearmotor.js.map +0 -1
- package/dist/node/devices/tachomotor.d.ts +0 -70
- package/dist/node/devices/tachomotor.js +0 -167
- package/dist/node/devices/tachomotor.js.map +0 -1
- package/dist/node/devices/technic3x3colorlightmatrix.d.ts +0 -22
- package/dist/node/devices/technic3x3colorlightmatrix.js +0 -54
- package/dist/node/devices/technic3x3colorlightmatrix.js.map +0 -1
- package/dist/node/devices/techniccolorsensor.d.ts +0 -27
- package/dist/node/devices/techniccolorsensor.js +0 -72
- package/dist/node/devices/techniccolorsensor.js.map +0 -1
- package/dist/node/devices/technicdistancesensor.d.ts +0 -27
- package/dist/node/devices/technicdistancesensor.js +0 -58
- package/dist/node/devices/technicdistancesensor.js.map +0 -1
- package/dist/node/devices/technicforcesensor.d.ts +0 -18
- package/dist/node/devices/technicforcesensor.js +0 -58
- package/dist/node/devices/technicforcesensor.js.map +0 -1
- package/dist/node/devices/techniclargeangularmotor.d.ts +0 -12
- package/dist/node/devices/techniclargeangularmotor.js +0 -12
- package/dist/node/devices/techniclargeangularmotor.js.map +0 -1
- package/dist/node/devices/techniclargelinearmotor.d.ts +0 -9
- package/dist/node/devices/techniclargelinearmotor.js +0 -12
- package/dist/node/devices/techniclargelinearmotor.js.map +0 -1
- package/dist/node/devices/technicmediumangularmotor.d.ts +0 -12
- package/dist/node/devices/technicmediumangularmotor.js +0 -12
- package/dist/node/devices/technicmediumangularmotor.js.map +0 -1
- package/dist/node/devices/technicmediumhubaccelerometersensor.d.ts +0 -16
- package/dist/node/devices/technicmediumhubaccelerometersensor.js +0 -38
- package/dist/node/devices/technicmediumhubaccelerometersensor.js.map +0 -1
- package/dist/node/devices/technicmediumhubgyrosensor.d.ts +0 -16
- package/dist/node/devices/technicmediumhubgyrosensor.js +0 -38
- package/dist/node/devices/technicmediumhubgyrosensor.js.map +0 -1
- package/dist/node/devices/technicmediumhubtiltsensor.d.ts +0 -40
- package/dist/node/devices/technicmediumhubtiltsensor.js +0 -106
- package/dist/node/devices/technicmediumhubtiltsensor.js.map +0 -1
- package/dist/node/devices/technicsmallangularmotor.d.ts +0 -12
- package/dist/node/devices/technicsmallangularmotor.js +0 -12
- package/dist/node/devices/technicsmallangularmotor.js.map +0 -1
- package/dist/node/devices/technicxlargelinearmotor.d.ts +0 -9
- package/dist/node/devices/technicxlargelinearmotor.js +0 -12
- package/dist/node/devices/technicxlargelinearmotor.js.map +0 -1
- package/dist/node/devices/tiltsensor.d.ts +0 -16
- package/dist/node/devices/tiltsensor.js +0 -36
- package/dist/node/devices/tiltsensor.js.map +0 -1
- package/dist/node/devices/trainmotor.d.ts +0 -9
- package/dist/node/devices/trainmotor.js +0 -12
- package/dist/node/devices/trainmotor.js.map +0 -1
- package/dist/node/devices/voltagesensor.d.ts +0 -16
- package/dist/node/devices/voltagesensor.js +0 -59
- package/dist/node/devices/voltagesensor.js.map +0 -1
- package/dist/node/hub.d.ts +0 -291
- package/dist/node/hub.js +0 -778
- package/dist/node/hub.js.map +0 -1
- package/dist/node/hubs/basehub.d.ts +0 -162
- package/dist/node/hubs/basehub.js +0 -392
- package/dist/node/hubs/basehub.js.map +0 -1
- package/dist/node/hubs/duplotrainbase.d.ts +0 -17
- package/dist/node/hubs/duplotrainbase.js +0 -35
- package/dist/node/hubs/duplotrainbase.js.map +0 -1
- package/dist/node/hubs/hub.d.ts +0 -19
- package/dist/node/hubs/hub.js +0 -44
- package/dist/node/hubs/hub.js.map +0 -1
- package/dist/node/hubs/lpf2hub.d.ts +0 -48
- package/dist/node/hubs/lpf2hub.js +0 -314
- package/dist/node/hubs/lpf2hub.js.map +0 -1
- package/dist/node/hubs/mario.d.ts +0 -17
- package/dist/node/hubs/mario.js +0 -31
- package/dist/node/hubs/mario.js.map +0 -1
- package/dist/node/hubs/movehub.d.ts +0 -18
- package/dist/node/hubs/movehub.js +0 -46
- package/dist/node/hubs/movehub.js.map +0 -1
- package/dist/node/hubs/remotecontrol.d.ts +0 -17
- package/dist/node/hubs/remotecontrol.js +0 -37
- package/dist/node/hubs/remotecontrol.js.map +0 -1
- package/dist/node/hubs/technicmediumhub.d.ts +0 -17
- package/dist/node/hubs/technicmediumhub.js +0 -42
- package/dist/node/hubs/technicmediumhub.js.map +0 -1
- package/dist/node/hubs/technicsmallhub.d.ts +0 -18
- package/dist/node/hubs/technicsmallhub.js +0 -41
- package/dist/node/hubs/technicsmallhub.js.map +0 -1
- package/dist/node/hubs/wedo2smarthub.d.ts +0 -40
- package/dist/node/hubs/wedo2smarthub.js +0 -188
- package/dist/node/hubs/wedo2smarthub.js.map +0 -1
- package/dist/node/index-browser.d.ts +0 -1
- package/dist/node/index-browser.js +0 -96
- package/dist/node/index-browser.js.map +0 -1
- package/dist/node/index-node.d.ts +0 -49
- package/dist/node/index-node.js +0 -50
- package/dist/node/index-node.js.map +0 -1
- package/dist/node/index.d.ts +0 -31
- package/dist/node/index.js +0 -93
- package/dist/node/index.js.map +0 -1
- package/dist/node/index.mjs +0 -0
- package/dist/node/interfaces.d.ts +0 -23
- package/dist/node/interfaces.js +0 -2
- package/dist/node/interfaces.js.map +0 -1
- package/dist/node/nobleabstraction.d.ts +0 -26
- package/dist/node/nobleabstraction.js +0 -123
- package/dist/node/nobleabstraction.js.map +0 -1
- package/dist/node/poweredup-browser.d.ts +0 -50
- package/dist/node/poweredup-browser.js +0 -216
- package/dist/node/poweredup-browser.js.map +0 -1
- package/dist/node/poweredup-node.d.ts +0 -54
- package/dist/node/poweredup-node.js +0 -173
- package/dist/node/poweredup-node.js.map +0 -1
- package/dist/node/poweredup.d.ts +0 -83
- package/dist/node/poweredup.js +0 -542
- package/dist/node/poweredup.js.map +0 -1
- package/dist/node/protocol-wedo.d.ts +0 -158
- package/dist/node/protocol-wedo.js +0 -342
- package/dist/node/protocol-wedo.js.map +0 -1
- package/dist/node/protocol.d.ts +0 -340
- package/dist/node/protocol.js +0 -730
- package/dist/node/protocol.js.map +0 -1
- package/dist/node/types.d.ts +0 -408
- package/dist/node/types.js +0 -291
- package/dist/node/types.js.map +0 -1
- package/dist/node/utils.d.ts +0 -12
- package/dist/node/utils.js +0 -90
- package/dist/node/utils.js.map +0 -1
- package/dist/node/webbleabstraction.d.ts +0 -26
- package/dist/node/webbleabstraction.js +0 -104
- package/dist/node/webbleabstraction.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
package/dist/node/commands.js
DELETED
|
@@ -1,672 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* PoweredUp Commands
|
|
4
|
-
* Factory functions for creating hub and device commands
|
|
5
|
-
*/
|
|
6
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
-
if (k2 === undefined) k2 = k;
|
|
8
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
-
}
|
|
12
|
-
Object.defineProperty(o, k2, desc);
|
|
13
|
-
}) : (function(o, m, k, k2) {
|
|
14
|
-
if (k2 === undefined) k2 = k;
|
|
15
|
-
o[k2] = m[k];
|
|
16
|
-
}));
|
|
17
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
-
}) : function(o, v) {
|
|
20
|
-
o["default"] = v;
|
|
21
|
-
});
|
|
22
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
-
var ownKeys = function(o) {
|
|
24
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
-
var ar = [];
|
|
26
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
-
return ar;
|
|
28
|
-
};
|
|
29
|
-
return ownKeys(o);
|
|
30
|
-
};
|
|
31
|
-
return function (mod) {
|
|
32
|
-
if (mod && mod.__esModule) return mod;
|
|
33
|
-
var result = {};
|
|
34
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
-
__setModuleDefault(result, mod);
|
|
36
|
-
return result;
|
|
37
|
-
};
|
|
38
|
-
})();
|
|
39
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
-
exports.wedo2 = void 0;
|
|
41
|
-
exports.shutdown = shutdown;
|
|
42
|
-
exports.disconnect = disconnect;
|
|
43
|
-
exports.setName = setName;
|
|
44
|
-
exports.requestProperty = requestProperty;
|
|
45
|
-
exports.enablePropertyUpdates = enablePropertyUpdates;
|
|
46
|
-
exports.disablePropertyUpdates = disablePropertyUpdates;
|
|
47
|
-
exports.enableAlerts = enableAlerts;
|
|
48
|
-
exports.disableAlerts = disableAlerts;
|
|
49
|
-
exports.subscribe = subscribe;
|
|
50
|
-
exports.unsubscribe = unsubscribe;
|
|
51
|
-
exports.requestPortInfo = requestPortInfo;
|
|
52
|
-
exports.requestPortModeInfo = requestPortModeInfo;
|
|
53
|
-
exports.createVirtualPort = createVirtualPort;
|
|
54
|
-
exports.disconnectVirtualPort = disconnectVirtualPort;
|
|
55
|
-
exports.motorStop = motorStop;
|
|
56
|
-
exports.motorBrake = motorBrake;
|
|
57
|
-
exports.motorPower = motorPower;
|
|
58
|
-
exports.motorPowerDual = motorPowerDual;
|
|
59
|
-
exports.motorSpeed = motorSpeed;
|
|
60
|
-
exports.motorSpeedDual = motorSpeedDual;
|
|
61
|
-
exports.motorRunForTime = motorRunForTime;
|
|
62
|
-
exports.motorRunForDegrees = motorRunForDegrees;
|
|
63
|
-
exports.motorGotoPosition = motorGotoPosition;
|
|
64
|
-
exports.motorResetEncoder = motorResetEncoder;
|
|
65
|
-
exports.motorSetAccelerationTime = motorSetAccelerationTime;
|
|
66
|
-
exports.motorSetDecelerationTime = motorSetDecelerationTime;
|
|
67
|
-
exports.ledColor = ledColor;
|
|
68
|
-
exports.ledRGB = ledRGB;
|
|
69
|
-
exports.technicMatrix3x3 = technicMatrix3x3;
|
|
70
|
-
exports.duploTrainSound = duploTrainSound;
|
|
71
|
-
exports.duploTrainTone = duploTrainTone;
|
|
72
|
-
exports.piezoTone = piezoTone;
|
|
73
|
-
exports.piezoStop = piezoStop;
|
|
74
|
-
exports.lightBrightness = lightBrightness;
|
|
75
|
-
exports.colorSensorMode = colorSensorMode;
|
|
76
|
-
exports.tiltSensorOrientation = tiltSensorOrientation;
|
|
77
|
-
exports.tiltSensorImpact = tiltSensorImpact;
|
|
78
|
-
exports.setDistanceSensorLEDs = setDistanceSensorLEDs;
|
|
79
|
-
exports.setLightMatrix = setLightMatrix;
|
|
80
|
-
exports.playSound = playSound;
|
|
81
|
-
exports.isMotor = isMotor;
|
|
82
|
-
exports.isTachoMotor = isTachoMotor;
|
|
83
|
-
exports.isAbsoluteMotor = isAbsoluteMotor;
|
|
84
|
-
exports.isSensor = isSensor;
|
|
85
|
-
exports.getDefaultSensorMode = getDefaultSensorMode;
|
|
86
|
-
const Protocol = __importStar(require("./protocol"));
|
|
87
|
-
const WeDo2Protocol = __importStar(require("./protocol-wedo"));
|
|
88
|
-
const types_1 = require("./types");
|
|
89
|
-
// ============================================================================
|
|
90
|
-
// Hub Commands
|
|
91
|
-
// ============================================================================
|
|
92
|
-
/**
|
|
93
|
-
* Create a shutdown command
|
|
94
|
-
*/
|
|
95
|
-
function shutdown() {
|
|
96
|
-
return Protocol.createHubAction(Protocol.HubAction.SWITCH_OFF_HUB);
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Create a disconnect command
|
|
100
|
-
*/
|
|
101
|
-
function disconnect() {
|
|
102
|
-
return Protocol.createHubAction(Protocol.HubAction.DISCONNECT);
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Create a set name command
|
|
106
|
-
*/
|
|
107
|
-
function setName(name) {
|
|
108
|
-
if (name.length > 14) {
|
|
109
|
-
name = name.substring(0, 14);
|
|
110
|
-
}
|
|
111
|
-
return Protocol.createHubPropertySet(Protocol.HubProperty.ADVERTISING_NAME, Buffer.from(name, "ascii"));
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* Request a hub property update
|
|
115
|
-
*/
|
|
116
|
-
function requestProperty(property) {
|
|
117
|
-
return Protocol.createHubPropertyRequest(property, Protocol.HubPropertyOperation.REQUEST_UPDATE);
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* Enable updates for a hub property
|
|
121
|
-
*/
|
|
122
|
-
function enablePropertyUpdates(property) {
|
|
123
|
-
return Protocol.createHubPropertyRequest(property, Protocol.HubPropertyOperation.ENABLE_UPDATES);
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Disable updates for a hub property
|
|
127
|
-
*/
|
|
128
|
-
function disablePropertyUpdates(property) {
|
|
129
|
-
return Protocol.createHubPropertyRequest(property, Protocol.HubPropertyOperation.DISABLE_UPDATES);
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* Enable alert notifications
|
|
133
|
-
*/
|
|
134
|
-
function enableAlerts(alertType) {
|
|
135
|
-
return Protocol.encodeMessage(Protocol.MessageType.HUB_ALERTS, Buffer.from([alertType, Protocol.AlertOperation.ENABLE_UPDATE]));
|
|
136
|
-
}
|
|
137
|
-
/**
|
|
138
|
-
* Disable alert notifications
|
|
139
|
-
*/
|
|
140
|
-
function disableAlerts(alertType) {
|
|
141
|
-
return Protocol.encodeMessage(Protocol.MessageType.HUB_ALERTS, Buffer.from([alertType, Protocol.AlertOperation.DISABLE_UPDATE]));
|
|
142
|
-
}
|
|
143
|
-
// ============================================================================
|
|
144
|
-
// Port Commands
|
|
145
|
-
// ============================================================================
|
|
146
|
-
/**
|
|
147
|
-
* Subscribe to port notifications
|
|
148
|
-
*/
|
|
149
|
-
function subscribe(portId, mode, deltaInterval = 1) {
|
|
150
|
-
return Protocol.createPortInputFormatSetup(portId, mode, deltaInterval, true);
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* Unsubscribe from port notifications
|
|
154
|
-
*/
|
|
155
|
-
function unsubscribe(portId, mode) {
|
|
156
|
-
return Protocol.createPortInputFormatSetup(portId, mode, 0, false);
|
|
157
|
-
}
|
|
158
|
-
/**
|
|
159
|
-
* Request port information
|
|
160
|
-
*/
|
|
161
|
-
function requestPortInfo(portId, informationType) {
|
|
162
|
-
return Protocol.createPortInformationRequest(portId, informationType);
|
|
163
|
-
}
|
|
164
|
-
/**
|
|
165
|
-
* Request port mode information
|
|
166
|
-
*/
|
|
167
|
-
function requestPortModeInfo(portId, mode, infoType) {
|
|
168
|
-
return Protocol.createPortModeInformationRequest(portId, mode, infoType);
|
|
169
|
-
}
|
|
170
|
-
// ============================================================================
|
|
171
|
-
// Virtual Port Commands
|
|
172
|
-
// ============================================================================
|
|
173
|
-
/**
|
|
174
|
-
* Create a virtual port from two physical ports
|
|
175
|
-
*/
|
|
176
|
-
function createVirtualPort(portIdA, portIdB) {
|
|
177
|
-
return Protocol.createVirtualPortSetup(true, portIdA, portIdB);
|
|
178
|
-
}
|
|
179
|
-
/**
|
|
180
|
-
* Disconnect a virtual port
|
|
181
|
-
*/
|
|
182
|
-
function disconnectVirtualPort(virtualPortId) {
|
|
183
|
-
return Protocol.createVirtualPortSetup(false, 0, undefined, virtualPortId);
|
|
184
|
-
}
|
|
185
|
-
// ============================================================================
|
|
186
|
-
// Motor Commands
|
|
187
|
-
// ============================================================================
|
|
188
|
-
/**
|
|
189
|
-
* Stop a motor (set power to 0)
|
|
190
|
-
*/
|
|
191
|
-
function motorStop(portId) {
|
|
192
|
-
return Protocol.createStartPower(portId, 0);
|
|
193
|
-
}
|
|
194
|
-
/**
|
|
195
|
-
* Brake a motor
|
|
196
|
-
*/
|
|
197
|
-
function motorBrake(portId) {
|
|
198
|
-
return Protocol.createStartPower(portId, types_1.BrakingStyle.BRAKE);
|
|
199
|
-
}
|
|
200
|
-
/**
|
|
201
|
-
* Set motor power (unregulated)
|
|
202
|
-
* @param portId Port ID
|
|
203
|
-
* @param power Power level (-100 to 100)
|
|
204
|
-
*/
|
|
205
|
-
function motorPower(portId, power) {
|
|
206
|
-
return Protocol.createStartPower(portId, power);
|
|
207
|
-
}
|
|
208
|
-
/**
|
|
209
|
-
* Set dual motor power (for virtual ports)
|
|
210
|
-
*/
|
|
211
|
-
function motorPowerDual(portId, power1, power2) {
|
|
212
|
-
return Protocol.createStartPowerDual(portId, power1, power2);
|
|
213
|
-
}
|
|
214
|
-
/**
|
|
215
|
-
* Set motor speed (regulated)
|
|
216
|
-
* @param portId Port ID
|
|
217
|
-
* @param speed Speed (-100 to 100)
|
|
218
|
-
* @param maxPower Maximum power (0 to 100)
|
|
219
|
-
* @param profile Acceleration/deceleration profile
|
|
220
|
-
*/
|
|
221
|
-
function motorSpeed(portId, speed, maxPower = 100, profile = types_1.Profile.DO_NOT_USE) {
|
|
222
|
-
return Protocol.createStartSpeed(portId, speed, maxPower, profile);
|
|
223
|
-
}
|
|
224
|
-
/**
|
|
225
|
-
* Set dual motor speed (for virtual ports)
|
|
226
|
-
*/
|
|
227
|
-
function motorSpeedDual(portId, speed1, speed2, maxPower = 100, profile = types_1.Profile.DO_NOT_USE) {
|
|
228
|
-
return Protocol.createStartSpeedDual(portId, speed1, speed2, maxPower, profile);
|
|
229
|
-
}
|
|
230
|
-
/**
|
|
231
|
-
* Run motor for time
|
|
232
|
-
* @param portId Port ID
|
|
233
|
-
* @param time Time in milliseconds
|
|
234
|
-
* @param speed Speed (-100 to 100)
|
|
235
|
-
* @param maxPower Maximum power (0 to 100)
|
|
236
|
-
* @param endState State after completion
|
|
237
|
-
* @param profile Acceleration/deceleration profile
|
|
238
|
-
*/
|
|
239
|
-
function motorRunForTime(portId, time, speed, maxPower = 100, endState = types_1.BrakingStyle.BRAKE, profile = types_1.Profile.DO_NOT_USE) {
|
|
240
|
-
return Protocol.createStartSpeedForTime(portId, time, speed, maxPower, endState, profile);
|
|
241
|
-
}
|
|
242
|
-
/**
|
|
243
|
-
* Run motor for degrees
|
|
244
|
-
* @param portId Port ID
|
|
245
|
-
* @param degrees Degrees to rotate
|
|
246
|
-
* @param speed Speed (-100 to 100)
|
|
247
|
-
* @param maxPower Maximum power (0 to 100)
|
|
248
|
-
* @param endState State after completion
|
|
249
|
-
* @param profile Acceleration/deceleration profile
|
|
250
|
-
*/
|
|
251
|
-
function motorRunForDegrees(portId, degrees, speed, maxPower = 100, endState = types_1.BrakingStyle.BRAKE, profile = types_1.Profile.DO_NOT_USE) {
|
|
252
|
-
return Protocol.createStartSpeedForDegrees(portId, degrees, speed, maxPower, endState, profile);
|
|
253
|
-
}
|
|
254
|
-
/**
|
|
255
|
-
* Go to absolute position
|
|
256
|
-
* @param portId Port ID
|
|
257
|
-
* @param position Target position in degrees
|
|
258
|
-
* @param speed Speed (0 to 100)
|
|
259
|
-
* @param maxPower Maximum power (0 to 100)
|
|
260
|
-
* @param endState State after completion
|
|
261
|
-
* @param profile Acceleration/deceleration profile
|
|
262
|
-
*/
|
|
263
|
-
function motorGotoPosition(portId, position, speed, maxPower = 100, endState = types_1.BrakingStyle.BRAKE, profile = types_1.Profile.DO_NOT_USE) {
|
|
264
|
-
return Protocol.createGotoAbsolutePosition(portId, position, speed, maxPower, endState, profile);
|
|
265
|
-
}
|
|
266
|
-
/**
|
|
267
|
-
* Reset motor encoder
|
|
268
|
-
* @param portId Port ID
|
|
269
|
-
* @param position Position to set (default 0)
|
|
270
|
-
*/
|
|
271
|
-
function motorResetEncoder(portId, position = 0) {
|
|
272
|
-
return Protocol.createPresetEncoder(portId, position);
|
|
273
|
-
}
|
|
274
|
-
/**
|
|
275
|
-
* Set motor acceleration time
|
|
276
|
-
* @param portId Port ID
|
|
277
|
-
* @param time Time in milliseconds (0 to 10000)
|
|
278
|
-
* @param profileNumber Profile number (0 to 3)
|
|
279
|
-
*/
|
|
280
|
-
function motorSetAccelerationTime(portId, time, profileNumber = 0) {
|
|
281
|
-
return Protocol.createSetAccTime(portId, time, profileNumber);
|
|
282
|
-
}
|
|
283
|
-
/**
|
|
284
|
-
* Set motor deceleration time
|
|
285
|
-
* @param portId Port ID
|
|
286
|
-
* @param time Time in milliseconds (0 to 10000)
|
|
287
|
-
* @param profileNumber Profile number (0 to 3)
|
|
288
|
-
*/
|
|
289
|
-
function motorSetDecelerationTime(portId, time, profileNumber = 0) {
|
|
290
|
-
return Protocol.createSetDecTime(portId, time, profileNumber);
|
|
291
|
-
}
|
|
292
|
-
// ============================================================================
|
|
293
|
-
// LED Commands
|
|
294
|
-
// ============================================================================
|
|
295
|
-
/**
|
|
296
|
-
* Set LED color by color number
|
|
297
|
-
* @param portId Port ID of the LED
|
|
298
|
-
* @param color Color value
|
|
299
|
-
*/
|
|
300
|
-
function ledColor(portId, color) {
|
|
301
|
-
return Protocol.createSetLEDColor(portId, color);
|
|
302
|
-
}
|
|
303
|
-
/**
|
|
304
|
-
* Set LED color by RGB values
|
|
305
|
-
* @param portId Port ID of the LED
|
|
306
|
-
* @param red Red component (0-255)
|
|
307
|
-
* @param green Green component (0-255)
|
|
308
|
-
* @param blue Blue component (0-255)
|
|
309
|
-
*/
|
|
310
|
-
function ledRGB(portId, red, green, blue) {
|
|
311
|
-
return Protocol.createSetLEDRGB(portId, red, green, blue);
|
|
312
|
-
}
|
|
313
|
-
// ============================================================================
|
|
314
|
-
// Technic Color Light Matrix Commands
|
|
315
|
-
// ============================================================================
|
|
316
|
-
/**
|
|
317
|
-
* Set Technic 3x3 Color Light Matrix pixels
|
|
318
|
-
* @param portId Port ID
|
|
319
|
-
* @param pixels Array of 9 color values (or colors with brightness)
|
|
320
|
-
*/
|
|
321
|
-
function technicMatrix3x3(portId, pixels) {
|
|
322
|
-
// Mode 1 = set individual pixels
|
|
323
|
-
const payload = Buffer.alloc(10);
|
|
324
|
-
payload[0] = 0x01; // Mode 1
|
|
325
|
-
for (let i = 0; i < 9 && i < pixels.length; i++) {
|
|
326
|
-
payload[i + 1] = pixels[i];
|
|
327
|
-
}
|
|
328
|
-
return Protocol.encodeMessage(Protocol.MessageType.PORT_OUTPUT_COMMAND, Buffer.concat([
|
|
329
|
-
Buffer.from([portId, 0x11, Protocol.MotorSubCommand.WRITE_DIRECT_MODE_DATA]),
|
|
330
|
-
payload
|
|
331
|
-
]));
|
|
332
|
-
}
|
|
333
|
-
// ============================================================================
|
|
334
|
-
// Sound Commands
|
|
335
|
-
// ============================================================================
|
|
336
|
-
/**
|
|
337
|
-
* Play Duplo Train Base sound
|
|
338
|
-
* @param portId Port ID of the speaker
|
|
339
|
-
* @param sound Sound to play
|
|
340
|
-
*/
|
|
341
|
-
function duploTrainSound(portId, sound) {
|
|
342
|
-
return Protocol.encodeMessage(Protocol.MessageType.PORT_OUTPUT_COMMAND, Buffer.concat([
|
|
343
|
-
Buffer.from([portId, 0x11, Protocol.MotorSubCommand.WRITE_DIRECT_MODE_DATA]),
|
|
344
|
-
Buffer.from([0x01, sound]) // Mode 1 = play sound
|
|
345
|
-
]));
|
|
346
|
-
}
|
|
347
|
-
/**
|
|
348
|
-
* Set Duplo Train Base speaker tone
|
|
349
|
-
* @param portId Port ID of the speaker
|
|
350
|
-
* @param tone Tone value (0-10)
|
|
351
|
-
*/
|
|
352
|
-
function duploTrainTone(portId, tone) {
|
|
353
|
-
tone = Math.max(0, Math.min(10, tone));
|
|
354
|
-
return Protocol.encodeMessage(Protocol.MessageType.PORT_OUTPUT_COMMAND, Buffer.concat([
|
|
355
|
-
Buffer.from([portId, 0x11, Protocol.MotorSubCommand.WRITE_DIRECT_MODE_DATA]),
|
|
356
|
-
Buffer.from([0x02, tone]) // Mode 2 = tone
|
|
357
|
-
]));
|
|
358
|
-
}
|
|
359
|
-
// ============================================================================
|
|
360
|
-
// Piezo Buzzer Commands
|
|
361
|
-
// ============================================================================
|
|
362
|
-
/**
|
|
363
|
-
* Play piezo buzzer tone
|
|
364
|
-
* @param portId Port ID
|
|
365
|
-
* @param frequency Frequency in Hz
|
|
366
|
-
* @param duration Duration in milliseconds
|
|
367
|
-
*/
|
|
368
|
-
function piezoTone(portId, frequency, duration) {
|
|
369
|
-
const payload = Buffer.alloc(6);
|
|
370
|
-
payload[0] = 0x01; // Mode
|
|
371
|
-
payload.writeUInt16LE(frequency, 1);
|
|
372
|
-
payload.writeUInt16LE(duration, 3);
|
|
373
|
-
payload[5] = 0x00;
|
|
374
|
-
return Protocol.encodeMessage(Protocol.MessageType.PORT_OUTPUT_COMMAND, Buffer.concat([
|
|
375
|
-
Buffer.from([portId, 0x11, Protocol.MotorSubCommand.WRITE_DIRECT_MODE_DATA]),
|
|
376
|
-
payload
|
|
377
|
-
]));
|
|
378
|
-
}
|
|
379
|
-
/**
|
|
380
|
-
* Stop piezo buzzer
|
|
381
|
-
* @param portId Port ID
|
|
382
|
-
*/
|
|
383
|
-
function piezoStop(portId) {
|
|
384
|
-
return Protocol.encodeMessage(Protocol.MessageType.PORT_OUTPUT_COMMAND, Buffer.concat([
|
|
385
|
-
Buffer.from([portId, 0x11, Protocol.MotorSubCommand.WRITE_DIRECT_MODE_DATA]),
|
|
386
|
-
Buffer.from([0x00, 0x00])
|
|
387
|
-
]));
|
|
388
|
-
}
|
|
389
|
-
// ============================================================================
|
|
390
|
-
// Light Commands
|
|
391
|
-
// ============================================================================
|
|
392
|
-
/**
|
|
393
|
-
* Set light brightness
|
|
394
|
-
* @param portId Port ID
|
|
395
|
-
* @param brightness Brightness (0-100)
|
|
396
|
-
*/
|
|
397
|
-
function lightBrightness(portId, brightness) {
|
|
398
|
-
brightness = Math.max(0, Math.min(100, brightness));
|
|
399
|
-
return Protocol.encodeMessage(Protocol.MessageType.PORT_OUTPUT_COMMAND, Buffer.concat([
|
|
400
|
-
Buffer.from([portId, 0x11, Protocol.MotorSubCommand.WRITE_DIRECT_MODE_DATA]),
|
|
401
|
-
Buffer.from([0x00, brightness])
|
|
402
|
-
]));
|
|
403
|
-
}
|
|
404
|
-
// ============================================================================
|
|
405
|
-
// Sensor Configuration Commands
|
|
406
|
-
// ============================================================================
|
|
407
|
-
/**
|
|
408
|
-
* Configure color sensor mode
|
|
409
|
-
* @param portId Port ID
|
|
410
|
-
* @param mode Mode (0=color, 1=tag, etc.)
|
|
411
|
-
*/
|
|
412
|
-
function colorSensorMode(portId, mode) {
|
|
413
|
-
return subscribe(portId, mode, 1);
|
|
414
|
-
}
|
|
415
|
-
/**
|
|
416
|
-
* Configure tilt sensor orientation
|
|
417
|
-
* @param portId Port ID
|
|
418
|
-
* @param orientation Orientation (0-5 for different orientations)
|
|
419
|
-
*/
|
|
420
|
-
function tiltSensorOrientation(portId, orientation) {
|
|
421
|
-
return Protocol.encodeMessage(Protocol.MessageType.PORT_OUTPUT_COMMAND, Buffer.concat([
|
|
422
|
-
Buffer.from([portId, 0x11, Protocol.MotorSubCommand.WRITE_DIRECT_MODE_DATA]),
|
|
423
|
-
Buffer.from([0x05, orientation]) // Mode 5 = set orientation
|
|
424
|
-
]));
|
|
425
|
-
}
|
|
426
|
-
/**
|
|
427
|
-
* Configure tilt sensor impact threshold
|
|
428
|
-
* @param portId Port ID
|
|
429
|
-
* @param threshold Impact threshold (0-127)
|
|
430
|
-
* @param holdoff Bump holdoff in 10ms units (1-127)
|
|
431
|
-
*/
|
|
432
|
-
function tiltSensorImpact(portId, threshold, holdoff) {
|
|
433
|
-
threshold = Math.max(0, Math.min(127, threshold));
|
|
434
|
-
holdoff = Math.max(1, Math.min(127, holdoff));
|
|
435
|
-
return Protocol.encodeMessage(Protocol.MessageType.PORT_OUTPUT_COMMAND, Buffer.concat([
|
|
436
|
-
Buffer.from([portId, 0x11, Protocol.MotorSubCommand.WRITE_DIRECT_MODE_DATA]),
|
|
437
|
-
Buffer.from([0x06, threshold, holdoff]) // Mode 6 = impact config
|
|
438
|
-
]));
|
|
439
|
-
}
|
|
440
|
-
/**
|
|
441
|
-
* Set Technic Distance Sensor LED brightness
|
|
442
|
-
* The sensor has 4 LEDs that can be individually controlled
|
|
443
|
-
* @param portId Port ID
|
|
444
|
-
* @param upperLeft Upper left LED brightness (0-100)
|
|
445
|
-
* @param upperRight Upper right LED brightness (0-100)
|
|
446
|
-
* @param lowerLeft Lower left LED brightness (0-100)
|
|
447
|
-
* @param lowerRight Lower right LED brightness (0-100)
|
|
448
|
-
*/
|
|
449
|
-
function setDistanceSensorLEDs(portId, upperLeft, upperRight, lowerLeft, lowerRight) {
|
|
450
|
-
upperLeft = Math.max(0, Math.min(100, upperLeft));
|
|
451
|
-
upperRight = Math.max(0, Math.min(100, upperRight));
|
|
452
|
-
lowerLeft = Math.max(0, Math.min(100, lowerLeft));
|
|
453
|
-
lowerRight = Math.max(0, Math.min(100, lowerRight));
|
|
454
|
-
return Protocol.encodeMessage(Protocol.MessageType.PORT_OUTPUT_COMMAND, Buffer.concat([
|
|
455
|
-
Buffer.from([portId, 0x11, Protocol.MotorSubCommand.WRITE_DIRECT_MODE_DATA]),
|
|
456
|
-
Buffer.from([0x05, upperLeft, upperRight, lowerLeft, lowerRight]) // Mode 5 = LED control
|
|
457
|
-
]));
|
|
458
|
-
}
|
|
459
|
-
/**
|
|
460
|
-
* Set Technic 3x3 Light Matrix pixels
|
|
461
|
-
* @param portId Port ID
|
|
462
|
-
* @param pixels Array of 9 colors (row by row, left to right)
|
|
463
|
-
*/
|
|
464
|
-
function setLightMatrix(portId, pixels) {
|
|
465
|
-
// Ensure we have exactly 9 pixels, default to black
|
|
466
|
-
const pixelData = new Array(9).fill(0);
|
|
467
|
-
for (let i = 0; i < 9 && i < pixels.length; i++) {
|
|
468
|
-
pixelData[i] = Math.max(0, Math.min(10, pixels[i]));
|
|
469
|
-
}
|
|
470
|
-
// Pack 2 pixels per byte (4 bits each), 5 bytes total for 9 pixels
|
|
471
|
-
const packed = Buffer.alloc(5);
|
|
472
|
-
for (let i = 0; i < 9; i += 2) {
|
|
473
|
-
const byte = (pixelData[i] & 0x0F) | ((pixelData[i + 1] & 0x0F) << 4);
|
|
474
|
-
packed[Math.floor(i / 2)] = byte;
|
|
475
|
-
}
|
|
476
|
-
return Protocol.encodeMessage(Protocol.MessageType.PORT_OUTPUT_COMMAND, Buffer.concat([
|
|
477
|
-
Buffer.from([portId, 0x11, Protocol.MotorSubCommand.WRITE_DIRECT_MODE_DATA]),
|
|
478
|
-
Buffer.from([0x02]), // Mode 2 = pixels
|
|
479
|
-
packed
|
|
480
|
-
]));
|
|
481
|
-
}
|
|
482
|
-
/**
|
|
483
|
-
* Play sound on Duplo Train Base Speaker
|
|
484
|
-
* @param portId Port ID
|
|
485
|
-
* @param sound Sound index to play
|
|
486
|
-
*/
|
|
487
|
-
function playSound(portId, sound) {
|
|
488
|
-
return Protocol.encodeMessage(Protocol.MessageType.PORT_OUTPUT_COMMAND, Buffer.concat([
|
|
489
|
-
Buffer.from([portId, 0x11, Protocol.MotorSubCommand.WRITE_DIRECT_MODE_DATA]),
|
|
490
|
-
Buffer.from([0x01, sound]) // Mode 1 = play sound
|
|
491
|
-
]));
|
|
492
|
-
}
|
|
493
|
-
// ============================================================================
|
|
494
|
-
// WeDo 2.0 Commands
|
|
495
|
-
// ============================================================================
|
|
496
|
-
exports.wedo2 = {
|
|
497
|
-
/**
|
|
498
|
-
* Set motor power on WeDo 2.0
|
|
499
|
-
*/
|
|
500
|
-
motorPower(portId, power) {
|
|
501
|
-
return WeDo2Protocol.createWeDo2MotorPower(portId, power);
|
|
502
|
-
},
|
|
503
|
-
/**
|
|
504
|
-
* Brake motor on WeDo 2.0
|
|
505
|
-
*/
|
|
506
|
-
motorBrake(portId) {
|
|
507
|
-
return WeDo2Protocol.createWeDo2MotorBrake(portId);
|
|
508
|
-
},
|
|
509
|
-
/**
|
|
510
|
-
* Float motor on WeDo 2.0
|
|
511
|
-
*/
|
|
512
|
-
motorFloat(portId) {
|
|
513
|
-
return WeDo2Protocol.createWeDo2MotorFloat(portId);
|
|
514
|
-
},
|
|
515
|
-
/**
|
|
516
|
-
* Set LED color on WeDo 2.0
|
|
517
|
-
*/
|
|
518
|
-
ledColor(portId, color) {
|
|
519
|
-
return WeDo2Protocol.createWeDo2LEDColor(portId, color);
|
|
520
|
-
},
|
|
521
|
-
/**
|
|
522
|
-
* Set LED RGB on WeDo 2.0
|
|
523
|
-
*/
|
|
524
|
-
ledRGB(portId, red, green, blue) {
|
|
525
|
-
return WeDo2Protocol.createWeDo2LEDRGB(portId, red, green, blue);
|
|
526
|
-
},
|
|
527
|
-
/**
|
|
528
|
-
* Play piezo tone on WeDo 2.0
|
|
529
|
-
*/
|
|
530
|
-
piezoTone(portId, frequency, duration) {
|
|
531
|
-
return WeDo2Protocol.createWeDo2PiezoTone(portId, frequency, duration);
|
|
532
|
-
},
|
|
533
|
-
/**
|
|
534
|
-
* Stop piezo on WeDo 2.0
|
|
535
|
-
*/
|
|
536
|
-
piezoStop(portId) {
|
|
537
|
-
return WeDo2Protocol.createWeDo2PiezoStop(portId);
|
|
538
|
-
},
|
|
539
|
-
/**
|
|
540
|
-
* Subscribe to sensor on WeDo 2.0
|
|
541
|
-
*/
|
|
542
|
-
subscribe(portId, deviceType, mode) {
|
|
543
|
-
return WeDo2Protocol.createWeDo2Subscribe(portId, deviceType, mode, true);
|
|
544
|
-
},
|
|
545
|
-
/**
|
|
546
|
-
* Unsubscribe from sensor on WeDo 2.0
|
|
547
|
-
*/
|
|
548
|
-
unsubscribe(portId, deviceType, mode) {
|
|
549
|
-
return WeDo2Protocol.createWeDo2Subscribe(portId, deviceType, mode, false);
|
|
550
|
-
},
|
|
551
|
-
/**
|
|
552
|
-
* Disconnect WeDo 2.0
|
|
553
|
-
*/
|
|
554
|
-
disconnect() {
|
|
555
|
-
return WeDo2Protocol.createWeDo2Disconnect();
|
|
556
|
-
},
|
|
557
|
-
/**
|
|
558
|
-
* Set name on WeDo 2.0
|
|
559
|
-
*/
|
|
560
|
-
setName(name) {
|
|
561
|
-
return WeDo2Protocol.createWeDo2SetName(name);
|
|
562
|
-
},
|
|
563
|
-
};
|
|
564
|
-
// ============================================================================
|
|
565
|
-
// Command Helpers
|
|
566
|
-
// ============================================================================
|
|
567
|
-
/**
|
|
568
|
-
* Check if a device type is a motor
|
|
569
|
-
*/
|
|
570
|
-
function isMotor(deviceType) {
|
|
571
|
-
const motorTypes = [
|
|
572
|
-
types_1.DeviceType.SIMPLE_MEDIUM_LINEAR_MOTOR,
|
|
573
|
-
types_1.DeviceType.TRAIN_MOTOR,
|
|
574
|
-
types_1.DeviceType.MEDIUM_LINEAR_MOTOR,
|
|
575
|
-
types_1.DeviceType.MOVE_HUB_MEDIUM_LINEAR_MOTOR,
|
|
576
|
-
types_1.DeviceType.DUPLO_TRAIN_BASE_MOTOR,
|
|
577
|
-
types_1.DeviceType.TECHNIC_LARGE_LINEAR_MOTOR,
|
|
578
|
-
types_1.DeviceType.TECHNIC_XLARGE_LINEAR_MOTOR,
|
|
579
|
-
types_1.DeviceType.TECHNIC_MEDIUM_ANGULAR_MOTOR,
|
|
580
|
-
types_1.DeviceType.TECHNIC_LARGE_ANGULAR_MOTOR,
|
|
581
|
-
types_1.DeviceType.TECHNIC_SMALL_ANGULAR_MOTOR,
|
|
582
|
-
types_1.DeviceType.TECHNIC_MEDIUM_ANGULAR_MOTOR_GREY,
|
|
583
|
-
types_1.DeviceType.TECHNIC_LARGE_ANGULAR_MOTOR_GREY,
|
|
584
|
-
];
|
|
585
|
-
return motorTypes.includes(deviceType);
|
|
586
|
-
}
|
|
587
|
-
/**
|
|
588
|
-
* Check if a device type is a tacho motor (has encoder)
|
|
589
|
-
*/
|
|
590
|
-
function isTachoMotor(deviceType) {
|
|
591
|
-
const tachoMotorTypes = [
|
|
592
|
-
types_1.DeviceType.MEDIUM_LINEAR_MOTOR,
|
|
593
|
-
types_1.DeviceType.MOVE_HUB_MEDIUM_LINEAR_MOTOR,
|
|
594
|
-
types_1.DeviceType.TECHNIC_LARGE_LINEAR_MOTOR,
|
|
595
|
-
types_1.DeviceType.TECHNIC_XLARGE_LINEAR_MOTOR,
|
|
596
|
-
types_1.DeviceType.TECHNIC_MEDIUM_ANGULAR_MOTOR,
|
|
597
|
-
types_1.DeviceType.TECHNIC_LARGE_ANGULAR_MOTOR,
|
|
598
|
-
types_1.DeviceType.TECHNIC_SMALL_ANGULAR_MOTOR,
|
|
599
|
-
types_1.DeviceType.TECHNIC_MEDIUM_ANGULAR_MOTOR_GREY,
|
|
600
|
-
types_1.DeviceType.TECHNIC_LARGE_ANGULAR_MOTOR_GREY,
|
|
601
|
-
];
|
|
602
|
-
return tachoMotorTypes.includes(deviceType);
|
|
603
|
-
}
|
|
604
|
-
/**
|
|
605
|
-
* Check if a device type is an absolute position motor
|
|
606
|
-
*/
|
|
607
|
-
function isAbsoluteMotor(deviceType) {
|
|
608
|
-
const absoluteMotorTypes = [
|
|
609
|
-
types_1.DeviceType.TECHNIC_MEDIUM_ANGULAR_MOTOR,
|
|
610
|
-
types_1.DeviceType.TECHNIC_LARGE_ANGULAR_MOTOR,
|
|
611
|
-
types_1.DeviceType.TECHNIC_SMALL_ANGULAR_MOTOR,
|
|
612
|
-
types_1.DeviceType.TECHNIC_MEDIUM_ANGULAR_MOTOR_GREY,
|
|
613
|
-
types_1.DeviceType.TECHNIC_LARGE_ANGULAR_MOTOR_GREY,
|
|
614
|
-
];
|
|
615
|
-
return absoluteMotorTypes.includes(deviceType);
|
|
616
|
-
}
|
|
617
|
-
/**
|
|
618
|
-
* Check if a device type is a sensor
|
|
619
|
-
*/
|
|
620
|
-
function isSensor(deviceType) {
|
|
621
|
-
const sensorTypes = [
|
|
622
|
-
types_1.DeviceType.VOLTAGE_SENSOR,
|
|
623
|
-
types_1.DeviceType.CURRENT_SENSOR,
|
|
624
|
-
types_1.DeviceType.TILT_SENSOR,
|
|
625
|
-
types_1.DeviceType.MOTION_SENSOR,
|
|
626
|
-
types_1.DeviceType.COLOR_DISTANCE_SENSOR,
|
|
627
|
-
types_1.DeviceType.MOVE_HUB_TILT_SENSOR,
|
|
628
|
-
types_1.DeviceType.DUPLO_TRAIN_BASE_COLOR_SENSOR,
|
|
629
|
-
types_1.DeviceType.DUPLO_TRAIN_BASE_SPEEDOMETER,
|
|
630
|
-
types_1.DeviceType.TECHNIC_MEDIUM_HUB_ACCELEROMETER,
|
|
631
|
-
types_1.DeviceType.TECHNIC_MEDIUM_HUB_GYRO_SENSOR,
|
|
632
|
-
types_1.DeviceType.TECHNIC_MEDIUM_HUB_TILT_SENSOR,
|
|
633
|
-
types_1.DeviceType.TECHNIC_COLOR_SENSOR,
|
|
634
|
-
types_1.DeviceType.TECHNIC_DISTANCE_SENSOR,
|
|
635
|
-
types_1.DeviceType.TECHNIC_FORCE_SENSOR,
|
|
636
|
-
types_1.DeviceType.MARIO_ACCELEROMETER,
|
|
637
|
-
types_1.DeviceType.MARIO_BARCODE_SENSOR,
|
|
638
|
-
types_1.DeviceType.MARIO_PANTS_SENSOR,
|
|
639
|
-
types_1.DeviceType.REMOTE_CONTROL_BUTTON,
|
|
640
|
-
];
|
|
641
|
-
return sensorTypes.includes(deviceType);
|
|
642
|
-
}
|
|
643
|
-
/**
|
|
644
|
-
* Get default sensor mode for a device type
|
|
645
|
-
*/
|
|
646
|
-
function getDefaultSensorMode(deviceType) {
|
|
647
|
-
switch (deviceType) {
|
|
648
|
-
case types_1.DeviceType.COLOR_DISTANCE_SENSOR:
|
|
649
|
-
return 8; // Color + distance combined
|
|
650
|
-
case types_1.DeviceType.TECHNIC_COLOR_SENSOR:
|
|
651
|
-
return 1; // Ambient light
|
|
652
|
-
case types_1.DeviceType.TECHNIC_DISTANCE_SENSOR:
|
|
653
|
-
return 0; // Distance
|
|
654
|
-
case types_1.DeviceType.TECHNIC_FORCE_SENSOR:
|
|
655
|
-
return 0; // Force
|
|
656
|
-
case types_1.DeviceType.TILT_SENSOR:
|
|
657
|
-
case types_1.DeviceType.MOVE_HUB_TILT_SENSOR:
|
|
658
|
-
case types_1.DeviceType.TECHNIC_MEDIUM_HUB_TILT_SENSOR:
|
|
659
|
-
return 0; // 2-axis angle
|
|
660
|
-
case types_1.DeviceType.MOTION_SENSOR:
|
|
661
|
-
return 0; // Distance
|
|
662
|
-
case types_1.DeviceType.TECHNIC_MEDIUM_HUB_ACCELEROMETER:
|
|
663
|
-
case types_1.DeviceType.TECHNIC_MEDIUM_HUB_GYRO_SENSOR:
|
|
664
|
-
return 0; // XYZ
|
|
665
|
-
case types_1.DeviceType.VOLTAGE_SENSOR:
|
|
666
|
-
case types_1.DeviceType.CURRENT_SENSOR:
|
|
667
|
-
return 0; // Value
|
|
668
|
-
default:
|
|
669
|
-
return 0;
|
|
670
|
-
}
|
|
671
|
-
}
|
|
672
|
-
//# sourceMappingURL=commands.js.map
|