// // Created by iflyt on 2025/3/3. // #include "motor_manager.h" // 初始化单例实例指针 MotorManager* MotorManager::instance = nullptr; MotorManager::MotorManager() {} // 获取单例实例 MotorManager* MotorManager::ins() { if (instance == nullptr) { instance = new MotorManager(); } return instance; } // 获取某个电机的位置 int32_t MotorManager::getMotorPosition(int motorIndex) { if (motorIndex < 0 || motorIndex >= 3) { return 0; } return motors[motorIndex].getPosition(); } // 设置某个电机的目标位置 void MotorManager::setMotorTargetPosition(int motorIndex, int32_t targetPosition) { if (motorIndex < 0 || motorIndex >= 3) { return; } motors[motorIndex].setTargetPosition(targetPosition); } // 设置某个电机的速度 void MotorManager::setMotorSpeed(int motorIndex, int32_t speed) { if (motorIndex < 0 || motorIndex >= 3) { return; } motors[motorIndex].setSpeed(speed); } // 获取某个电机的速度 int32_t MotorManager::getMotorSpeed(int motorIndex) { if (motorIndex < 0 || motorIndex >= 3) { return 0; } return motors[motorIndex].getRTSpeed(); } // 获取某个电机的运动状态 uint8_t MotorManager::getMotorMovingStatus(int motorIndex) { if (motorIndex < 0 || motorIndex >= 3) { return 0; } return motors[motorIndex].isMoveFinished(); } // 获取某个电机的编码器位置 int32_t MotorManager::getMotorEncoderPosition(int motorIndex) { if (motorIndex < 0 || motorIndex >= 3) { return 0; } return motors[motorIndex].getEncoderPosition(); } // 设置某个电机的编码器位置 void MotorManager::setMotorEncoderPosition(int motorIndex, int32_t encoderPos) { if (motorIndex < 0 || motorIndex >= 3) { return; } motors[motorIndex].setEncoderPosition(encoderPos); }