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