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/consts.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../../src/consts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { TachoMotor } from "./tachomotor";
|
|
2
|
-
import { IDeviceInterface } from "../interfaces";
|
|
3
|
-
import * as Consts from "../consts";
|
|
4
|
-
/**
|
|
5
|
-
* @class AbsoluteMotor
|
|
6
|
-
* @extends TachoMotor
|
|
7
|
-
*/
|
|
8
|
-
export declare class AbsoluteMotor extends TachoMotor {
|
|
9
|
-
constructor(hub: IDeviceInterface, portId: number, modeMap?: {
|
|
10
|
-
[event: string]: number;
|
|
11
|
-
}, type?: Consts.DeviceType);
|
|
12
|
-
receive(message: Buffer): void;
|
|
13
|
-
/**
|
|
14
|
-
* Rotate a motor by a given angle.
|
|
15
|
-
* @method AbsoluteMotor#gotoAngle
|
|
16
|
-
* @param {number} angle Absolute position the motor should go to (degrees from 0).
|
|
17
|
-
* @param {number} [speed=100] For forward, a value between 1 - 100 should be set. For reverse, a value between -1 to -100.
|
|
18
|
-
* @returns {Promise} Resolved upon successful completion of command (ie. once the motor is finished).
|
|
19
|
-
*/
|
|
20
|
-
gotoAngle(angle: [number, number] | number, speed?: number): Promise<void>;
|
|
21
|
-
/**
|
|
22
|
-
* Rotate motor to real zero position.
|
|
23
|
-
*
|
|
24
|
-
* Real zero is marked on Technic angular motors (SPIKE Prime). It is also available on Technic linear motors (Control+) but is unmarked.
|
|
25
|
-
* @method AbsoluteMotor#gotoRealZero
|
|
26
|
-
* @param {number} [speed=100] Speed between 1 - 100. Note that this will always take the shortest path to zero.
|
|
27
|
-
* @returns {Promise} Resolved upon successful completion of command (ie. once the motor is finished).
|
|
28
|
-
*/
|
|
29
|
-
gotoRealZero(speed?: number): Promise<void>;
|
|
30
|
-
/**
|
|
31
|
-
* Reset zero to current position
|
|
32
|
-
* @method AbsoluteMotor#resetZero
|
|
33
|
-
* @returns {Promise} Resolved upon successful completion of command (ie. once the motor is finished).
|
|
34
|
-
*/
|
|
35
|
-
resetZero(): Promise<void>;
|
|
36
|
-
}
|
|
37
|
-
export declare enum Mode {
|
|
38
|
-
ROTATION = 2,
|
|
39
|
-
ABSOLUTE = 3
|
|
40
|
-
}
|
|
41
|
-
export declare const ModeMap: {
|
|
42
|
-
[event: string]: number;
|
|
43
|
-
};
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
import { TachoMotor } from "./tachomotor";
|
|
2
|
-
import * as Consts from "../consts";
|
|
3
|
-
import { mapSpeed, normalizeAngle } from "../utils";
|
|
4
|
-
/**
|
|
5
|
-
* @class AbsoluteMotor
|
|
6
|
-
* @extends TachoMotor
|
|
7
|
-
*/
|
|
8
|
-
export class AbsoluteMotor extends TachoMotor {
|
|
9
|
-
constructor(hub, portId, modeMap = {}, type = Consts.DeviceType.UNKNOWN) {
|
|
10
|
-
super(hub, portId, Object.assign({}, modeMap, ModeMap), type);
|
|
11
|
-
}
|
|
12
|
-
receive(message) {
|
|
13
|
-
const mode = this._mode;
|
|
14
|
-
switch (mode) {
|
|
15
|
-
case Mode.ABSOLUTE:
|
|
16
|
-
const angle = normalizeAngle(message.readInt16LE(this.isWeDo2SmartHub ? 2 : 4));
|
|
17
|
-
/**
|
|
18
|
-
* Emits when a the motors absolute position is changed.
|
|
19
|
-
* @event AbsoluteMotor#absolute
|
|
20
|
-
* @type {object}
|
|
21
|
-
* @param {number} absolute
|
|
22
|
-
*/
|
|
23
|
-
this.notify("absolute", { angle });
|
|
24
|
-
break;
|
|
25
|
-
default:
|
|
26
|
-
super.receive(message);
|
|
27
|
-
break;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Rotate a motor by a given angle.
|
|
32
|
-
* @method AbsoluteMotor#gotoAngle
|
|
33
|
-
* @param {number} angle Absolute position the motor should go to (degrees from 0).
|
|
34
|
-
* @param {number} [speed=100] For forward, a value between 1 - 100 should be set. For reverse, a value between -1 to -100.
|
|
35
|
-
* @returns {Promise} Resolved upon successful completion of command (ie. once the motor is finished).
|
|
36
|
-
*/
|
|
37
|
-
gotoAngle(angle, speed = 100) {
|
|
38
|
-
if (!this.isVirtualPort && angle instanceof Array) {
|
|
39
|
-
throw new Error("Only virtual ports can accept multiple positions");
|
|
40
|
-
}
|
|
41
|
-
if (this.isWeDo2SmartHub) {
|
|
42
|
-
throw new Error("Absolute positioning is not available on the WeDo 2.0 Smart Hub");
|
|
43
|
-
}
|
|
44
|
-
this.cancelEventTimer();
|
|
45
|
-
return new Promise((resolve) => {
|
|
46
|
-
if (speed === undefined || speed === null) {
|
|
47
|
-
speed = 100;
|
|
48
|
-
}
|
|
49
|
-
let message;
|
|
50
|
-
if (angle instanceof Array) {
|
|
51
|
-
message = Buffer.from([0x81, this.portId, 0x11, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, mapSpeed(speed), this._maxPower, this._brakeStyle, this.useProfile()]);
|
|
52
|
-
message.writeInt32LE(normalizeAngle(angle[0]), 4);
|
|
53
|
-
message.writeInt32LE(normalizeAngle(angle[1]), 8);
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
message = Buffer.from([0x81, this.portId, 0x11, 0x0d, 0x00, 0x00, 0x00, 0x00, mapSpeed(speed), this._maxPower, this._brakeStyle, this.useProfile()]);
|
|
57
|
-
message.writeInt32LE(normalizeAngle(angle), 4);
|
|
58
|
-
}
|
|
59
|
-
this.send(message);
|
|
60
|
-
this._finishedCallbacks.push(() => {
|
|
61
|
-
return resolve();
|
|
62
|
-
});
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Rotate motor to real zero position.
|
|
67
|
-
*
|
|
68
|
-
* Real zero is marked on Technic angular motors (SPIKE Prime). It is also available on Technic linear motors (Control+) but is unmarked.
|
|
69
|
-
* @method AbsoluteMotor#gotoRealZero
|
|
70
|
-
* @param {number} [speed=100] Speed between 1 - 100. Note that this will always take the shortest path to zero.
|
|
71
|
-
* @returns {Promise} Resolved upon successful completion of command (ie. once the motor is finished).
|
|
72
|
-
*/
|
|
73
|
-
gotoRealZero(speed = 100) {
|
|
74
|
-
return new Promise((resolve) => {
|
|
75
|
-
const oldMode = this.mode;
|
|
76
|
-
let calibrated = false;
|
|
77
|
-
this.on("absolute", async ({ angle }) => {
|
|
78
|
-
if (!calibrated) {
|
|
79
|
-
calibrated = true;
|
|
80
|
-
if (angle < 0) {
|
|
81
|
-
angle = Math.abs(angle);
|
|
82
|
-
}
|
|
83
|
-
else {
|
|
84
|
-
speed = -speed;
|
|
85
|
-
}
|
|
86
|
-
await this.rotateByDegrees(angle, speed);
|
|
87
|
-
if (oldMode) {
|
|
88
|
-
this.subscribe(oldMode);
|
|
89
|
-
}
|
|
90
|
-
return resolve();
|
|
91
|
-
}
|
|
92
|
-
});
|
|
93
|
-
this.requestUpdate();
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Reset zero to current position
|
|
98
|
-
* @method AbsoluteMotor#resetZero
|
|
99
|
-
* @returns {Promise} Resolved upon successful completion of command (ie. once the motor is finished).
|
|
100
|
-
*/
|
|
101
|
-
resetZero() {
|
|
102
|
-
return new Promise((resolve) => {
|
|
103
|
-
const data = Buffer.from([0x81, this.portId, 0x11, 0x51, 0x02, 0x00, 0x00, 0x00, 0x00]);
|
|
104
|
-
this.send(data);
|
|
105
|
-
return resolve();
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
export var Mode;
|
|
110
|
-
(function (Mode) {
|
|
111
|
-
Mode[Mode["ROTATION"] = 2] = "ROTATION";
|
|
112
|
-
Mode[Mode["ABSOLUTE"] = 3] = "ABSOLUTE";
|
|
113
|
-
})(Mode || (Mode = {}));
|
|
114
|
-
export const ModeMap = {
|
|
115
|
-
"rotate": Mode.ROTATION,
|
|
116
|
-
"absolute": Mode.ABSOLUTE
|
|
117
|
-
};
|
|
118
|
-
//# sourceMappingURL=absolutemotor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"absolutemotor.js","sourceRoot":"","sources":["../../../src/devices/absolutemotor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { Device } from "./device";
|
|
2
|
-
import { IDeviceInterface } from "../interfaces";
|
|
3
|
-
import * as Consts from "../consts";
|
|
4
|
-
/**
|
|
5
|
-
* @class BasicMotor
|
|
6
|
-
* @extends Device
|
|
7
|
-
*/
|
|
8
|
-
export declare class BasicMotor extends Device {
|
|
9
|
-
constructor(hub: IDeviceInterface, portId: number, modeMap: {
|
|
10
|
-
[event: string]: number;
|
|
11
|
-
}, type?: Consts.DeviceType);
|
|
12
|
-
/**
|
|
13
|
-
* Set the motor power.
|
|
14
|
-
* @method BasicMotor#setPower
|
|
15
|
-
* @param {number} power For forward, a value between 1 - 100 should be set. For reverse, a value between -1 to -100. Stop is 0.
|
|
16
|
-
* @returns {Promise} Resolved upon successful issuance of the command.
|
|
17
|
-
*/
|
|
18
|
-
setPower(power: number, interrupt?: boolean): any;
|
|
19
|
-
/**
|
|
20
|
-
* Ramp the motor power.
|
|
21
|
-
* @method BasicMotor#rampPower
|
|
22
|
-
* @param {number} fromPower For forward, a value between 1 - 100 should be set. For reverse, a value between -1 to -100. Stop is 0.
|
|
23
|
-
* @param {number} toPower For forward, a value between 1 - 100 should be set. For reverse, a value between -1 to -100. Stop is 0.
|
|
24
|
-
* @param {number} time How long the ramp should last (in milliseconds).
|
|
25
|
-
* @returns {Promise} Resolved upon successful completion of command.
|
|
26
|
-
*/
|
|
27
|
-
rampPower(fromPower: number, toPower: number, time: number): Promise<unknown>;
|
|
28
|
-
/**
|
|
29
|
-
* Stop the motor.
|
|
30
|
-
* @method BasicMotor#stop
|
|
31
|
-
* @returns {Promise} Resolved upon successful issuance of the command.
|
|
32
|
-
*/
|
|
33
|
-
stop(): any;
|
|
34
|
-
/**
|
|
35
|
-
* Brake the motor.
|
|
36
|
-
* @method BasicMotor#brake
|
|
37
|
-
* @returns {Promise} Resolved upon successful issuance of the command.
|
|
38
|
-
*/
|
|
39
|
-
brake(): any;
|
|
40
|
-
}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { Device } from "./device";
|
|
2
|
-
import * as Consts from "../consts";
|
|
3
|
-
import { calculateRamp, mapSpeed } from "../utils";
|
|
4
|
-
/**
|
|
5
|
-
* @class BasicMotor
|
|
6
|
-
* @extends Device
|
|
7
|
-
*/
|
|
8
|
-
export class BasicMotor extends Device {
|
|
9
|
-
constructor(hub, portId, modeMap, type = Consts.DeviceType.UNKNOWN) {
|
|
10
|
-
super(hub, portId, modeMap, type);
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Set the motor power.
|
|
14
|
-
* @method BasicMotor#setPower
|
|
15
|
-
* @param {number} power For forward, a value between 1 - 100 should be set. For reverse, a value between -1 to -100. Stop is 0.
|
|
16
|
-
* @returns {Promise} Resolved upon successful issuance of the command.
|
|
17
|
-
*/
|
|
18
|
-
setPower(power, interrupt = true) {
|
|
19
|
-
if (interrupt) {
|
|
20
|
-
this.cancelEventTimer();
|
|
21
|
-
}
|
|
22
|
-
return this.writeDirect(0x00, Buffer.from([mapSpeed(power)]));
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Ramp the motor power.
|
|
26
|
-
* @method BasicMotor#rampPower
|
|
27
|
-
* @param {number} fromPower For forward, a value between 1 - 100 should be set. For reverse, a value between -1 to -100. Stop is 0.
|
|
28
|
-
* @param {number} toPower For forward, a value between 1 - 100 should be set. For reverse, a value between -1 to -100. Stop is 0.
|
|
29
|
-
* @param {number} time How long the ramp should last (in milliseconds).
|
|
30
|
-
* @returns {Promise} Resolved upon successful completion of command.
|
|
31
|
-
*/
|
|
32
|
-
rampPower(fromPower, toPower, time) {
|
|
33
|
-
this.cancelEventTimer();
|
|
34
|
-
return new Promise((resolve) => {
|
|
35
|
-
calculateRamp(this, fromPower, toPower, time)
|
|
36
|
-
.on("changePower", (power) => {
|
|
37
|
-
this.setPower(power, false);
|
|
38
|
-
})
|
|
39
|
-
.on("finished", resolve);
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Stop the motor.
|
|
44
|
-
* @method BasicMotor#stop
|
|
45
|
-
* @returns {Promise} Resolved upon successful issuance of the command.
|
|
46
|
-
*/
|
|
47
|
-
stop() {
|
|
48
|
-
this.cancelEventTimer();
|
|
49
|
-
return this.setPower(0);
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Brake the motor.
|
|
53
|
-
* @method BasicMotor#brake
|
|
54
|
-
* @returns {Promise} Resolved upon successful issuance of the command.
|
|
55
|
-
*/
|
|
56
|
-
brake() {
|
|
57
|
-
this.cancelEventTimer();
|
|
58
|
-
return this.setPower(Consts.BrakingStyle.BRAKE);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
//# sourceMappingURL=basicmotor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"basicmotor.js","sourceRoot":"","sources":["../../../src/devices/basicmotor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAIlC,OAAO,KAAK,MAAM,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEnD;;;GAGG;AACH,MAAM,OAAO,UAAW,SAAQ,MAAM;IAGlC,YAAa,GAAqB,EAAE,MAAc,EAAE,OAAkC,EAAE,OAA0B,MAAM,CAAC,UAAU,CAAC,OAAO;QACvI,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IAGD;;;;;OAKG;IACI,QAAQ,CAAE,KAAa,EAAE,YAAqB,IAAI;QACrD,IAAI,SAAS,EAAE,CAAC;YACZ,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC5B,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC;IAGD;;;;;;;OAOG;IACI,SAAS,CAAE,SAAiB,EAAE,OAAe,EAAE,IAAY;QAC9D,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3B,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC;iBAC5C,EAAE,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;gBACzB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAChC,CAAC,CAAC;iBACD,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACP,CAAC;IAGD;;;;OAIG;IACI,IAAI;QACP,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IAGD;;;;OAIG;IACI,KAAK;QACR,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC;CAGJ"}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import { Device } from "./device";
|
|
2
|
-
import { IDeviceInterface } from "../interfaces";
|
|
3
|
-
/**
|
|
4
|
-
* @class ColorDistanceSensor
|
|
5
|
-
* @extends Device
|
|
6
|
-
*/
|
|
7
|
-
export declare class ColorDistanceSensor extends Device {
|
|
8
|
-
constructor(hub: IDeviceInterface, portId: number);
|
|
9
|
-
receive(message: Buffer): void;
|
|
10
|
-
/**
|
|
11
|
-
* Switches the IR receiver into extended channel mode. After setting this, use channels 5-8 instead of 1-4 for this receiver.
|
|
12
|
-
*
|
|
13
|
-
* NOTE: Calling this with channel 5-8 with switch off extended channel mode for this receiver.
|
|
14
|
-
* @method ColorDistanceSensor#setPFExtendedChannel
|
|
15
|
-
* @param {number} channel Channel number, between 1-8
|
|
16
|
-
* @returns {Promise} Resolved upon successful issuance of the command.
|
|
17
|
-
*/
|
|
18
|
-
setPFExtendedChannel(channel: number): any;
|
|
19
|
-
/**
|
|
20
|
-
* Set the power of a Power Functions motor via IR
|
|
21
|
-
* @method ColorDistanceSensor#setPFPower
|
|
22
|
-
* @param {number} channel Channel number, between 1-4
|
|
23
|
-
* @param {string} output Outport port, "RED" (A) or "BLUE" (B)
|
|
24
|
-
* @param {number} power -7 (full reverse) to 7 (full forward). 0 is stop. 8 is brake.
|
|
25
|
-
* @returns {Promise} Resolved upon successful issuance of the command.
|
|
26
|
-
*/
|
|
27
|
-
setPFPower(channel: number, output: Output, power: number): any;
|
|
28
|
-
/**
|
|
29
|
-
* Start Power Functions motors running via IR
|
|
30
|
-
*
|
|
31
|
-
* NOTE: This command is designed for bang-bang style operation. To keep the motors running, the sensor needs to be within range of the IR receiver constantly.
|
|
32
|
-
* @method ColorDistanceSensor#startPFMotors
|
|
33
|
-
* @param {Buffer} channel Channel number, between 1-4
|
|
34
|
-
* @param {Buffer} powerA -7 (full reverse) to 7 (full forward). 0 is stop. 8 is brake.
|
|
35
|
-
* @param {Buffer} powerB -7 (full reverse) to 7 (full forward). 0 is stop. 8 is brake.
|
|
36
|
-
* @returns {Promise} Resolved upon successful issuance of the command.
|
|
37
|
-
*/
|
|
38
|
-
startPFMotors(channel: number, powerBlue: number, powerRed: number): any;
|
|
39
|
-
/**
|
|
40
|
-
* Send a raw Power Functions IR command
|
|
41
|
-
* @method ColorDistanceSensor#sendPFIRMessage
|
|
42
|
-
* @param {Buffer} message 2 byte payload making up a Power Functions protocol command. NOTE: Only specify nibbles 1-3, nibble 4 should be zeroed.
|
|
43
|
-
* @returns {Promise} Resolved upon successful issuance of the command.
|
|
44
|
-
*/
|
|
45
|
-
sendPFIRMessage(message: Buffer): any;
|
|
46
|
-
/**
|
|
47
|
-
* Set the color of the LED on the sensor via a color value.
|
|
48
|
-
* @method ColorDistanceSensor#setColor
|
|
49
|
-
* @param {Color} color
|
|
50
|
-
* @returns {Promise} Resolved upon successful issuance of the command.
|
|
51
|
-
*/
|
|
52
|
-
setColor(color: number | boolean): Promise<void>;
|
|
53
|
-
/**
|
|
54
|
-
* Set the distance count value.
|
|
55
|
-
* @method ColorDistanceSensor#setDistanceCount
|
|
56
|
-
* @param {count} distance count between 0 and 2^32
|
|
57
|
-
* @returns {Promise} Resolved upon successful issuance of the command.
|
|
58
|
-
*/
|
|
59
|
-
setDistanceCount(count: number): Promise<void>;
|
|
60
|
-
private _pfPowerToPWM;
|
|
61
|
-
}
|
|
62
|
-
export declare enum Mode {
|
|
63
|
-
COLOR = 0,
|
|
64
|
-
DISTANCE = 1,
|
|
65
|
-
DISTANCE_COUNT = 2,
|
|
66
|
-
REFLECT = 3,
|
|
67
|
-
AMBIENT = 4,
|
|
68
|
-
LED = 5,
|
|
69
|
-
RGB_I = 6,
|
|
70
|
-
PF_IR = 7,
|
|
71
|
-
COLOR_AND_DISTANCE = 8
|
|
72
|
-
}
|
|
73
|
-
export declare const ModeMap: {
|
|
74
|
-
[event: string]: number;
|
|
75
|
-
};
|
|
76
|
-
export declare enum Output {
|
|
77
|
-
RED = "RED",
|
|
78
|
-
BLUE = "BLUE"
|
|
79
|
-
}
|
|
@@ -1,284 +0,0 @@
|
|
|
1
|
-
import { Device } from "./device";
|
|
2
|
-
import * as Consts from "../consts";
|
|
3
|
-
import { parseColor } from "../utils";
|
|
4
|
-
/**
|
|
5
|
-
* @class ColorDistanceSensor
|
|
6
|
-
* @extends Device
|
|
7
|
-
*/
|
|
8
|
-
export class ColorDistanceSensor extends Device {
|
|
9
|
-
constructor(hub, portId) {
|
|
10
|
-
super(hub, portId, ModeMap, Consts.DeviceType.COLOR_DISTANCE_SENSOR);
|
|
11
|
-
}
|
|
12
|
-
receive(message) {
|
|
13
|
-
const mode = this._mode;
|
|
14
|
-
switch (mode) {
|
|
15
|
-
case Mode.COLOR:
|
|
16
|
-
if (message[this.isWeDo2SmartHub ? 2 : 4] <= 10) {
|
|
17
|
-
const color = parseColor(message[this.isWeDo2SmartHub ? 2 : 4]);
|
|
18
|
-
/**
|
|
19
|
-
* Emits when a color sensor is activated.
|
|
20
|
-
* @event ColorDistanceSensor#color
|
|
21
|
-
* @type {object}
|
|
22
|
-
* @param {Color} color
|
|
23
|
-
*/
|
|
24
|
-
this.notify("color", { color });
|
|
25
|
-
}
|
|
26
|
-
break;
|
|
27
|
-
case Mode.DISTANCE:
|
|
28
|
-
if (this.isWeDo2SmartHub) {
|
|
29
|
-
break;
|
|
30
|
-
}
|
|
31
|
-
if (message[4] <= 10) {
|
|
32
|
-
let distance = Math.floor(message[4] * 25.4) - 20;
|
|
33
|
-
if (distance < 0) {
|
|
34
|
-
distance = 0;
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Emits when a distance sensor is activated.
|
|
38
|
-
* @event ColorDistanceSensor#distance
|
|
39
|
-
* @type {object}
|
|
40
|
-
* @param {number} distance Distance, in millimeters.
|
|
41
|
-
*/
|
|
42
|
-
this.notify("distance", { distance });
|
|
43
|
-
}
|
|
44
|
-
break;
|
|
45
|
-
case Mode.DISTANCE_COUNT:
|
|
46
|
-
if (this.isWeDo2SmartHub) {
|
|
47
|
-
break;
|
|
48
|
-
}
|
|
49
|
-
if (message.length !== 8) {
|
|
50
|
-
// if mode of device has not changed to this._mode yet
|
|
51
|
-
break;
|
|
52
|
-
}
|
|
53
|
-
const count = message.readUInt32LE(4);
|
|
54
|
-
/**
|
|
55
|
-
* Emits when distance is reduced to less than 10 centimeters.
|
|
56
|
-
* @event ColorDistanceSensor#distanceCount
|
|
57
|
-
* @type {object}
|
|
58
|
-
* @param {number} number of distance events.
|
|
59
|
-
*/
|
|
60
|
-
this.notify("distanceCount", { count });
|
|
61
|
-
break;
|
|
62
|
-
case Mode.REFLECT:
|
|
63
|
-
if (this.isWeDo2SmartHub) {
|
|
64
|
-
break;
|
|
65
|
-
}
|
|
66
|
-
const reflect = message[4];
|
|
67
|
-
/**
|
|
68
|
-
* Event measuring reflection change, emits when the sensor is activated.
|
|
69
|
-
* @event ColorDistanceSensor#reflect
|
|
70
|
-
* @type {object}
|
|
71
|
-
* @param {number} percentage from 0 to 100.
|
|
72
|
-
*/
|
|
73
|
-
this.notify("reflect", { reflect });
|
|
74
|
-
break;
|
|
75
|
-
case Mode.AMBIENT:
|
|
76
|
-
if (this.isWeDo2SmartHub) {
|
|
77
|
-
break;
|
|
78
|
-
}
|
|
79
|
-
const ambient = message[4];
|
|
80
|
-
/**
|
|
81
|
-
* Event measuring abient light change, emits when the sensor is activated.
|
|
82
|
-
* @event ColorDistanceSensor#ambient
|
|
83
|
-
* @type {object}
|
|
84
|
-
* @param {number} percentage from 0 to 100.
|
|
85
|
-
*/
|
|
86
|
-
this.notify("ambient", { ambient });
|
|
87
|
-
break;
|
|
88
|
-
case Mode.RGB_I:
|
|
89
|
-
if (this.isWeDo2SmartHub) {
|
|
90
|
-
break;
|
|
91
|
-
}
|
|
92
|
-
if (message.length !== 10) {
|
|
93
|
-
// if mode of device has not changed to this._mode yet
|
|
94
|
-
break;
|
|
95
|
-
}
|
|
96
|
-
const red = message.readUInt16LE(4);
|
|
97
|
-
const green = message.readUInt16LE(6);
|
|
98
|
-
const blue = message.readUInt16LE(8);
|
|
99
|
-
/**
|
|
100
|
-
* Emits when a color sensor is activated.
|
|
101
|
-
* @event ColorDistanceSensor#rgbIntensity
|
|
102
|
-
* @type {object}
|
|
103
|
-
* @param {number} red
|
|
104
|
-
* @param {number} green
|
|
105
|
-
* @param {number} blue
|
|
106
|
-
*/
|
|
107
|
-
this.notify("rgbIntensity", { red, green, blue });
|
|
108
|
-
break;
|
|
109
|
-
case Mode.COLOR_AND_DISTANCE:
|
|
110
|
-
if (this.isWeDo2SmartHub) {
|
|
111
|
-
break;
|
|
112
|
-
}
|
|
113
|
-
let distance = message[5];
|
|
114
|
-
const partial = message[7];
|
|
115
|
-
if (partial > 0) {
|
|
116
|
-
distance += 1.0 / partial;
|
|
117
|
-
}
|
|
118
|
-
distance = Math.floor(distance * 25.4) - 20;
|
|
119
|
-
/**
|
|
120
|
-
* A combined color and distance event, emits when the sensor is activated.
|
|
121
|
-
* @event ColorDistanceSensor#colorAndDistance
|
|
122
|
-
* @type {object}
|
|
123
|
-
* @param {Color} color
|
|
124
|
-
* @param {number} distance Distance, in millimeters.
|
|
125
|
-
*/
|
|
126
|
-
if (message[4] <= 10) {
|
|
127
|
-
const color = message[4];
|
|
128
|
-
this.notify("colorAndDistance", { color, distance });
|
|
129
|
-
}
|
|
130
|
-
break;
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* Switches the IR receiver into extended channel mode. After setting this, use channels 5-8 instead of 1-4 for this receiver.
|
|
135
|
-
*
|
|
136
|
-
* NOTE: Calling this with channel 5-8 with switch off extended channel mode for this receiver.
|
|
137
|
-
* @method ColorDistanceSensor#setPFExtendedChannel
|
|
138
|
-
* @param {number} channel Channel number, between 1-8
|
|
139
|
-
* @returns {Promise} Resolved upon successful issuance of the command.
|
|
140
|
-
*/
|
|
141
|
-
setPFExtendedChannel(channel) {
|
|
142
|
-
let address = 0;
|
|
143
|
-
if (channel >= 4) {
|
|
144
|
-
channel -= 4;
|
|
145
|
-
address = 1;
|
|
146
|
-
}
|
|
147
|
-
const message = Buffer.alloc(2);
|
|
148
|
-
// Send "Extended toggle address command"
|
|
149
|
-
message[0] = ((channel - 1) << 4) + (address << 3);
|
|
150
|
-
message[1] = 6 << 4;
|
|
151
|
-
return this.sendPFIRMessage(message);
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* Set the power of a Power Functions motor via IR
|
|
155
|
-
* @method ColorDistanceSensor#setPFPower
|
|
156
|
-
* @param {number} channel Channel number, between 1-4
|
|
157
|
-
* @param {string} output Outport port, "RED" (A) or "BLUE" (B)
|
|
158
|
-
* @param {number} power -7 (full reverse) to 7 (full forward). 0 is stop. 8 is brake.
|
|
159
|
-
* @returns {Promise} Resolved upon successful issuance of the command.
|
|
160
|
-
*/
|
|
161
|
-
setPFPower(channel, output, power) {
|
|
162
|
-
let address = 0;
|
|
163
|
-
if (channel > 4) {
|
|
164
|
-
channel -= 4;
|
|
165
|
-
address = 1;
|
|
166
|
-
}
|
|
167
|
-
const message = Buffer.alloc(2);
|
|
168
|
-
// Send "Single output mode"
|
|
169
|
-
message[0] = ((channel - 1) << 4) + (address << 3) + (output === "RED" ? 4 : 5);
|
|
170
|
-
message[1] = this._pfPowerToPWM(power) << 4;
|
|
171
|
-
return this.sendPFIRMessage(message);
|
|
172
|
-
}
|
|
173
|
-
/**
|
|
174
|
-
* Start Power Functions motors running via IR
|
|
175
|
-
*
|
|
176
|
-
* NOTE: This command is designed for bang-bang style operation. To keep the motors running, the sensor needs to be within range of the IR receiver constantly.
|
|
177
|
-
* @method ColorDistanceSensor#startPFMotors
|
|
178
|
-
* @param {Buffer} channel Channel number, between 1-4
|
|
179
|
-
* @param {Buffer} powerA -7 (full reverse) to 7 (full forward). 0 is stop. 8 is brake.
|
|
180
|
-
* @param {Buffer} powerB -7 (full reverse) to 7 (full forward). 0 is stop. 8 is brake.
|
|
181
|
-
* @returns {Promise} Resolved upon successful issuance of the command.
|
|
182
|
-
*/
|
|
183
|
-
startPFMotors(channel, powerBlue, powerRed) {
|
|
184
|
-
let address = 0;
|
|
185
|
-
if (channel > 4) {
|
|
186
|
-
channel -= 4;
|
|
187
|
-
address = 1;
|
|
188
|
-
}
|
|
189
|
-
const message = Buffer.alloc(2);
|
|
190
|
-
// Send "Combo PWM mode"
|
|
191
|
-
message[0] = (((channel - 1) + 4 + (address << 3)) << 4) + this._pfPowerToPWM(powerBlue);
|
|
192
|
-
message[1] = this._pfPowerToPWM(powerRed) << 4;
|
|
193
|
-
return this.sendPFIRMessage(message);
|
|
194
|
-
}
|
|
195
|
-
/**
|
|
196
|
-
* Send a raw Power Functions IR command
|
|
197
|
-
* @method ColorDistanceSensor#sendPFIRMessage
|
|
198
|
-
* @param {Buffer} message 2 byte payload making up a Power Functions protocol command. NOTE: Only specify nibbles 1-3, nibble 4 should be zeroed.
|
|
199
|
-
* @returns {Promise} Resolved upon successful issuance of the command.
|
|
200
|
-
*/
|
|
201
|
-
sendPFIRMessage(message) {
|
|
202
|
-
if (this.isWeDo2SmartHub) {
|
|
203
|
-
throw new Error("Power Functions IR is not available on the WeDo 2.0 Smart Hub");
|
|
204
|
-
}
|
|
205
|
-
else {
|
|
206
|
-
const payload = Buffer.alloc(2);
|
|
207
|
-
payload[0] = (message[0] << 4) + (message[1] >> 4);
|
|
208
|
-
payload[1] = message[0] >> 4;
|
|
209
|
-
this.subscribe(Mode.PF_IR);
|
|
210
|
-
return this.writeDirect(0x07, payload);
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
/**
|
|
214
|
-
* Set the color of the LED on the sensor via a color value.
|
|
215
|
-
* @method ColorDistanceSensor#setColor
|
|
216
|
-
* @param {Color} color
|
|
217
|
-
* @returns {Promise} Resolved upon successful issuance of the command.
|
|
218
|
-
*/
|
|
219
|
-
setColor(color) {
|
|
220
|
-
return new Promise((resolve) => {
|
|
221
|
-
if (color === false) {
|
|
222
|
-
color = 0;
|
|
223
|
-
}
|
|
224
|
-
if (this.isWeDo2SmartHub) {
|
|
225
|
-
throw new Error("Setting LED color is not available on the WeDo 2.0 Smart Hub");
|
|
226
|
-
}
|
|
227
|
-
else {
|
|
228
|
-
this.subscribe(Mode.LED);
|
|
229
|
-
this.writeDirect(0x05, Buffer.from([color]));
|
|
230
|
-
}
|
|
231
|
-
return resolve();
|
|
232
|
-
});
|
|
233
|
-
}
|
|
234
|
-
/**
|
|
235
|
-
* Set the distance count value.
|
|
236
|
-
* @method ColorDistanceSensor#setDistanceCount
|
|
237
|
-
* @param {count} distance count between 0 and 2^32
|
|
238
|
-
* @returns {Promise} Resolved upon successful issuance of the command.
|
|
239
|
-
*/
|
|
240
|
-
setDistanceCount(count) {
|
|
241
|
-
return new Promise((resolve) => {
|
|
242
|
-
if (this.isWeDo2SmartHub) {
|
|
243
|
-
throw new Error("Setting distance count is not available on the WeDo 2.0 Smart Hub");
|
|
244
|
-
}
|
|
245
|
-
else {
|
|
246
|
-
const payload = Buffer.alloc(4);
|
|
247
|
-
payload.writeUInt32LE(count % 2 ** 32);
|
|
248
|
-
// no need to subscribe, can be set in different mode
|
|
249
|
-
this.writeDirect(0x02, payload);
|
|
250
|
-
}
|
|
251
|
-
return resolve();
|
|
252
|
-
});
|
|
253
|
-
}
|
|
254
|
-
_pfPowerToPWM(power) {
|
|
255
|
-
return power & 15;
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
export var Mode;
|
|
259
|
-
(function (Mode) {
|
|
260
|
-
Mode[Mode["COLOR"] = 0] = "COLOR";
|
|
261
|
-
Mode[Mode["DISTANCE"] = 1] = "DISTANCE";
|
|
262
|
-
Mode[Mode["DISTANCE_COUNT"] = 2] = "DISTANCE_COUNT";
|
|
263
|
-
Mode[Mode["REFLECT"] = 3] = "REFLECT";
|
|
264
|
-
Mode[Mode["AMBIENT"] = 4] = "AMBIENT";
|
|
265
|
-
Mode[Mode["LED"] = 5] = "LED";
|
|
266
|
-
Mode[Mode["RGB_I"] = 6] = "RGB_I";
|
|
267
|
-
Mode[Mode["PF_IR"] = 7] = "PF_IR";
|
|
268
|
-
Mode[Mode["COLOR_AND_DISTANCE"] = 8] = "COLOR_AND_DISTANCE";
|
|
269
|
-
})(Mode || (Mode = {}));
|
|
270
|
-
export const ModeMap = {
|
|
271
|
-
"color": Mode.COLOR,
|
|
272
|
-
"distance": Mode.DISTANCE,
|
|
273
|
-
"distanceCount": Mode.DISTANCE_COUNT,
|
|
274
|
-
"reflect": Mode.REFLECT,
|
|
275
|
-
"ambient": Mode.AMBIENT,
|
|
276
|
-
"rgbIntensity": Mode.RGB_I,
|
|
277
|
-
"colorAndDistance": Mode.COLOR_AND_DISTANCE
|
|
278
|
-
};
|
|
279
|
-
export var Output;
|
|
280
|
-
(function (Output) {
|
|
281
|
-
Output["RED"] = "RED";
|
|
282
|
-
Output["BLUE"] = "BLUE";
|
|
283
|
-
})(Output || (Output = {}));
|
|
284
|
-
//# sourceMappingURL=colordistancesensor.js.map
|