polarity in synched motor (#945)
* account for polarity * more comments * handle dual motor in runtime * invert steer * don't use firmware polarity
This commit is contained in:
@ -9,7 +9,6 @@ namespace pxsim {
|
||||
private angle: number = 0;
|
||||
private tacho: number = 0;
|
||||
private speed: number = 0;
|
||||
private polarity: number = 1; // -1, 1 or -1
|
||||
|
||||
private started: boolean;
|
||||
private speedCmd: DAL;
|
||||
@ -31,7 +30,7 @@ namespace pxsim {
|
||||
}
|
||||
|
||||
getSpeed() {
|
||||
return Math.round(this.speed * (!this._synchedMotor && this.polarity == 0 ? -1 : 1));
|
||||
return Math.round(this.speed);
|
||||
}
|
||||
|
||||
getAngle() {
|
||||
@ -82,16 +81,6 @@ namespace pxsim {
|
||||
return this.id == NodeType.LargeMotor;
|
||||
}
|
||||
|
||||
setPolarity(polarity: number) {
|
||||
// Either 1 or 255 (reverse)
|
||||
/*
|
||||
-1 : Motor will run backward
|
||||
0 : Motor will run opposite direction
|
||||
1 : Motor will run forward
|
||||
*/
|
||||
this.polarity = polarity;
|
||||
}
|
||||
|
||||
reset() {
|
||||
// not sure what reset does...
|
||||
}
|
||||
|
@ -119,11 +119,7 @@ namespace pxsim {
|
||||
return 2;
|
||||
}
|
||||
case DAL.opOutputPolarity: {
|
||||
// reverse
|
||||
const port = buf.data[1];
|
||||
const polarity = pxsim.BufferMethods.getNumber(buf, BufferMethods.NumberFormat.Int8LE, 2);
|
||||
const motors = ev3board().getMotor(port);
|
||||
motors.forEach(motor => motor.setPolarity(polarity));
|
||||
console.error("opOutputPolarity not supported");
|
||||
return 2;
|
||||
}
|
||||
case DAL.opOutputSetType: {
|
||||
|
Reference in New Issue
Block a user