Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3c5cedc413 | ||
|
|
fa30d35401 |
@@ -11,11 +11,13 @@ skinparam state {
|
||||
|
||||
state Initialization
|
||||
Initialization : Entry / Stop motor
|
||||
Initialization : Entry / Initialize internal parameters
|
||||
Initialization : Entry / Reset speed measurement
|
||||
Initialization : Do / Initialize internal parameters
|
||||
Initialization : Do / Reset speed measurement
|
||||
Initialization : Do / Wait 2 seconds
|
||||
Initialization : Exit / Send Boot-up message
|
||||
|
||||
|
||||
|
||||
state Operational
|
||||
Operational : Entry / LED on
|
||||
Operational : Do / Run speed controller
|
||||
@@ -26,7 +28,9 @@ state Stopped
|
||||
Stopped : Do / Blink LED at 2 Hz
|
||||
Stopped : Exit / LED off
|
||||
|
||||
Initialization --> Operational : initialization complete
|
||||
|
||||
|
||||
Initialization --> Operational : initialization\n complete
|
||||
Operational --> Initialization : reset
|
||||
Operational --> Stopped : fault detected
|
||||
|
||||
|
||||
@@ -18,9 +18,9 @@ private:
|
||||
|
||||
State* current_state;
|
||||
|
||||
State* initialization_state;
|
||||
State* operational_state;
|
||||
State* stopped_state;
|
||||
State& initialization_state;
|
||||
State& operational_state;
|
||||
State& stopped_state;
|
||||
|
||||
RotaryEncoderDriver& encoder;
|
||||
MotorDriver& motor;
|
||||
@@ -38,10 +38,17 @@ public:
|
||||
P_controller& controller,
|
||||
State& initialization,
|
||||
State& operational,
|
||||
state& stopped
|
||||
State& stopped
|
||||
);
|
||||
|
||||
|
||||
// void set_states(
|
||||
// State* initialization,
|
||||
// State* operational,
|
||||
// State* stopped
|
||||
// );
|
||||
|
||||
|
||||
void begin();
|
||||
|
||||
void update();
|
||||
|
||||
+7
-6
@@ -33,7 +33,8 @@ MotorController motor_controller(
|
||||
motor,
|
||||
controller,
|
||||
initialization_state,
|
||||
operational_state
|
||||
operational_state,
|
||||
stopped_state
|
||||
);
|
||||
|
||||
|
||||
@@ -53,11 +54,11 @@ int main()
|
||||
sei();
|
||||
|
||||
|
||||
motor_controller.set_states(
|
||||
&initialization_state,
|
||||
&operational_state,
|
||||
&stopped_state
|
||||
);
|
||||
// motor_controller.set_states(
|
||||
// &initialization_state,
|
||||
// &operational_state,
|
||||
// &stopped_state
|
||||
// );
|
||||
|
||||
|
||||
motor_controller.begin();
|
||||
|
||||
+26
-12
@@ -9,7 +9,8 @@ MotorController::MotorController(
|
||||
MotorDriver& motor,
|
||||
P_controller& controller,
|
||||
State& initialization,
|
||||
State& operational
|
||||
State& operational,
|
||||
State& stopped
|
||||
)
|
||||
: current_state(nullptr),
|
||||
initialization_state(initialization),
|
||||
@@ -23,9 +24,22 @@ MotorController::MotorController(
|
||||
{
|
||||
initialization_state.set_context(this);
|
||||
operational_state.set_context(this);
|
||||
stopped_state.set_context(this);
|
||||
}
|
||||
|
||||
|
||||
// void MotorController::set_states(
|
||||
// State* initialization,
|
||||
// State* operational,
|
||||
// State* stopped
|
||||
// )
|
||||
|
||||
// initialization_state = initialization;
|
||||
// operational_state = operational;
|
||||
// stopped_state = stopped;
|
||||
|
||||
|
||||
|
||||
void MotorController::begin()
|
||||
{
|
||||
led.init();
|
||||
@@ -106,17 +120,6 @@ void MotorController::reset_speed_measurement()
|
||||
encoder.reset_speed_measurement();
|
||||
}
|
||||
|
||||
|
||||
void MotorController::led_on()
|
||||
{
|
||||
led.set_hi();
|
||||
}
|
||||
|
||||
|
||||
void MotorController::led_off()
|
||||
{
|
||||
led.set_lo();
|
||||
}
|
||||
void MotorController::to_stopped()
|
||||
{
|
||||
transition_to(stopped_state);
|
||||
@@ -126,3 +129,14 @@ bool MotorController::fault_active()
|
||||
{
|
||||
return motor.fault_active();
|
||||
}
|
||||
|
||||
void MotorController::led_on()
|
||||
{
|
||||
led.set_hi();
|
||||
}
|
||||
|
||||
|
||||
void MotorController::led_off()
|
||||
{
|
||||
led.set_lo();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user