merging microbit changes

This commit is contained in:
Peli de Halleux
2016-11-01 08:35:45 -07:00
66 changed files with 26504 additions and 697 deletions

View File

@ -11,7 +11,7 @@ namespace pxsim.input {
if (!pin) return;
pin.isTouched();
pxtcore.registerWithDal(pin.id, DAL.MICROBIT_BUTTON_EVT_UP, handler);
}
}
export function pinIsPressed(pinId: number): boolean {
let pin = getPin(pinId);
@ -73,7 +73,11 @@ namespace pxsim.pins {
export function servoWritePin(pinId: number, value: number) {
analogSetPeriod(pinId, 20000);
// TODO
// TODO: per pin state
if (board().microServoState.angle != value) {
board().microServoState.angle = value;
runtime.queueDisplayUpdate();
}
}
export function servoSetPulse(pinId: number, micros: number) {

View File

@ -9,6 +9,7 @@ namespace pxsim {
brigthness = 255;
displayMode = DisplayMode.bw;
font: Image = createFont();
disabled: boolean;
animationQ: AnimationQueue;
@ -284,4 +285,8 @@ namespace pxsim.led {
board().ledMatrixState.image.copyTo(0, 5, img, 0);
return img;
}
export function enable(on: boolean) {
board().ledMatrixState.disabled = !on;
runtime.queueDisplayUpdate();
}
}

View File

@ -138,21 +138,13 @@ namespace pxsim.radio {
}
export function writeValueToSerial(): void {
let b = board();
let p = b.radioState.bus.datagram.recv();
const b = board();
writePacketToSerial(b, b.radioState.bus.datagram.recv())
}
switch(p.payload.type) {
case PacketPayloadType.NUMBER:
b.writeSerial(`{"t":${p.time},"s":${p.serial},"v":${p.payload.numberData}}`)
break;
case PacketPayloadType.VALUE:
b.writeSerial(`{"t":${p.time},"s":${p.serial},"n":"${p.payload.stringData}","v":${p.payload.numberData}}`)
break;
case PacketPayloadType.STRING:
b.writeSerial(`{"t":${p.time},"s":${p.serial},"n":"${p.payload.stringData}"}`)
break;
default:
}
export function writeReceivedPacketToSerial(): void {
const b = board();
writePacketToSerial(b, b.radioState.bus.datagram.lastReceived);
}
export function sendValue(name: string, value: number) {
@ -200,4 +192,19 @@ namespace pxsim.radio {
export function receivedTime(): number {
return board().radioState.bus.datagram.lastReceived.time;
}
function writePacketToSerial(b: DalBoard, p: PacketBuffer) {
switch(p.payload.type) {
case PacketPayloadType.NUMBER:
b.writeSerial(`{"t":${p.time},"s":${p.serial},"v":${p.payload.numberData}}\r\n`)
break;
case PacketPayloadType.VALUE:
b.writeSerial(`{"t":${p.time},"s":${p.serial},"n":"${p.payload.stringData}","v":${p.payload.numberData}}\r\n`)
break;
case PacketPayloadType.STRING:
b.writeSerial(`{"t":${p.time},"s":${p.serial},"n":"${p.payload.stringData}"}\r\n`)
break;
default:
}
}
}