Fix pattern enum decompilation and setSpeed when no speed is set.

This commit is contained in:
Sam El-Husseini
2017-08-09 10:02:58 -07:00
parent c0e2252157
commit a3f56f4c9a
5 changed files with 45 additions and 4 deletions

View File

@ -15,6 +15,7 @@ enum OutputType {
namespace output {
let pwmMM: MMap
let motorMM: MMap
let currentSpeed: number[] = []
const enum MotorDataOff {
TachoCounts = 0, // int32
@ -32,6 +33,12 @@ namespace output {
stop(Output.ALL)
currentSpeed[Output.A] = -1;
currentSpeed[Output.B] = -1;
currentSpeed[Output.C] = -1;
currentSpeed[Output.D] = -1;
currentSpeed[Output.ALL] = -1;
let buf = output.createBuffer(1)
buf[0] = DAL.opProgramStart
writePWM(buf)
@ -65,10 +72,11 @@ namespace output {
export function turn(out: Output, ms: number, useBrake = false) {
// TODO: use current power / speed configuration
output.step(out, {
power: 100,
speed: 100,
step1: 0,
step2: ms,
step3: 0,
useSteps: false,
useBrake: useBrake
})
}
@ -92,6 +100,7 @@ namespace output {
//% blockId=output_start block="turn motor %out|on"
//% weight=95 group="Motors"
export function start(out: Output) {
if (currentSpeed[out] == -1) setSpeed(out, 50)
let b = mkCmd(out, DAL.opOutputStart, 0)
writePWM(b)
}
@ -154,6 +163,7 @@ namespace output {
//% weight=81 group="Motors"
//% speed.min=-100 speed.max=100
export function setSpeed(out: Output, speed: number) {
currentSpeed[out] = speed;
let b = mkCmd(out, DAL.opOutputSpeed, 1)
b.setNumber(NumberFormat.Int8LE, 2, Math.clamp(-100, 100, speed))
writePWM(b)