#ifndef EGGDUINO_H #define EGGDUINO_H #include #ifdef ESP32 #include #include #include #include #else #include #endif #include #include "SerialCommand.h" #include "button.h" // implemented Eggbot-Protocol-Version v13 #define initSting "EBBv13_and_above Protocol emulated by Eggduino-Firmware V1.6a" #ifdef ESP32 // Rotational Stepper #define dir1 16 #define enableRotMotor 12 #define step1 26 #define rotMicrostep 32 // Pen Stepper #define step2 25 #define dir2 27 #define enablePenMotor 12 #define penMicrostep 32 #define servoPin 17 #else // Rotational Stepper #define step1 2 #define dir1 5 #define enableRotMotor 8 #define rotMicrostep 16 // Pen Stepper #define step2 3 #define dir2 6 #define enablePenMotor 8 #define penMicrostep 16 #define servoPin 4 #endif struct ConfigParameter { const char *key; int *value; String description; int defaultValue; }; extern FastAccelStepperEngine g_stepEngine; extern FastAccelStepper *g_pStepperRotate; extern FastAccelStepper *g_pStepperPen; extern Servo penServo; extern SerialCommand SCmd; extern int g_iPenUpPos; extern int g_iPenDownPos; extern int g_iServoRateUp; extern int g_iServoRateDown; extern long g_iRotStepError; extern long g_iPenStepError; extern int g_iPenState; extern uint32_t g_uiNodeCount; extern unsigned int g_uiLayer; extern boolean g_bPrgButtonState; extern float fROT_STEP_CORRECTION; extern float fPEN_STEP_CORRECTION; extern boolean g_bMotorsEnabled; extern ConfigParameter configParameters[]; extern const size_t configParameterCount; void makeComInterface(); void initHardware(); void moveOneStep(); void moveToDestination(); void sendAck(); void sendError(); void motorsOff(); void motorsOn(); void toggleMotors(); void doTogglePen(); void setprgButtonState(); bool parseSMArgs(uint16_t *duration, int *penStepsEBB, int *rotStepsEBB); void prepareMove(uint16_t duration, int penStepsEBB, int rotStepsEBB); void storePenUpPosInEE(); void storePenDownPosInEE(); bool initConfigStore(); bool loadConfigFromFile(); bool saveConfigToFile(); String buildConfigJson(); bool applyConfigJson(const String &payload, String &errorMessage); void startWebInterface(); void handleWebInterface(); void Log(const String &message); void Log(const char *message); String buildLogsJson(uint32_t sinceSeq); #endif