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