// automatically generated by the FlatBuffers compiler, do not modify #ifndef FLATBUFFERS_GENERATED_ROBOTMODULE_H_ #define FLATBUFFERS_GENERATED_ROBOTMODULE_H_ #include "flatbuffers/flatbuffers.h" // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. //static_assert(FLATBUFFERS_VERSION_MAJOR == 25 && // FLATBUFFERS_VERSION_MINOR == 2 && // FLATBUFFERS_VERSION_REVISION == 10, // "Non-compatible flatbuffers version included"); struct MotorState; struct MotorStateBuilder; struct RobotModule; struct RobotModuleBuilder; enum ModuleType : int8_t { ModuleType_SPLITTER = 0, ModuleType_SERVO_1 = 1, ModuleType_DC_MOTOR = 2, ModuleType_BATTERY = 3, ModuleType_MIN = ModuleType_SPLITTER, ModuleType_MAX = ModuleType_BATTERY }; inline const ModuleType (&EnumValuesModuleType())[4] { static const ModuleType values[] = {ModuleType_SPLITTER, ModuleType_SERVO_1, ModuleType_DC_MOTOR, ModuleType_BATTERY}; return values; } inline const char *const *EnumNamesModuleType() { static const char *const names[5] = {"SPLITTER", "SERVO_1", "DC_MOTOR", "BATTERY", nullptr}; return names; } inline const char *EnumNameModuleType(ModuleType e) { if (::flatbuffers::IsOutRange(e, ModuleType_SPLITTER, ModuleType_BATTERY)) return ""; const size_t index = static_cast(e); return EnumNamesModuleType()[index]; } enum Orientation : int8_t { Orientation_Deg0 = 0, Orientation_Deg90 = 1, Orientation_Deg180 = 2, Orientation_Deg270 = 3, Orientation_MIN = Orientation_Deg0, Orientation_MAX = Orientation_Deg270 }; inline const Orientation (&EnumValuesOrientation())[4] { static const Orientation values[] = {Orientation_Deg0, Orientation_Deg90, Orientation_Deg180, Orientation_Deg270}; return values; } inline const char *const *EnumNamesOrientation() { static const char *const names[5] = {"Deg0", "Deg90", "Deg180", "Deg270", nullptr}; return names; } inline const char *EnumNameOrientation(Orientation e) { if (::flatbuffers::IsOutRange(e, Orientation_Deg0, Orientation_Deg270)) return ""; const size_t index = static_cast(e); return EnumNamesOrientation()[index]; } enum ModuleState : uint8_t { ModuleState_NONE = 0, ModuleState_MotorState = 1, ModuleState_MIN = ModuleState_NONE, ModuleState_MAX = ModuleState_MotorState }; inline const ModuleState (&EnumValuesModuleState())[2] { static const ModuleState values[] = {ModuleState_NONE, ModuleState_MotorState}; return values; } inline const char *const *EnumNamesModuleState() { static const char *const names[3] = {"NONE", "MotorState", nullptr}; return names; } inline const char *EnumNameModuleState(ModuleState e) { if (::flatbuffers::IsOutRange(e, ModuleState_NONE, ModuleState_MotorState)) return ""; const size_t index = static_cast(e); return EnumNamesModuleState()[index]; } template struct ModuleStateTraits { static const ModuleState enum_value = ModuleState_NONE; }; template <> struct ModuleStateTraits { static const ModuleState enum_value = ModuleState_MotorState; }; bool VerifyModuleState(::flatbuffers::Verifier &verifier, const void *obj, ModuleState type); bool VerifyModuleStateVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); struct MotorState FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef MotorStateBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_ANGLE = 4 }; int32_t angle() const { return GetField(VT_ANGLE, 0); } bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_ANGLE, 4) && verifier.EndTable(); } }; struct MotorStateBuilder { typedef MotorState Table; ::flatbuffers::FlatBufferBuilder &fbb_; ::flatbuffers::uoffset_t start_; void add_angle(int32_t angle) { fbb_.AddElement(MotorState::VT_ANGLE, angle, 0); } explicit MotorStateBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = ::flatbuffers::Offset(end); return o; } }; inline ::flatbuffers::Offset CreateMotorState(::flatbuffers::FlatBufferBuilder &_fbb, int32_t angle = 0) { MotorStateBuilder builder_(_fbb); builder_.add_angle(angle); return builder_.Finish(); } struct RobotModule FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef RobotModuleBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_ID = 4, VT_MODULE_TYPE = 6, VT_CONFIGURATION_TYPE = 8, VT_CONFIGURATION = 10 }; uint8_t id() const { return GetField(VT_ID, 0); } ModuleType module_type() const { return static_cast(GetField(VT_MODULE_TYPE, 0)); } ModuleState configuration_type() const { return static_cast(GetField(VT_CONFIGURATION_TYPE, 0)); } const void *configuration() const { return GetPointer(VT_CONFIGURATION); } template const T *configuration_as() const; const MotorState *configuration_as_MotorState() const { return configuration_type() == ModuleState_MotorState ? static_cast(configuration()) : nullptr; } bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_ID, 1) && VerifyField(verifier, VT_MODULE_TYPE, 1) && VerifyField(verifier, VT_CONFIGURATION_TYPE, 1) && VerifyOffset(verifier, VT_CONFIGURATION) && VerifyModuleState(verifier, configuration(), configuration_type()) && verifier.EndTable(); } }; template <> inline const MotorState *RobotModule::configuration_as() const { return configuration_as_MotorState(); } struct RobotModuleBuilder { typedef RobotModule Table; ::flatbuffers::FlatBufferBuilder &fbb_; ::flatbuffers::uoffset_t start_; void add_id(uint8_t id) { fbb_.AddElement(RobotModule::VT_ID, id, 0); } void add_module_type(ModuleType module_type) { fbb_.AddElement(RobotModule::VT_MODULE_TYPE, static_cast(module_type), 0); } void add_configuration_type(ModuleState configuration_type) { fbb_.AddElement(RobotModule::VT_CONFIGURATION_TYPE, static_cast(configuration_type), 0); } void add_configuration(::flatbuffers::Offset configuration) { fbb_.AddOffset(RobotModule::VT_CONFIGURATION, configuration); } explicit RobotModuleBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = ::flatbuffers::Offset(end); return o; } }; inline ::flatbuffers::Offset CreateRobotModule(::flatbuffers::FlatBufferBuilder &_fbb, uint8_t id = 0, ModuleType module_type = ModuleType_SPLITTER, ModuleState configuration_type = ModuleState_NONE, ::flatbuffers::Offset configuration = 0) { RobotModuleBuilder builder_(_fbb); builder_.add_configuration(configuration); builder_.add_configuration_type(configuration_type); builder_.add_module_type(module_type); builder_.add_id(id); return builder_.Finish(); } inline bool VerifyModuleState(::flatbuffers::Verifier &verifier, const void *obj, ModuleState type) { switch (type) { case ModuleState_NONE: { return true; } case ModuleState_MotorState: { auto ptr = reinterpret_cast(obj); return verifier.VerifyTable(ptr); } default: return true; } } inline bool VerifyModuleStateVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { if (!VerifyModuleState(verifier, values->Get(i), types->GetEnum(i))) { return false; } } return true; } inline const RobotModule *GetRobotModule(const void *buf) { return ::flatbuffers::GetRoot(buf); } inline const RobotModule *GetSizePrefixedRobotModule(const void *buf) { return ::flatbuffers::GetSizePrefixedRoot(buf); } inline bool VerifyRobotModuleBuffer(::flatbuffers::Verifier &verifier) { return verifier.VerifyBuffer(nullptr); } inline bool VerifySizePrefixedRobotModuleBuffer(::flatbuffers::Verifier &verifier) { return verifier.VerifySizePrefixedBuffer(nullptr); } inline void FinishRobotModuleBuffer(::flatbuffers::FlatBufferBuilder &fbb, ::flatbuffers::Offset root) { fbb.Finish(root); } inline void FinishSizePrefixedRobotModuleBuffer(::flatbuffers::FlatBufferBuilder &fbb, ::flatbuffers::Offset root) { fbb.FinishSizePrefixed(root); } #endif // FLATBUFFERS_GENERATED_ROBOTMODULE_H_