summaryrefslogtreecommitdiff
path: root/redfish-core/include/generated/enums/automation_node.hpp
blob: d22b96992e78c4a43db21a99403e2c8d862c55f2 (plain)
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