meira nýtt
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
#ifndef MOTOR_CONTROLLER_H
|
||||
#define MOTOR_CONTROLLER_H
|
||||
|
||||
#include "rotary_encoder_driver.h"
|
||||
#include "motor_driver.h"
|
||||
#include "p_controller.h"
|
||||
|
||||
class State;
|
||||
|
||||
|
||||
class MotorController
|
||||
{
|
||||
private:
|
||||
State* current_state;
|
||||
|
||||
State* initialization_state;
|
||||
State* operational_state;
|
||||
|
||||
RotaryEncoderDriver& encoder;
|
||||
MotorDriver& motor;
|
||||
P_controller& controller;
|
||||
|
||||
double reference_rpm;
|
||||
|
||||
|
||||
public:
|
||||
MotorController(
|
||||
RotaryEncoderDriver& encoder,
|
||||
MotorDriver& motor,
|
||||
P_controller& controller
|
||||
);
|
||||
|
||||
|
||||
void set_states(
|
||||
State* initialization,
|
||||
State* operational
|
||||
);
|
||||
|
||||
|
||||
void begin();
|
||||
|
||||
void update();
|
||||
|
||||
void command(char c);
|
||||
|
||||
void transition_to(State* new_state);
|
||||
|
||||
|
||||
void to_initialization();
|
||||
|
||||
void to_operational();
|
||||
|
||||
|
||||
void run_speed_controller();
|
||||
|
||||
void stop_motor();
|
||||
|
||||
void reset_speed_measurement();
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user