Refactor mcu code. Closes #11

This commit is contained in:
osiu97
2026-07-08 20:25:20 +02:00
parent 930940b1ba
commit 33436fafc4
9 changed files with 474 additions and 357 deletions
+54
View File
@@ -0,0 +1,54 @@
#pragma once
#include <Arduino.h>
#include <AccelStepper.h>
#include <functional>
class MotorController {
public:
MotorController();
void init();
void update();
void moveRelative1(long steps);
void moveRelative2(long steps);
void moveAbsolute(long target1, long target2);
void setMaxSpeed(float spd);
void setAcceleration(float acc);
void home1();
void home2();
void homeAll();
void zeroAll();
void disableMotors();
void setOnTimeoutCallback(std::function<void()> cb);
bool isMoving();
String getPositionString();
private:
AccelStepper stepper1;
AccelStepper stepper2;
float currentMaxSpeed;
float currentAccel;
unsigned long lastMotorActive;
bool motorsDisabled;
std::function<void()> onTimeout;
enum HomingState {
HOME_IDLE,
HOME_ALL_PHASE1,
HOME_ALL_PHASE2,
HOME_1_PHASE1,
HOME_1_PHASE2,
HOME_2_PHASE1,
HOME_2_PHASE2
};
HomingState homingState;
void processHoming();
void checkIdleTimeout();
};