4#ifndef _prmSetpointMode_h
5#define _prmSetpointMode_h
22 return static_cast<prmSetpointMode>(
static_cast<uint8_t
>(a) |
static_cast<uint8_t
>(b));
28 return static_cast<bool>(
static_cast<uint8_t
>(a) &
static_cast<uint8_t
>(b));
33 std::string mode_name =
"";
44 if (mode_name ==
"") {
48 return output << mode_name;
52inline void CISST_EXPORT cmnDataJSON<prmSetpointMode>::SerializeText(
const DataType & data, Json::Value & jsonValue) {
53 jsonValue =
static_cast<uint8_t
>(data);
57inline void CISST_EXPORT cmnDataJSON<prmSetpointMode>::DeSerializeText(DataType & data,
const Json::Value & jsonValue)
CISST_THROW(std::runtime_error) {
58 if (jsonValue.empty()) {
59 cmnThrow(
"cmnDataJSON<prmSetpointMode>::DeSerializeText: empty JSON value");
63 unsigned int raw_data = jsonValue.asUInt();
64 constexpr size_t num_nonzero_modes = 3;
65 if (raw_data >= (1 << num_nonzero_modes)) {
66 cmnThrow(
"cmnDataJSON<prmSetpointMode>::DeSerializeText: JSON value does not correspond to combination of known modes");
85 return "prmSetpointMode::NONE";
87 return "prmSetpointMode::POSITION";
89 return "prmSetpointMode::VELOCITY";
91 return "prmSetpointMode::EFFORT";
93 return "prmSetpointMode unknown";
98 std::ostream & outputStream)
CISST_THROW(std::runtime_error) {
112 outputStream << static_cast<uint8_t>(data);
117 const std::string & userDescription =
"") {
118 return (userDescription ==
"") ?
"prmSetpointMode" : (userDescription +
"prmSetpointMode");
124 inputStream >> value;
137 const std::string & userDescription)
CISST_THROW(std::out_of_range) {
139 return (userDescription ==
"") ?
"prmSetpointMode" : (userDescription +
"prmSetpointMode");
141 cmnThrow(std::out_of_range(
"cmnDataScalarDescription: prmSetpointMode index out of range"));
147 return static_cast<double>(data);
149 cmnThrow(std::out_of_range(
"cmnDataScalar: prmSetpointMode index out of range"));
static double Scalar(const prmSetpointMode &data, const size_t index) CISST_THROW(std
Definition prmSetpointMode.h:145
static size_t ScalarNumber(const prmSetpointMode &CMN_UNUSED(data))
Definition prmSetpointMode.h:132
@ IS_SPECIALIZED
Definition prmSetpointMode.h:75
static std::string SerializeDescription(const prmSetpointMode &CMN_UNUSED(data), const char CMN_UNUSED(delimiter)=',', const std::string &userDescription="")
Definition prmSetpointMode.h:115
static bool ScalarNumberIsFixed(const prmSetpointMode &CMN_UNUSED(data))
Definition prmSetpointMode.h:128
static std::string ScalarDescription(const prmSetpointMode &CMN_UNUSED(data), const size_t index, const std::string &userDescription) CISST_THROW(std
Definition prmSetpointMode.h:136
static void DeSerializeBinary(prmSetpointMode &data, std::istream &inputStream, const cmnDataFormat &localFormat, const cmnDataFormat &remoteFormat) CISST_THROW(std
Definition prmSetpointMode.h:102
static void SerializeText(const prmSetpointMode &data, std::ostream &outputStream, const char CMN_UNUSED(delimiter)=',') CISST_THROW(std
Definition prmSetpointMode.h:110
static std::string HumanReadable(const prmSetpointMode &data)
Definition prmSetpointMode.h:81
static void Copy(prmSetpointMode &data, const prmSetpointMode &source)
Definition prmSetpointMode.h:77
static void SerializeBinary(const prmSetpointMode &data, std::ostream &outputStream) CISST_THROW(std
Definition prmSetpointMode.h:97
static void DeSerializeText(prmSetpointMode &data, std::istream &inputStream, const char CMN_UNUSED(delimiter)=',') CISST_THROW(std
Definition prmSetpointMode.h:121
Definition cmnDataFunctions.h:51
static size_t DeSerializeBinary(DataType &data, const char *buffer, size_t bufferSize, const cmnDataFormat &CMN_UNUSED(localFormat), const cmnDataFormat &CMN_UNUSED(remoteFormat))
static size_t SerializeBinary(const DataType &data, char *buffer, size_t bufferSize)
#define CISST_EXPORT
Definition cmnExportMacros.h:50
#define CMN_UNUSED(argument)
Definition cmnPortability.h:497
#define CISST_THROW(exceptionParameter)
Somewhat portable compilation warning message. This works with very recent versions of gcc (4....
Definition cmnPortability.h:559
void cmnThrow(const _exceptionType &except, cmnLogLevel lod=CMN_LOG_LEVEL_INIT_ERROR)
Definition cmnThrow.h:76
prmSetpointMode
Definition prmSetpointMode.h:12
@ VELOCITY
Definition prmSetpointMode.h:15
@ POSITION
Definition prmSetpointMode.h:14
@ NONE
Definition prmSetpointMode.h:13
@ EFFORT
Definition prmSetpointMode.h:16
std::ostream & operator<<(std::ostream &output, const prmSetpointMode &mode)
Definition prmSetpointMode.h:31
prmSetpointMode operator|(prmSetpointMode a, prmSetpointMode b)
Definition prmSetpointMode.h:20
@ NONE
Definition prmSimulationType.h:26
vctFixedSizeVector< _elementType, _size1+_size2 > operator&(const vctFixedSizeConstVectorBase< _size1, _stride1, _elementType, _dataPtr1 > &vector1, const vctFixedSizeConstVectorBase< _size2, _stride2, _elementType, _dataPtr2 > &vector2)
Definition vctFixedSizeVector.h:504