2
2
3
3
namespace am
4
4
{
5
-
6
- const std::map<SuperState, std::vector<SuperState>> transitions_ =
7
- {
8
- { SuperState::OFF, {SuperState::BOOTING} },
9
- { SuperState::BOOTING, {SuperState::READY} },
10
- { SuperState::READY, {SuperState::ARMING} },
11
- { SuperState::ARMING, {SuperState::ARMED} },
12
- { SuperState::ARMED, {SuperState::AUTO, SuperState::ABORT} },
13
- { SuperState::AUTO, {SuperState::READY,SuperState::SEMI_AUTO,SuperState::HOLD,SuperState::ABORT,SuperState::MANUAL} },
14
- { SuperState::SEMI_AUTO, {SuperState::AUTO,SuperState::HOLD,SuperState::ABORT,SuperState::MANUAL} },
15
- { SuperState::HOLD, {SuperState::ABORT,SuperState::MANUAL} },
16
- { SuperState::ABORT, {SuperState::READY,SuperState::MANUAL} },
17
- { SuperState::MANUAL, {SuperState::READY} },
18
- { SuperState::SHUTDOWN, {SuperState::OFF} },
5
+ const std::map<SuperState, std::vector<SuperState>> transitions_ = {
6
+ { SuperState::OFF, { SuperState::BOOTING } },
7
+ { SuperState::BOOTING, { SuperState::READY } },
8
+ { SuperState::READY, { SuperState::ARMING } },
9
+ { SuperState::ARMING, { SuperState::ARMED } },
10
+ { SuperState::ARMED, { SuperState::AUTO, SuperState::ABORT } },
11
+ { SuperState::AUTO,
12
+ { SuperState::READY, SuperState::SEMI_AUTO, SuperState::HOLD, SuperState::ABORT, SuperState::MANUAL } },
13
+ { SuperState::SEMI_AUTO, { SuperState::AUTO, SuperState::HOLD, SuperState::ABORT, SuperState::MANUAL } },
14
+ { SuperState::HOLD, { SuperState::ABORT, SuperState::MANUAL } },
15
+ { SuperState::ABORT, { SuperState::READY, SuperState::MANUAL } },
16
+ { SuperState::MANUAL, { SuperState::READY } },
17
+ { SuperState::SHUTDOWN, { SuperState::OFF } },
19
18
};
20
19
21
- const std::map<SuperState, std::string_view> state_strings_ =
22
- {
23
- { SuperState::OFF, " OFF" },
24
- { SuperState::BOOTING, " BOOTING" },
25
- { SuperState::READY, " READY" },
26
- { SuperState::ARMING, " ARMING" },
27
- { SuperState::ARMED, " ARMED" },
28
- { SuperState::AUTO, " AUTO" },
29
- { SuperState::SEMI_AUTO, " SEMI_AUTO" },
30
- { SuperState::HOLD, " HOLD" },
31
- { SuperState::ABORT, " ABORT" },
32
- { SuperState::MANUAL, " MANUAL" },
33
- { SuperState::SHUTDOWN, " SHUTDOWN" },
20
+ const std::map<SuperState, std::string_view> state_strings_ = {
21
+ { SuperState::OFF, " OFF" },
22
+ { SuperState::BOOTING, " BOOTING" },
23
+ { SuperState::READY, " READY" },
24
+ { SuperState::ARMING, " ARMING" },
25
+ { SuperState::ARMED, " ARMED" },
26
+ { SuperState::AUTO, " AUTO" },
27
+ { SuperState::SEMI_AUTO, " SEMI_AUTO" },
28
+ { SuperState::HOLD, " HOLD" },
29
+ { SuperState::ABORT, " ABORT" },
30
+ { SuperState::MANUAL, " MANUAL" },
31
+ { SuperState::SHUTDOWN, " SHUTDOWN" },
34
32
};
35
33
36
- StateMediator::StateMediator (){
34
+ StateMediator::StateMediator ()
35
+ {
37
36
}
38
37
39
38
bool StateMediator::allowsTransition (SuperState from, SuperState to)
40
39
{
41
40
bool legal = false ;
42
- if (transitions_.count (from) > 0 ){
41
+ if (transitions_.count (from) > 0 )
42
+ {
43
43
std::vector<SuperState> allowed = transitions_.at (from);
44
- if (std::find (allowed.begin (),allowed.end (),to) != allowed.end ()){
44
+ if (std::find (allowed.begin (), allowed.end (), to) != allowed.end ())
45
+ {
45
46
legal = true ;
46
47
}
47
48
}
@@ -51,20 +52,22 @@ bool StateMediator::allowsTransition(SuperState from, SuperState to)
51
52
std::vector<SuperState> StateMediator::allSuperStates ()
52
53
{
53
54
std::vector<SuperState> all;
54
- for ( int enumIndex = (int ) SuperState::OFF; enumIndex <= (int ) SuperState::LAST_STATE; enumIndex++ )
55
+ for (int enumIndex = (int )SuperState::OFF; enumIndex <= (int )SuperState::LAST_STATE; enumIndex++)
55
56
{
56
57
SuperState state = static_cast <SuperState>(enumIndex);
57
58
all.push_back (state);
58
59
}
59
60
return all;
60
61
}
61
62
62
-
63
63
std::string_view StateMediator::stateToString (SuperState state)
64
64
{
65
- if (state_strings_.count (state) > 0 ){
65
+ if (state_strings_.count (state) > 0 )
66
+ {
66
67
return state_strings_.at (state);
67
- }else {
68
+ }
69
+ else
70
+ {
68
71
return INVALID_STRING;
69
72
}
70
73
}
0 commit comments