Endprogram (#884)
* moving end program logic to c++ * typo * always stop on reset
This commit is contained in:
parent
75cf8da396
commit
aa40e7b169
@ -162,7 +162,6 @@ namespace brick {
|
||||
// this needs to be done in query(), which is run without the main JS execution mutex
|
||||
// otherwise, while(true){} will lock the device
|
||||
if (ret & DAL.BUTTON_ID_ESCAPE) {
|
||||
motors.stopAll(); // ensuring that all motors are off
|
||||
control.reset()
|
||||
}
|
||||
return ret
|
||||
|
@ -14,6 +14,7 @@
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <malloc.h>
|
||||
#include "ev3const.h"
|
||||
|
||||
#define THREAD_DBG(...)
|
||||
|
||||
@ -489,14 +490,22 @@ void runLMS() {
|
||||
}
|
||||
|
||||
void stopMotors() {
|
||||
uint8_t cmd[2] = { 0xA3, 0x0F };
|
||||
uint8_t cmd[3] = { opOutputStop, 0x0F, 0 };
|
||||
int fd = open("/dev/lms_pwm", O_RDWR);
|
||||
write(fd, cmd, 2);
|
||||
write(fd, cmd, 3);
|
||||
close(fd);
|
||||
}
|
||||
|
||||
void stopProgram() {
|
||||
uint8_t cmd[1] = { opOutputProgramStop };
|
||||
int fd = open("/dev/lms_pwm", O_RDWR);
|
||||
write(fd, cmd, 1);
|
||||
close(fd);
|
||||
}
|
||||
|
||||
extern "C" void target_reset() {
|
||||
stopMotors();
|
||||
stopProgram();
|
||||
if (lmsPid)
|
||||
runLMS();
|
||||
else
|
||||
|
Loading…
Reference in New Issue
Block a user