#ifndef AW8646_DRIVER_H #define AW8646_DRIVER_H #include "stepper_driver.h" #include "io_expansion_board.h" #include "esp_log.h" class Aw8646Driver : public StepperDriver { public: explicit Aw8646Driver(IOExpansionBoard &ioExp); virtual ~Aw8646Driver() = default; esp_err_t Init() override; esp_err_t Enable(bool enable) override; esp_err_t SetDirection(bool dir) override; esp_err_t Sleep(bool sleep) override; esp_err_t SetMicrosteps(int microsteps) override; private: esp_err_t SetTriLevelPin(uint8_t port_reg, uint8_t config_reg, uint8_t pin, int state); IOExpansionBoard &io_expansion_; const char* TAG = "Aw8646Driver"; }; #endif // AW8646_DRIVER_H