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/devices/light.js
CHANGED
|
@@ -12,33 +12,27 @@ export class Light extends Device {
|
|
|
12
12
|
/**
|
|
13
13
|
* Set the light brightness.
|
|
14
14
|
* @param {number} brightness Brightness value between 0-100 (0 is off)
|
|
15
|
-
* @
|
|
15
|
+
* @param {number} brightness Brightness value between 0-100 (0 is off)
|
|
16
|
+
* @param {boolean} [interrupt=false] If true, previous commands are discarded.
|
|
17
|
+
* @returns {Promise<CommandFeedback>} Resolved upon completion of command.
|
|
16
18
|
*/
|
|
17
|
-
setBrightness(brightness, interrupt =
|
|
18
|
-
|
|
19
|
-
this.cancelEventTimer();
|
|
20
|
-
}
|
|
21
|
-
return new Promise((resolve) => {
|
|
22
|
-
this.writeDirect(0x00, Buffer.from([brightness]));
|
|
23
|
-
return resolve();
|
|
24
|
-
});
|
|
19
|
+
setBrightness(brightness, interrupt = false) {
|
|
20
|
+
return this.writeDirect(0x00, Buffer.from([brightness]), interrupt);
|
|
25
21
|
}
|
|
26
22
|
/**
|
|
27
23
|
* Ramp the light brightness.
|
|
28
24
|
* @param {number} fromBrightness Brightness value between 0-100 (0 is off)
|
|
29
25
|
* @param {number} toBrightness Brightness value between 0-100 (0 is off)
|
|
30
26
|
* @param {number} time How long the ramp should last (in milliseconds).
|
|
31
|
-
* @returns {Promise} Resolved upon
|
|
27
|
+
* @returns {Promise<CommandFeedback>} Resolved upon completion of command.
|
|
32
28
|
*/
|
|
33
29
|
rampBrightness(fromBrightness, toBrightness, time) {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
this.setBrightness(power, false);
|
|
39
|
-
})
|
|
40
|
-
.on("finished", resolve);
|
|
30
|
+
const powerValues = calculateRamp(fromBrightness, toBrightness, time);
|
|
31
|
+
powerValues.forEach(value => {
|
|
32
|
+
this.setBrightness(value);
|
|
33
|
+
this.addPortOutputSleep(Math.round(time / powerValues.length));
|
|
41
34
|
});
|
|
35
|
+
return this.setBrightness(toBrightness);
|
|
42
36
|
}
|
|
43
37
|
}
|
|
44
38
|
//# sourceMappingURL=light.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"light.js","sourceRoot":"","sources":["../../src/devices/light.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAIrC,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C;;;GAGG;AACH,MAAM,OAAO,KAAM,SAAQ,MAAM;IAG7B,YAAa,GAAqB,EAAE,MAAc;QAC9C,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC;IAGD
|
|
1
|
+
{"version":3,"file":"light.js","sourceRoot":"","sources":["../../src/devices/light.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAIrC,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C;;;GAGG;AACH,MAAM,OAAO,KAAM,SAAQ,MAAM;IAG7B,YAAa,GAAqB,EAAE,MAAc;QAC9C,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC;IAGD;;;;;;OAMG;IACI,aAAa,CAAE,UAAkB,EAAE,YAAqB,KAAK;QAChE,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IACxE,CAAC;IAGD;;;;;;OAMG;IACI,cAAc,CAAE,cAAsB,EAAE,YAAoB,EAAE,IAAY;QAC7E,MAAM,WAAW,GAAG,aAAa,CAAC,cAAc,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;QACtE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACxB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IAC5C,CAAC;CAEJ"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Device } from "./device.js";
|
|
2
2
|
import { IDeviceInterface } from "../interfaces.js";
|
|
3
|
+
import * as Consts from "../consts.js";
|
|
3
4
|
/**
|
|
4
5
|
* @class PiezoBuzzer
|
|
5
6
|
* @extends Device
|
|
@@ -10,8 +11,8 @@ export declare class PiezoBuzzer extends Device {
|
|
|
10
11
|
* Play a tone on the Hub's in-built buzzer
|
|
11
12
|
* @param {number} frequency
|
|
12
13
|
* @param {number} time How long the tone should play for (in milliseconds).
|
|
13
|
-
* @returns {Promise} Resolved upon
|
|
14
|
+
* @returns {Promise<CommandFeedback>} Resolved upon completion of command (i.e. once the tone has finished playing).
|
|
14
15
|
*/
|
|
15
|
-
playTone(frequency: number, time: number): Promise<
|
|
16
|
+
playTone(frequency: number, time: number): Promise<Consts.CommandFeedback>;
|
|
16
17
|
}
|
|
17
18
|
//# sourceMappingURL=piezobuzzer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"piezobuzzer.d.ts","sourceRoot":"","sources":["../../src/devices/piezobuzzer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"piezobuzzer.d.ts","sourceRoot":"","sources":["../../src/devices/piezobuzzer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AAEvC;;;GAGG;AACH,qBAAa,WAAY,SAAQ,MAAM;gBAGtB,GAAG,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM;IAKlD;;;;;OAKG;IACI,QAAQ,CAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CAWnD"}
|
|
@@ -12,7 +12,7 @@ export class PiezoBuzzer extends Device {
|
|
|
12
12
|
* Play a tone on the Hub's in-built buzzer
|
|
13
13
|
* @param {number} frequency
|
|
14
14
|
* @param {number} time How long the tone should play for (in milliseconds).
|
|
15
|
-
* @returns {Promise} Resolved upon
|
|
15
|
+
* @returns {Promise<CommandFeedback>} Resolved upon completion of command (i.e. once the tone has finished playing).
|
|
16
16
|
*/
|
|
17
17
|
playTone(frequency, time) {
|
|
18
18
|
return new Promise((resolve) => {
|
|
@@ -20,7 +20,7 @@ export class PiezoBuzzer extends Device {
|
|
|
20
20
|
data.writeUInt16LE(frequency, 3);
|
|
21
21
|
data.writeUInt16LE(time, 5);
|
|
22
22
|
this.send(data, Consts.BLECharacteristic.WEDO2_MOTOR_VALUE_WRITE);
|
|
23
|
-
global.setTimeout(resolve, time);
|
|
23
|
+
global.setTimeout(() => { return resolve(Consts.CommandFeedback.FEEDBACK_DISABLED); }, time);
|
|
24
24
|
});
|
|
25
25
|
}
|
|
26
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"piezobuzzer.js","sourceRoot":"","sources":["../../src/devices/piezobuzzer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAIrC,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AAEvC;;;GAGG;AACH,MAAM,OAAO,WAAY,SAAQ,MAAM;IAGnC,YAAa,GAAqB,EAAE,MAAc;QAC9C,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAC3D,CAAC;IAGD;;;;;OAKG;IACI,QAAQ,CAAE,SAAiB,EAAE,IAAY;QAC5C,OAAO,IAAI,OAAO,
|
|
1
|
+
{"version":3,"file":"piezobuzzer.js","sourceRoot":"","sources":["../../src/devices/piezobuzzer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAIrC,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AAEvC;;;GAGG;AACH,MAAM,OAAO,WAAY,SAAQ,MAAM;IAGnC,YAAa,GAAqB,EAAE,MAAc;QAC9C,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAC3D,CAAC;IAGD;;;;;OAKG;IACI,QAAQ,CAAE,SAAiB,EAAE,IAAY;QAC5C,OAAO,IAAI,OAAO,CAAyB,CAAC,OAAO,EAAE,EAAE;YACnD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YACrE,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,CAAC;YAClE,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,GAAE,OAAO,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAA,CAAA,CAAC,EAAE,IAAI,CAAC,CAAC;QAC9F,CAAC,CAAC,CAAC;IACP,CAAC;CAGJ"}
|
|
@@ -31,29 +31,35 @@ export declare class TachoMotor extends BasicMotor {
|
|
|
31
31
|
/**
|
|
32
32
|
* Set the global acceleration time
|
|
33
33
|
* @param {number} time How long acceleration should last (in milliseconds).
|
|
34
|
-
* @
|
|
34
|
+
* @param {number} profile 0 by default
|
|
35
|
+
* @param {boolean} [interrupt=false] If true, previous commands are discarded.
|
|
36
|
+
* @returns {Promise<CommandFeedback>} Resolved upon completion of command (i.e. once the motor is finished).
|
|
35
37
|
*/
|
|
36
|
-
setAccelerationTime(time: number, profile?: number):
|
|
38
|
+
setAccelerationTime(time: number, profile?: number, interrupt?: boolean): Promise<Consts.CommandFeedback> | undefined;
|
|
37
39
|
/**
|
|
38
40
|
* Set the global deceleration time
|
|
39
41
|
* @param {number} time How long deceleration should last (in milliseconds).
|
|
40
|
-
* @
|
|
42
|
+
* @param {number} profile 0 by default
|
|
43
|
+
* @param {boolean} [interrupt=false] If true, previous commands are discarded.
|
|
44
|
+
* @returns {Promise<CommandFeedback>} Resolved upon completion of command (i.e. once the motor is finished).
|
|
41
45
|
*/
|
|
42
|
-
setDecelerationTime(time: number, profile?: number):
|
|
46
|
+
setDecelerationTime(time: number, profile?: number, interrupt?: boolean): Promise<Consts.CommandFeedback> | undefined;
|
|
43
47
|
/**
|
|
44
48
|
* Set the motor speed.
|
|
45
49
|
* @param {number} speed For forward, a value between 1 - 100 should be set. For reverse, a value between -1 to -100. Stop is 0.
|
|
46
50
|
* @param {number} time How long the motor should run for (in milliseconds).
|
|
47
|
-
* @
|
|
51
|
+
* @param {boolean} [interrupt=false] If true, previous commands are discarded.
|
|
52
|
+
* @returns {Promise<CommandFeedback>} Resolved upon completion of command (i.e. once the motor is finished).
|
|
48
53
|
*/
|
|
49
|
-
setSpeed(speed: [number, number] | number, time: number | undefined): Promise<
|
|
54
|
+
setSpeed(speed: [number, number] | number, time: number | undefined, interrupt?: boolean): Promise<Consts.CommandFeedback> | undefined;
|
|
50
55
|
/**
|
|
51
56
|
* Rotate a motor by a given amount of degrees.
|
|
52
57
|
* @param {number} degrees How much the motor should be rotated (in degrees).
|
|
53
58
|
* @param {number} [speed=100] For forward, a value between 1 - 100 should be set. For reverse, a value between -1 to -100.
|
|
54
|
-
* @
|
|
59
|
+
* @param {boolean} [interrupt=false] If true, previous commands are discarded.
|
|
60
|
+
* @returns {Promise<CommandFeedback>} Resolved upon completion of command (i.e. once the motor is finished).
|
|
55
61
|
*/
|
|
56
|
-
rotateByDegrees(degrees: number, speed: [number, number] | number): Promise<
|
|
62
|
+
rotateByDegrees(degrees: number, speed: [number, number] | number, interrupt?: boolean): Promise<Consts.CommandFeedback> | undefined;
|
|
57
63
|
protected useProfile(): number;
|
|
58
64
|
}
|
|
59
65
|
export declare enum Mode {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tachomotor.d.ts","sourceRoot":"","sources":["../../src/devices/tachomotor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AAGvC;;;GAGG;AACH,qBAAa,UAAW,SAAQ,UAAU;IAEtC,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,YAAY,CAA6B;IACvE,SAAS,CAAC,SAAS,EAAE,MAAM,CAAO;IAC3B,sBAAsB,EAAE,OAAO,CAAQ;IACvC,sBAAsB,EAAE,OAAO,CAAQ;gBAEjC,GAAG,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE;QAAC,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;KAAM,EAAE,IAAI,GAAE,MAAM,CAAC,UAAsC;IAIzI,OAAO,CAAE,OAAO,EAAE,MAAM;IAkB/B;;;;;OAKG;IACI,eAAe,CAAE,KAAK,EAAE,MAAM,CAAC,YAAY;IAKlD;;;;;OAKG;IACI,WAAW,CAAE,QAAQ,EAAE,MAAM;IAKpC
|
|
1
|
+
{"version":3,"file":"tachomotor.d.ts","sourceRoot":"","sources":["../../src/devices/tachomotor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AAGvC;;;GAGG;AACH,qBAAa,UAAW,SAAQ,UAAU;IAEtC,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,YAAY,CAA6B;IACvE,SAAS,CAAC,SAAS,EAAE,MAAM,CAAO;IAC3B,sBAAsB,EAAE,OAAO,CAAQ;IACvC,sBAAsB,EAAE,OAAO,CAAQ;gBAEjC,GAAG,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE;QAAC,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;KAAM,EAAE,IAAI,GAAE,MAAM,CAAC,UAAsC;IAIzI,OAAO,CAAE,OAAO,EAAE,MAAM;IAkB/B;;;;;OAKG;IACI,eAAe,CAAE,KAAK,EAAE,MAAM,CAAC,YAAY;IAKlD;;;;;OAKG;IACI,WAAW,CAAE,QAAQ,EAAE,MAAM;IAKpC;;;;;;OAMG;IACI,mBAAmB,CAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,MAAa,EAAE,SAAS,GAAE,OAAe;IAO5F;;;;;;OAMG;IACI,mBAAmB,CAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,MAAa,EAAE,SAAS,GAAE,OAAc;IAO3F;;;;;;OAMG;IACI,QAAQ,CAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,GAAE,OAAe;IA4BvG;;;;;;OAMG;IACI,eAAe,CAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,EAAE,SAAS,GAAE,OAAe;IAqBrG,SAAS,CAAC,UAAU;CAYvB;AAED,oBAAY,IAAI;IACZ,QAAQ,IAAO;CAClB;AAED,eAAO,MAAM,OAAO,EAAE;IAAC,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAE7C,CAAC"}
|
|
@@ -49,96 +49,90 @@ export class TachoMotor extends BasicMotor {
|
|
|
49
49
|
/**
|
|
50
50
|
* Set the global acceleration time
|
|
51
51
|
* @param {number} time How long acceleration should last (in milliseconds).
|
|
52
|
-
* @
|
|
52
|
+
* @param {number} profile 0 by default
|
|
53
|
+
* @param {boolean} [interrupt=false] If true, previous commands are discarded.
|
|
54
|
+
* @returns {Promise<CommandFeedback>} Resolved upon completion of command (i.e. once the motor is finished).
|
|
53
55
|
*/
|
|
54
|
-
setAccelerationTime(time, profile = 0x00) {
|
|
55
|
-
const message = Buffer.from([
|
|
56
|
-
message.writeUInt16LE(time,
|
|
57
|
-
this.
|
|
56
|
+
setAccelerationTime(time, profile = 0x00, interrupt = false) {
|
|
57
|
+
const message = Buffer.from([0x05, 0x00, 0x00, profile]);
|
|
58
|
+
message.writeUInt16LE(time, 1);
|
|
59
|
+
return this.sendPortOutputCommand(message, interrupt);
|
|
58
60
|
}
|
|
59
61
|
/**
|
|
60
62
|
* Set the global deceleration time
|
|
61
63
|
* @param {number} time How long deceleration should last (in milliseconds).
|
|
62
|
-
* @
|
|
64
|
+
* @param {number} profile 0 by default
|
|
65
|
+
* @param {boolean} [interrupt=false] If true, previous commands are discarded.
|
|
66
|
+
* @returns {Promise<CommandFeedback>} Resolved upon completion of command (i.e. once the motor is finished).
|
|
63
67
|
*/
|
|
64
|
-
setDecelerationTime(time, profile = 0x00) {
|
|
65
|
-
const message = Buffer.from([
|
|
66
|
-
message.writeUInt16LE(time,
|
|
67
|
-
this.
|
|
68
|
+
setDecelerationTime(time, profile = 0x00, interrupt = true) {
|
|
69
|
+
const message = Buffer.from([0x06, 0x00, 0x00, profile]);
|
|
70
|
+
message.writeUInt16LE(time, 1);
|
|
71
|
+
return this.sendPortOutputCommand(message, interrupt);
|
|
68
72
|
}
|
|
69
73
|
/**
|
|
70
74
|
* Set the motor speed.
|
|
71
75
|
* @param {number} speed For forward, a value between 1 - 100 should be set. For reverse, a value between -1 to -100. Stop is 0.
|
|
72
76
|
* @param {number} time How long the motor should run for (in milliseconds).
|
|
73
|
-
* @
|
|
77
|
+
* @param {boolean} [interrupt=false] If true, previous commands are discarded.
|
|
78
|
+
* @returns {Promise<CommandFeedback>} Resolved upon completion of command (i.e. once the motor is finished).
|
|
74
79
|
*/
|
|
75
|
-
setSpeed(speed, time) {
|
|
80
|
+
setSpeed(speed, time, interrupt = false) {
|
|
76
81
|
if (!this.isVirtualPort && speed instanceof Array) {
|
|
77
82
|
throw new Error("Only virtual ports can accept multiple speeds");
|
|
78
83
|
}
|
|
79
84
|
if (this.isWeDo2SmartHub) {
|
|
80
85
|
throw new Error("Motor speed is not available on the WeDo 2.0 Smart Hub");
|
|
81
86
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
87
|
+
if (speed === undefined || speed === null) {
|
|
88
|
+
speed = 100;
|
|
89
|
+
}
|
|
90
|
+
let message;
|
|
91
|
+
if (time !== undefined) {
|
|
92
|
+
if (speed instanceof Array) {
|
|
93
|
+
message = Buffer.from([0x0a, 0x00, 0x00, mapSpeed(speed[0]), mapSpeed(speed[1]), this._maxPower, this._brakeStyle, this.useProfile()]);
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
message = Buffer.from([0x09, 0x00, 0x00, mapSpeed(speed), this._maxPower, this._brakeStyle, this.useProfile()]);
|
|
86
97
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
else {
|
|
93
|
-
message = Buffer.from([0x81, this.portId, 0x11, 0x09, 0x00, 0x00, mapSpeed(speed), this._maxPower, this._brakeStyle, this.useProfile()]);
|
|
94
|
-
}
|
|
95
|
-
message.writeUInt16LE(time, 4);
|
|
98
|
+
message.writeUInt16LE(time, 1);
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
if (speed instanceof Array) {
|
|
102
|
+
message = Buffer.from([0x08, mapSpeed(speed[0]), mapSpeed(speed[1]), this._maxPower, this.useProfile()]);
|
|
96
103
|
}
|
|
97
104
|
else {
|
|
98
|
-
|
|
99
|
-
message = Buffer.from([0x81, this.portId, 0x11, 0x08, mapSpeed(speed[0]), mapSpeed(speed[1]), this._maxPower, this.useProfile()]);
|
|
100
|
-
}
|
|
101
|
-
else {
|
|
102
|
-
message = Buffer.from([0x81, this.portId, 0x11, 0x07, mapSpeed(speed), this._maxPower, this.useProfile()]);
|
|
103
|
-
}
|
|
105
|
+
message = Buffer.from([0x07, mapSpeed(speed), this._maxPower, this.useProfile()]);
|
|
104
106
|
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
return resolve();
|
|
108
|
-
});
|
|
109
|
-
});
|
|
107
|
+
}
|
|
108
|
+
return this.sendPortOutputCommand(message, interrupt);
|
|
110
109
|
}
|
|
111
110
|
/**
|
|
112
111
|
* Rotate a motor by a given amount of degrees.
|
|
113
112
|
* @param {number} degrees How much the motor should be rotated (in degrees).
|
|
114
113
|
* @param {number} [speed=100] For forward, a value between 1 - 100 should be set. For reverse, a value between -1 to -100.
|
|
115
|
-
* @
|
|
114
|
+
* @param {boolean} [interrupt=false] If true, previous commands are discarded.
|
|
115
|
+
* @returns {Promise<CommandFeedback>} Resolved upon completion of command (i.e. once the motor is finished).
|
|
116
116
|
*/
|
|
117
|
-
rotateByDegrees(degrees, speed) {
|
|
117
|
+
rotateByDegrees(degrees, speed, interrupt = false) {
|
|
118
118
|
if (!this.isVirtualPort && speed instanceof Array) {
|
|
119
119
|
throw new Error("Only virtual ports can accept multiple speeds");
|
|
120
120
|
}
|
|
121
121
|
if (this.isWeDo2SmartHub) {
|
|
122
122
|
throw new Error("Rotation is not available on the WeDo 2.0 Smart Hub");
|
|
123
123
|
}
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
message.writeUInt32LE(degrees, 4);
|
|
137
|
-
this.send(message);
|
|
138
|
-
this._finishedCallbacks.push(() => {
|
|
139
|
-
return resolve();
|
|
140
|
-
});
|
|
141
|
-
});
|
|
124
|
+
if (speed === undefined || speed === null) {
|
|
125
|
+
speed = 100;
|
|
126
|
+
}
|
|
127
|
+
let message;
|
|
128
|
+
if (speed instanceof Array) {
|
|
129
|
+
message = Buffer.from([0x0c, 0x00, 0x00, 0x00, 0x00, mapSpeed(speed[0]), mapSpeed(speed[1]), this._maxPower, this._brakeStyle, this.useProfile()]);
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
message = Buffer.from([0x0b, 0x00, 0x00, 0x00, 0x00, mapSpeed(speed), this._maxPower, this._brakeStyle, this.useProfile()]);
|
|
133
|
+
}
|
|
134
|
+
message.writeUInt32LE(degrees, 1);
|
|
135
|
+
return this.sendPortOutputCommand(message, interrupt);
|
|
142
136
|
}
|
|
143
137
|
useProfile() {
|
|
144
138
|
let value = 0x00;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tachomotor.js","sourceRoot":"","sources":["../../src/devices/tachomotor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAI7C,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC;;;GAGG;AACH,MAAM,OAAO,UAAW,SAAQ,UAAU;IAOtC,YAAa,GAAqB,EAAE,MAAc,EAAE,UAAqC,EAAE,EAAE,OAA0B,MAAM,CAAC,UAAU,CAAC,OAAO;QAC5I,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;QANxD,gBAAW,GAAwB,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC;QAC7D,cAAS,GAAW,GAAG,CAAC;QAC3B,2BAAsB,GAAY,IAAI,CAAC;QACvC,2BAAsB,GAAY,IAAI,CAAC;IAI9C,CAAC;IAEM,OAAO,CAAE,OAAe;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QAExB,QAAQ,IAAI,EAAE,CAAC;YACX,KAAK,IAAI,CAAC,QAAQ;gBACd,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClE;;;;;mBAKG;gBACH,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;gBACnC,MAAM;QACd,CAAC;IACL,CAAC;IAGD;;;;;OAKG;IACI,eAAe,CAAE,KAA0B;QAC9C,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC7B,CAAC;IAGD;;;;;OAKG;IACI,WAAW,CAAE,QAAgB;QAChC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC9B,CAAC;IAGD
|
|
1
|
+
{"version":3,"file":"tachomotor.js","sourceRoot":"","sources":["../../src/devices/tachomotor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Device } from "./device.js";
|
|
2
2
|
import { IDeviceInterface } from "../interfaces.js";
|
|
3
|
+
import * as Consts from "../consts.js";
|
|
3
4
|
/**
|
|
4
5
|
* @class Technic3x3ColorLightMatrix
|
|
5
6
|
* @extends Device
|
|
@@ -9,9 +10,9 @@ export declare class Technic3x3ColorLightMatrix extends Device {
|
|
|
9
10
|
/**
|
|
10
11
|
* Set the LED matrix, one color per LED
|
|
11
12
|
* @param {Color[] | Color} colors Array of 9 colors, 9 Color objects, or a single color
|
|
12
|
-
* @returns {Promise} Resolved upon
|
|
13
|
+
* @returns {Promise<CommandFeedback>} Resolved upon completion of command.
|
|
13
14
|
*/
|
|
14
|
-
setMatrix(colors: number[] | number): Promise<
|
|
15
|
+
setMatrix(colors: number[] | number): Promise<Consts.CommandFeedback> | undefined;
|
|
15
16
|
}
|
|
16
17
|
export declare enum Mode {
|
|
17
18
|
LEV_0 = 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"technic3x3colorlightmatrix.d.ts","sourceRoot":"","sources":["../../src/devices/technic3x3colorlightmatrix.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"technic3x3colorlightmatrix.d.ts","sourceRoot":"","sources":["../../src/devices/technic3x3colorlightmatrix.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AAEvC;;;GAGG;AACH,qBAAa,0BAA2B,SAAQ,MAAM;gBAGrC,GAAG,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM;IAKlD;;;;OAIG;IACI,SAAS,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM;CA2B9C;AAED,oBAAY,IAAI;IACZ,KAAK,IAAO;IACZ,KAAK,IAAO;IACZ,KAAK,IAAO;IACZ,KAAK,IAAO;CACf"}
|
|
@@ -12,35 +12,32 @@ export class Technic3x3ColorLightMatrix extends Device {
|
|
|
12
12
|
/**
|
|
13
13
|
* Set the LED matrix, one color per LED
|
|
14
14
|
* @param {Color[] | Color} colors Array of 9 colors, 9 Color objects, or a single color
|
|
15
|
-
* @returns {Promise} Resolved upon
|
|
15
|
+
* @returns {Promise<CommandFeedback>} Resolved upon completion of command.
|
|
16
16
|
*/
|
|
17
17
|
setMatrix(colors) {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
if (typeof colors === 'number') {
|
|
23
|
-
// @ts-ignore
|
|
24
|
-
colorArray[i] = colors + (10 << 4);
|
|
25
|
-
}
|
|
18
|
+
this.subscribe(Mode.PIX_0);
|
|
19
|
+
const colorArray = new Array(9);
|
|
20
|
+
for (let i = 0; i < colorArray.length; i++) {
|
|
21
|
+
if (typeof colors === 'number') {
|
|
26
22
|
// @ts-ignore
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
23
|
+
colorArray[i] = colors + (10 << 4);
|
|
24
|
+
}
|
|
25
|
+
// @ts-ignore
|
|
26
|
+
if (colors[i] instanceof Color) {
|
|
31
27
|
// @ts-ignore
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
28
|
+
colorArray[i] = colors[i].toValue();
|
|
29
|
+
}
|
|
30
|
+
// @ts-ignore
|
|
31
|
+
if (colors[i] === Consts.Color.NONE) {
|
|
32
|
+
colorArray[i] = Consts.Color.NONE;
|
|
33
|
+
}
|
|
34
|
+
// @ts-ignore
|
|
35
|
+
if (colors[i] <= 10) {
|
|
35
36
|
// @ts-ignore
|
|
36
|
-
|
|
37
|
-
// @ts-ignore
|
|
38
|
-
colorArray[i] = colors[i] + (10 << 4); // If a raw color value, set it to max brightness (10)
|
|
39
|
-
}
|
|
37
|
+
colorArray[i] = colors[i] + (10 << 4); // If a raw color value, set it to max brightness (10)
|
|
40
38
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
});
|
|
39
|
+
}
|
|
40
|
+
return this.writeDirect(Mode.PIX_0, Buffer.from(colorArray));
|
|
44
41
|
}
|
|
45
42
|
}
|
|
46
43
|
export var Mode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"technic3x3colorlightmatrix.js","sourceRoot":"","sources":["../../src/devices/technic3x3colorlightmatrix.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAIrC,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AAEvC;;;GAGG;AACH,MAAM,OAAO,0BAA2B,SAAQ,MAAM;IAGlD,YAAa,GAAqB,EAAE,MAAc;QAC9C,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC;IAC7E,CAAC;IAGD;;;;OAIG;IACI,SAAS,CAAE,MAAyB;QACvC,
|
|
1
|
+
{"version":3,"file":"technic3x3colorlightmatrix.js","sourceRoot":"","sources":["../../src/devices/technic3x3colorlightmatrix.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAIrC,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AAEvC;;;GAGG;AACH,MAAM,OAAO,0BAA2B,SAAQ,MAAM;IAGlD,YAAa,GAAqB,EAAE,MAAc;QAC9C,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC;IAC7E,CAAC;IAGD;;;;OAIG;IACI,SAAS,CAAE,MAAyB;QACvC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,MAAM,UAAU,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,IAAI,OAAO,MAAM,KAAM,QAAQ,EAAE,CAAC;gBAC9B,aAAa;gBACb,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;YACvC,CAAC;YACD,aAAa;YACb,IAAI,MAAM,CAAC,CAAC,CAAC,YAAY,KAAK,EAAE,CAAC;gBAC7B,aAAa;gBACb,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YACxC,CAAC;YACD,aAAa;YACb,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBAClC,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;YACtC,CAAC;YACD,aAAa;YACb,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;gBAClB,aAAa;gBACb,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,sDAAsD;YACjG,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACjE,CAAC;CAGJ;AAED,MAAM,CAAN,IAAY,IAKX;AALD,WAAY,IAAI;IACZ,iCAAY,CAAA;IACZ,iCAAY,CAAA;IACZ,iCAAY,CAAA;IACZ,iCAAY,CAAA;AAChB,CAAC,EALW,IAAI,KAAJ,IAAI,QAKf"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Device } from "./device.js";
|
|
2
2
|
import { IDeviceInterface } from "../interfaces.js";
|
|
3
|
+
import * as Consts from "../consts.js";
|
|
3
4
|
/**
|
|
4
5
|
* @class TechnicColorSensor
|
|
5
6
|
* @extends Device
|
|
@@ -12,14 +13,18 @@ export declare class TechnicColorSensor extends Device {
|
|
|
12
13
|
* @param {number} firstSegment First light segment. 0-100 brightness.
|
|
13
14
|
* @param {number} secondSegment Second light segment. 0-100 brightness.
|
|
14
15
|
* @param {number} thirdSegment Third light segment. 0-100 brightness.
|
|
15
|
-
* @returns {Promise} Resolved upon
|
|
16
|
+
* @returns {Promise<CommandFeedback>} Resolved upon completion of the command.
|
|
16
17
|
*/
|
|
17
|
-
setBrightness(firstSegment: number, secondSegment: number, thirdSegment: number):
|
|
18
|
+
setBrightness(firstSegment: number, secondSegment: number, thirdSegment: number): Promise<Consts.CommandFeedback> | undefined;
|
|
18
19
|
}
|
|
19
20
|
export declare enum Mode {
|
|
20
21
|
COLOR = 0,
|
|
21
|
-
|
|
22
|
-
|
|
22
|
+
REFLECT = 1,
|
|
23
|
+
AMBIENT = 2,
|
|
24
|
+
LIGHT = 3,
|
|
25
|
+
RGB_I = 5,
|
|
26
|
+
HSV = 6,
|
|
27
|
+
SHSV = 7
|
|
23
28
|
}
|
|
24
29
|
export declare const ModeMap: {
|
|
25
30
|
[event: string]: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"techniccolorsensor.d.ts","sourceRoot":"","sources":["../../src/devices/techniccolorsensor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"techniccolorsensor.d.ts","sourceRoot":"","sources":["../../src/devices/techniccolorsensor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AAGvC;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,MAAM;gBAE7B,GAAG,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM;IAI3C,OAAO,CAAE,OAAO,EAAE,MAAM;IAgI/B;;;;;;OAMG;IACI,aAAa,CAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;CAK1F;AAED,oBAAY,IAAI;IACZ,KAAK,IAAO;IACZ,OAAO,IAAO;IACd,OAAO,IAAO;IACd,KAAK,IAAO;IACZ,KAAK,IAAO;IACZ,GAAG,IAAO;IACV,IAAI,IAAO;CACd;AAED,eAAO,MAAM,OAAO,EAAE;IAAC,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAO7C,CAAC"}
|
|
@@ -11,8 +11,16 @@ export class TechnicColorSensor extends Device {
|
|
|
11
11
|
}
|
|
12
12
|
receive(message) {
|
|
13
13
|
const mode = this._mode;
|
|
14
|
+
let hue;
|
|
15
|
+
let saturation;
|
|
16
|
+
let value;
|
|
17
|
+
let intensity;
|
|
14
18
|
switch (mode) {
|
|
15
19
|
case Mode.COLOR:
|
|
20
|
+
if (message.length !== 5) {
|
|
21
|
+
// if mode of device has not changed to this._mode yet
|
|
22
|
+
break;
|
|
23
|
+
}
|
|
16
24
|
if (message[4] <= 10) {
|
|
17
25
|
const color = parseColor(message[4]);
|
|
18
26
|
/**
|
|
@@ -24,7 +32,11 @@ export class TechnicColorSensor extends Device {
|
|
|
24
32
|
this.notify("color", { color });
|
|
25
33
|
}
|
|
26
34
|
break;
|
|
27
|
-
case Mode.
|
|
35
|
+
case Mode.REFLECT:
|
|
36
|
+
if (message.length !== 5) {
|
|
37
|
+
// if mode of device has not changed to this._mode yet
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
28
40
|
const reflect = message[4];
|
|
29
41
|
/**
|
|
30
42
|
* Emits when the light reflectivity changes.
|
|
@@ -34,7 +46,11 @@ export class TechnicColorSensor extends Device {
|
|
|
34
46
|
*/
|
|
35
47
|
this.notify("reflect", { reflect });
|
|
36
48
|
break;
|
|
37
|
-
case Mode.
|
|
49
|
+
case Mode.AMBIENT:
|
|
50
|
+
if (message.length !== 5) {
|
|
51
|
+
// if mode of device has not changed to this._mode yet
|
|
52
|
+
break;
|
|
53
|
+
}
|
|
38
54
|
const ambient = message[4];
|
|
39
55
|
/**
|
|
40
56
|
* Emits when the ambient light changes.
|
|
@@ -44,6 +60,73 @@ export class TechnicColorSensor extends Device {
|
|
|
44
60
|
*/
|
|
45
61
|
this.notify("ambient", { ambient });
|
|
46
62
|
break;
|
|
63
|
+
case Mode.RGB_I:
|
|
64
|
+
if (this.isWeDo2SmartHub) {
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
if (message.length !== 12) {
|
|
68
|
+
// if mode of device has not changed to this._mode yet
|
|
69
|
+
break;
|
|
70
|
+
}
|
|
71
|
+
const red = message.readUInt16LE(4);
|
|
72
|
+
const green = message.readUInt16LE(6);
|
|
73
|
+
const blue = message.readUInt16LE(8);
|
|
74
|
+
intensity = message.readUInt16LE(10);
|
|
75
|
+
/**
|
|
76
|
+
* Emits when a color sensor is activated. Measured with light on.
|
|
77
|
+
* @event TechnicColorSensor#rgbIntensity
|
|
78
|
+
* @type {object}
|
|
79
|
+
* @param {number} red
|
|
80
|
+
* @param {number} green
|
|
81
|
+
* @param {number} blue
|
|
82
|
+
* @param {number} intensity
|
|
83
|
+
*/
|
|
84
|
+
this.notify("rgbIntensity", { red, green, blue, intensity });
|
|
85
|
+
break;
|
|
86
|
+
case Mode.HSV:
|
|
87
|
+
if (this.isWeDo2SmartHub) {
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
90
|
+
if (message.length !== 10) {
|
|
91
|
+
// if mode of device has not changed to this._mode yet
|
|
92
|
+
break;
|
|
93
|
+
}
|
|
94
|
+
hue = message.readUInt16LE(4);
|
|
95
|
+
saturation = message.readUInt16LE(6);
|
|
96
|
+
value = message.readUInt16LE(8);
|
|
97
|
+
/**
|
|
98
|
+
* Emits when a color sensor is activated. Measured with light on.
|
|
99
|
+
* @event TechnicColorSensor#hsvIntensity
|
|
100
|
+
* @type {object}
|
|
101
|
+
* @param {number} hue
|
|
102
|
+
* @param {number} saturation
|
|
103
|
+
* @param {number} value
|
|
104
|
+
*/
|
|
105
|
+
this.notify("hsvIntensity", { hue, saturation, value });
|
|
106
|
+
break;
|
|
107
|
+
case Mode.SHSV:
|
|
108
|
+
if (this.isWeDo2SmartHub) {
|
|
109
|
+
break;
|
|
110
|
+
}
|
|
111
|
+
if (message.length !== 12) {
|
|
112
|
+
// if mode of device has not changed to this._mode yet
|
|
113
|
+
break;
|
|
114
|
+
}
|
|
115
|
+
hue = message.readUInt16LE(4);
|
|
116
|
+
saturation = message.readUInt16LE(6);
|
|
117
|
+
value = message.readUInt16LE(8);
|
|
118
|
+
intensity = message.readUInt16LE(10);
|
|
119
|
+
/**
|
|
120
|
+
* Emits when a color sensor is activated. Measured with light off.
|
|
121
|
+
* @event TechnicColorSensor#hsvAmbient
|
|
122
|
+
* @type {object}
|
|
123
|
+
* @param {number} hue
|
|
124
|
+
* @param {number} saturation
|
|
125
|
+
* @param {number} value
|
|
126
|
+
* @param {number} intensity
|
|
127
|
+
*/
|
|
128
|
+
this.notify("hsvAmbient", { hue, saturation, value, intensity });
|
|
129
|
+
break;
|
|
47
130
|
}
|
|
48
131
|
}
|
|
49
132
|
/**
|
|
@@ -51,21 +134,29 @@ export class TechnicColorSensor extends Device {
|
|
|
51
134
|
* @param {number} firstSegment First light segment. 0-100 brightness.
|
|
52
135
|
* @param {number} secondSegment Second light segment. 0-100 brightness.
|
|
53
136
|
* @param {number} thirdSegment Third light segment. 0-100 brightness.
|
|
54
|
-
* @returns {Promise} Resolved upon
|
|
137
|
+
* @returns {Promise<CommandFeedback>} Resolved upon completion of the command.
|
|
55
138
|
*/
|
|
56
139
|
setBrightness(firstSegment, secondSegment, thirdSegment) {
|
|
57
|
-
this.
|
|
140
|
+
this.subscribe(Mode.LIGHT); // other modes use different light setting
|
|
141
|
+
return this.writeDirect(Mode.LIGHT, Buffer.from([firstSegment, secondSegment, thirdSegment]));
|
|
58
142
|
}
|
|
59
143
|
}
|
|
60
144
|
export var Mode;
|
|
61
145
|
(function (Mode) {
|
|
62
146
|
Mode[Mode["COLOR"] = 0] = "COLOR";
|
|
63
|
-
Mode[Mode["
|
|
64
|
-
Mode[Mode["
|
|
147
|
+
Mode[Mode["REFLECT"] = 1] = "REFLECT";
|
|
148
|
+
Mode[Mode["AMBIENT"] = 2] = "AMBIENT";
|
|
149
|
+
Mode[Mode["LIGHT"] = 3] = "LIGHT";
|
|
150
|
+
Mode[Mode["RGB_I"] = 5] = "RGB_I";
|
|
151
|
+
Mode[Mode["HSV"] = 6] = "HSV";
|
|
152
|
+
Mode[Mode["SHSV"] = 7] = "SHSV";
|
|
65
153
|
})(Mode || (Mode = {}));
|
|
66
154
|
export const ModeMap = {
|
|
67
155
|
"color": Mode.COLOR,
|
|
68
|
-
"reflect": Mode.
|
|
69
|
-
"ambient": Mode.
|
|
156
|
+
"reflect": Mode.REFLECT,
|
|
157
|
+
"ambient": Mode.AMBIENT,
|
|
158
|
+
"rgbIntensity": Mode.RGB_I,
|
|
159
|
+
"hsvIntensity": Mode.HSV,
|
|
160
|
+
"hsvAmbient": Mode.SHSV
|
|
70
161
|
};
|
|
71
162
|
//# sourceMappingURL=techniccolorsensor.js.map
|