diff --git a/App/src/GcodeSender.tsx b/App/src/GcodeSender.tsx index dcbdf23..f6a1e81 100644 --- a/App/src/GcodeSender.tsx +++ b/App/src/GcodeSender.tsx @@ -62,7 +62,7 @@ export class GcodeSenderComponent extends React.PureComponent< const gcodeLinesQueue = [...this.state.gcodeLinesQueue]; const gcodeLinesSent = [...this.state.gcodeLinesSent]; const { executing } = this.state; - if (executing && status.commandQueue < 1) { + if (executing && status.commandQueue < 10) { if (gcodeLinesQueue && gcodeLinesQueue.length > 0) { const command = gcodeLinesQueue.shift(); console.log(parseCommand(command)); diff --git a/Firmware/EggbotWireless/include/Executor.h b/Firmware/EggbotWireless/include/Executor.h index 5d80bb5..06a14d6 100644 --- a/Firmware/EggbotWireless/include/Executor.h +++ b/Firmware/EggbotWireless/include/Executor.h @@ -10,8 +10,6 @@ class Executor { private: - unsigned long lastStsTime; - Status lastSts; public: Executor(/* args */); void execCommand(Command command); diff --git a/Firmware/EggbotWireless/src/Executor.cpp b/Firmware/EggbotWireless/src/Executor.cpp index 78cc72d..c4efa14 100644 --- a/Firmware/EggbotWireless/src/Executor.cpp +++ b/Firmware/EggbotWireless/src/Executor.cpp @@ -24,12 +24,6 @@ void Executor::execCommand(Command command) { } Status Executor::status() { - unsigned long reqTime = millis(); - - if (reqTime - lastStsTime < lastStsTTL) { - return lastSts; - } - Status status; unsigned int curByte; byte rxBuffer[i2cStsBytes]; @@ -45,8 +39,5 @@ Status Executor::status() { } } - lastStsTime = millis(); - lastSts = status; - return status; } \ No newline at end of file diff --git a/Firmware/EggbotWireless/src/QueueManager.cpp b/Firmware/EggbotWireless/src/QueueManager.cpp index 566f203..dfe7306 100644 --- a/Firmware/EggbotWireless/src/QueueManager.cpp +++ b/Firmware/EggbotWireless/src/QueueManager.cpp @@ -38,6 +38,7 @@ void QueueManager::loopRoutine() { void QueueManager::putCommand(std::string cmd) { if (!std::isalnum(cmd[0])) { + Serial.println("OK"); return; } diff --git a/Firmware/MotorControl/src/Pen.cpp b/Firmware/MotorControl/src/Pen.cpp index d62a086..bc0d5df 100644 --- a/Firmware/MotorControl/src/Pen.cpp +++ b/Firmware/MotorControl/src/Pen.cpp @@ -9,7 +9,6 @@ Pen::Pen(int pin, int posEngaged, int posDisengaged) void Pen::engage() { if (!engaged) { servo.attach(pin); - delay(5); servo.write(posEngaged); delay(200); servo.detach(); @@ -20,7 +19,6 @@ void Pen::engage() { void Pen::disengage() { if (engaged) { servo.attach(pin); - delay(5); servo.write(posDisengaged); delay(200); servo.detach(); diff --git a/Firmware/MotorControl/src/main.cpp b/Firmware/MotorControl/src/main.cpp index 98677b9..caf4014 100644 --- a/Firmware/MotorControl/src/main.cpp +++ b/Firmware/MotorControl/src/main.cpp @@ -56,11 +56,26 @@ void receiveEvent(int howMany) { byte txBuffer[i2cStsBytes]; Status sts; -void requestEvent() { Wire.write(txBuffer, i2cStsBytes); } +void requestEvent() { + if (executing || newCommand) { + sts.type = StatusType::WAIT; + } else { + sts.type = StatusType::NEXT; + } + + sts.mmS = servoStepper.getPosMm(); + sts.mmE = eggStepper.getPosMm(); + + sts.feedrate = curRPM; + + sts.pEng = (float)pen.getEngaged(); + + sts.toBytes(txBuffer); + Wire.write(txBuffer, i2cStsBytes); +} void execCommand(Command cmd) { executing = true; - newCommand = false; if (cmd.type == CommandType::G01 || cmd.type == CommandType::G00) { if (cmd.type == CommandType::G01) { @@ -80,8 +95,7 @@ void execCommand(Command cmd) { if (!isnan(cmd.arg3)) { if (cmd.arg3 < 0) { pen.engage(); - } - if (cmd.arg3 >= 0) { + } else { pen.disengage(); } } @@ -93,6 +107,7 @@ void execCommand(Command cmd) { adjustRPM(); } + newCommand = false; return; } @@ -138,22 +153,6 @@ void steppersRoutine() { if (tick % servoStepperDelay == 0) { servoStepper.doStep(); } - if (tick % stsUpdDelay == 0) { - if (executing || newCommand) { - sts.type = StatusType::WAIT; - } else { - sts.type = StatusType::NEXT; - } - - sts.mmS = servoStepper.getPosMm(); - sts.mmE = eggStepper.getPosMm(); - - sts.feedrate = curRPM; - - sts.pEng = (float)pen.getEngaged(); - - ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { sts.toBytes(txBuffer); } - } armed = true; } if (eggStepper.getRemainingSteps() == 0 &&