Add custom impl of output; drop ev3-api

This commit is contained in:
Michal Moskal 2017-07-11 16:58:51 +02:00
parent 02e45762b4
commit 340d5e5cbf
5 changed files with 35 additions and 14 deletions

2
libs/core/dal.d.ts vendored
View File

@ -2,6 +2,7 @@
declare const enum DAL {
// built/dockermake/pxtapp/ev3const.h
NUM_INPUTS = 4,
NUM_OUTPUTS = 4,
LCD_WIDTH = 178,
LCD_HEIGHT = 128,
NUM_BUTTONS = 6,
@ -45,6 +46,7 @@ declare const enum DAL {
CONN_OUTPUT_TACHO = 125,
CONN_NONE = 126,
CONN_ERROR = 127,
opProgramStart = 0x03,
opOutputGetType = 0xA0,
opOutputSetType = 0xA1,
opOutputReset = 0xA2,

View File

@ -2,6 +2,7 @@
#define __PXT_EV3CONST_H
#define NUM_INPUTS 4
#define NUM_OUTPUTS 4
#define LCD_WIDTH 178
#define LCD_HEIGHT 128
#define NUM_BUTTONS 6
@ -52,6 +53,7 @@
#define CONN_NONE 126
#define CONN_ERROR 127
#define opProgramStart 0x03
#define opOutputGetType 0xA0
#define opOutputSetType 0xA1
#define opOutputReset 0xA2

View File

@ -1,5 +1,5 @@
#include "pxt.h"
#include "ev3.h"
#include "ev3const.h"
namespace output {
@ -12,18 +12,11 @@ Buffer createBuffer(int size) {
return mkBuffer(NULL, size);
}
extern "C" int WriteToPWMDevice(char *bytes, int num_bytes);
//%
void writePWM(Buffer buf) {
WriteToPWMDevice((char *)buf->data, buf->length);
}
}
namespace pxt {
void target_init() {
OutputInit();
}
}

View File

@ -13,8 +13,34 @@ enum OutputType {
}
namespace output {
//% shim=output::writePWM
function writePWM(buf: Buffer): void { }
let pwmMM: MMap
let motorMM: MMap
const enum MotorDataOff {
TachoCounts = 0, // int32
Speed = 4, // int8
Padding = 5, // int8[3]
TachoSensor = 8, // int32
Size = 12
}
function init() {
if (pwmMM) return
pwmMM = control.mmap("/dev/lms_pwm", 0, 0)
if (!pwmMM) control.fail("no PWM file")
motorMM = control.mmap("/dev/lms_motor", MotorDataOff.Size * DAL.NUM_OUTPUTS, 0)
stop(Output.ALL)
let buf = output.createBuffer(1)
buf[0] = DAL.opProgramStart
writePWM(buf)
}
function writePWM(buf: Buffer): void {
init()
pwmMM.write(buf)
}
function mkCmd(out: Output, cmd: number, addSize: number) {
let b = createBuffer(2 + addSize)

View File

@ -30,11 +30,9 @@
"testFiles": [
"test.ts"
],
"npmDependencies": {
"ev3api-bin": "1.1.0"
},
"npmDependencies": {},
"public": true,
"dependencies": {
"base": "file:../base"
}
}
}