10 UMLClass 460 60 220 510 <<hardware>> MotorControl -- - name: String - debug: DebugMqtt* - target_power: int8_t = 0 - power: int8_t = 0 - direction: uint8_t = 0 - last_millis: uint64_t = 0; - pwm_pin: uint8_t - pwm_channel: uint8_t - direction_pin_1: uint8_t - direction_pin_2: uint8_t -- + MotorControl() + init(pwm_pin: uint8_t,    pwm_channel: uint8_t,    direction_1: uint8_t,    direction_2: uint8_t,    name: String) + runMotorControl() + setTargetPower(power: int8_t) + stop() + emergencyStop() + toString() + getPower(): int8_t + getTargetPower(): int8_t + isTargetPowerReached(): bool + isAccelerationPositive(): bool + isAccelerationNegative(): bool - setRealPower(power: int8_t) - increasePower(power: int8_t) UMLClass 80 480 220 330 <<hardware>> Speedometer -- - encoder: ESP32Encoder - debug: DebugMqtt* - name: String - speed: double = 0 - last_millis: uint64_t = 0; - bufPos: uint8_t - buf: int16_t[BUF_SIZE] -- + Speedometer() + init(pinA: uint8_t,    pinB: uint8_t,    name: String) + runSpeedometer() + setTargetPower(power: int8_t) + getSpeed(): double + getDirection(): uint8_t - addValToBuf(val: int16_t) - getAverage(): int16_t UMLClass 70 60 270 370 MoveControl -- - debug: DebugMqtt* - left_motor: MotorControl* - right_motor: MotorControl* - left_speedometer: Speedometer* - right_speedometer: Speedometer* - driving_status: DrivingStatus = stop - x_speed: double = 0 - rotation_speed: double = 0 - wheelspeed_left_target: double = 0 - wheelspeed_right_target: double = 0 -- + MoveControl() + init(left_motor: MotorControl*,    right_motor: MotorControl*,    left_speedometer: Speedometer*,    right_speedometer: Speedometer*) + runMoveControl() + setDrivingStatus(status: DrivingStatus) + setSpeed(speed: double) + setRotationspeed(speed: double) - calcWheelSpeed() - regulateMotors() UMLClass 700 60 220 330 <<driveModi>> ManualControl -- - encoder: ESP32Encoder - debug: DebugMqtt* - name: String - speed: double = 0 - last_millis: uint64_t = 0; - bufPos: uint8_t - buf: int16_t[BUF_SIZE] -- + Speedometer() + init(pinA: uint8_t,    pinB: uint8_t,    name: String) + runSpeedometer() + setTargetPower(power: int8_t) + getSpeed(): double + getDirection(): uint8_t - addValToBuf(val: int16_t) - getAverage(): int16_t