#pragma once #include #include struct FirmwareVersion { uint8_t major; uint8_t minor; }; struct ServoModel { uint8_t major; uint8_t minor; }; struct Motor { String name; uint8_t motorID; ServoModel servoModel; uint16_t position; bool isEnabled = true; }; struct RobotConfig { String deviceName; FirmwareVersion firmwareVersion; std::vector motors; uint16_t getMotorPosition(uint8_t motorID) const; uint8_t getMotorModel(uint8_t motorID); bool setMotorPosition(uint8_t motorID, uint16_t newPosition); bool setMotorEnabled(uint8_t motorID, bool enable); bool isMotorEnabled(uint8_t motorID); void enableAllMotors(); String serializeJSON() const; std::vector serializeToBytes() const; bool saveToFFat(const char* path = "/robot_config.bin") const; bool loadFromFFat(const char* path = "/robot_config.bin"); bool loadOrCreateDefault(const char* path = "/robot_config.bin"); };