1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
// SPDX-License-Identifier: Apache-2.0
// SPDX-FileCopyrightText: Copyright OpenBMC Authors
#pragma once
#include <nlohmann/json.hpp>
namespace automation_node
{
// clang-format off
enum class NodeState{
Invalid,
Idle,
Done,
Waiting,
ConditionStop,
ErrorStop,
Running,
};
enum class NodeType{
Invalid,
MotionPosition,
MotionVelocity,
MotionPositionGroup,
PID,
Simple,
};
enum class MotionProfileType{
Invalid,
Trapezoidal,
SCurve,
None,
};
enum class MotionAxisType{
Invalid,
X,
Y,
Z,
TwoAxis,
ThreeAxis,
};
NLOHMANN_JSON_SERIALIZE_ENUM(NodeState, {
{NodeState::Invalid, "Invalid"},
{NodeState::Idle, "Idle"},
{NodeState::Done, "Done"},
{NodeState::Waiting, "Waiting"},
{NodeState::ConditionStop, "ConditionStop"},
{NodeState::ErrorStop, "ErrorStop"},
{NodeState::Running, "Running"},
});
NLOHMANN_JSON_SERIALIZE_ENUM(NodeType, {
{NodeType::Invalid, "Invalid"},
{NodeType::MotionPosition, "MotionPosition"},
{NodeType::MotionVelocity, "MotionVelocity"},
{NodeType::MotionPositionGroup, "MotionPositionGroup"},
{NodeType::PID, "PID"},
{NodeType::Simple, "Simple"},
});
NLOHMANN_JSON_SERIALIZE_ENUM(MotionProfileType, {
{MotionProfileType::Invalid, "Invalid"},
{MotionProfileType::Trapezoidal, "Trapezoidal"},
{MotionProfileType::SCurve, "SCurve"},
{MotionProfileType::None, "None"},
});
NLOHMANN_JSON_SERIALIZE_ENUM(MotionAxisType, {
{MotionAxisType::Invalid, "Invalid"},
{MotionAxisType::X, "X"},
{MotionAxisType::Y, "Y"},
{MotionAxisType::Z, "Z"},
{MotionAxisType::TwoAxis, "TwoAxis"},
{MotionAxisType::ThreeAxis, "ThreeAxis"},
});
// clang-format on
} // namespace automation_node
|