Maintains a registry of network-connected modules and returns Group objects to the user. More...
#include <lookup.hpp>
Classes | |
class | EntryList |
Public Member Functions | |
std::shared_ptr< Group > | getConnectedGroupFromMac (const MacAddress &address, int32_t timeout_ms=DEFAULT_TIMEOUT) |
Get a group from all modules known to connect to a module with the given mac address. More... | |
std::shared_ptr< Group > | getConnectedGroupFromName (const std::string &family, const std::string &name, int32_t timeout_ms=DEFAULT_TIMEOUT) |
Get a group from all modules known to connect to a module with the given name and family. More... | |
std::shared_ptr< EntryList > | getEntryList () |
std::shared_ptr< Group > | getGroupFromFamily (const std::string &family, int32_t timeout_ms=DEFAULT_TIMEOUT) |
Get a group from all known modules with the given family. More... | |
std::shared_ptr< Group > | getGroupFromMacs (const std::vector< MacAddress > &addresses, int32_t timeout_ms=DEFAULT_TIMEOUT) |
Get a group from modules with the given mac addresses. More... | |
std::shared_ptr< Group > | getGroupFromNames (const std::vector< std::string > &families, const std::vector< std::string > &names, int32_t timeout_ms=DEFAULT_TIMEOUT) |
Get a group from modules with the given names and families. More... | |
int32_t | getInitialGroupCommandLifetimeMs () |
Gets the default command lifetime value for groups created from this lookup. More... | |
float | getInitialGroupFeedbackFrequencyHz () |
Gets the default feedback frequency value for groups created from this lookup. More... | |
Lookup () | |
Creates a Lookup object which can create Module and Group references. Typically, only one Lookup object should exist at a time. More... | |
void | setInitialGroupCommandLifetimeMs (int32_t ms) |
Sets the default command lifetime value for groups created from this lookup. More... | |
void | setInitialGroupFeedbackFrequencyHz (float frequency) |
Sets the default feedback frequency value for groups created from this lookup. More... | |
~Lookup () noexcept | |
Destructor frees all resources created by Lookup object, and stops the background query thread. More... | |
Private Attributes | |
int32_t | initial_group_command_lifetime_ {250} |
float | initial_group_feedback_frequency_ {100.0f} |
HebiLookupPtr | lookup_ |
Static Private Attributes | |
static const int32_t | DEFAULT_TIMEOUT = 500 |
Maintains a registry of network-connected modules and returns Group objects to the user.
Only one Lookup object is needed per application.
Definition at line 34 of file lookup.hpp.
hebi::Lookup::Lookup | ( | ) |
Creates a Lookup object which can create Module and Group references. Typically, only one Lookup object should exist at a time.
Note that this call invokes a background thread to query the network for modules at regular intervals.
Definition at line 6 of file lookup.cpp.
|
noexcept |
Destructor frees all resources created by Lookup object, and stops the background query thread.
Definition at line 11 of file lookup.cpp.
std::shared_ptr< Group > hebi::Lookup::getConnectedGroupFromMac | ( | const MacAddress & | address, |
int32_t | timeout_ms = DEFAULT_TIMEOUT |
||
) |
Get a group from all modules known to connect to a module with the given mac address.
Blocking call which returns a reference to a Group object with the given parameters. Times out after timeout_msec milliseconds.
address | Physical mac address of the module to form the group from. |
timeout_ms | Timeout in milliseconds. A value of -1 blocks until a group is found, and a value of 0 returns immediately if no group with that address is currently known by the Lookup class. |
Definition at line 66 of file lookup.cpp.
std::shared_ptr< Group > hebi::Lookup::getConnectedGroupFromName | ( | const std::string & | family, |
const std::string & | name, | ||
int32_t | timeout_ms = DEFAULT_TIMEOUT |
||
) |
Get a group from all modules known to connect to a module with the given name and family.
Blocking call which returns a reference to a Group object with the given parameters. Times out after timeout_msec milliseconds.
family | The given family of the module, as viewable in the HEBI GUI, to form the group from. |
name | The given name of the module, as viewable in the HEBI GUI, to form the group from. |
timeout_ms | Timeout in milliseconds. A value of -1 blocks until a group is found, and a value of 0 returns immediately if no group with that address is currently known by the Lookup class. |
Definition at line 57 of file lookup.cpp.
std::shared_ptr< Lookup::EntryList > hebi::Lookup::getEntryList | ( | ) |
Definition at line 185 of file lookup.cpp.
std::shared_ptr< Group > hebi::Lookup::getGroupFromFamily | ( | const std::string & | family, |
int32_t | timeout_ms = DEFAULT_TIMEOUT |
||
) |
Get a group from all known modules with the given family.
Blocking call which returns a reference to a Group object with the given parameters. Times out after timeout_msec milliseconds.
family | The family of each of the desired group modules. |
timeout_ms | Timeout in milliseconds. A value of -1 blocks until a group is found, and a value of 0 returns immediately if no group with that address is currently known by the Lookup class. |
Definition at line 48 of file lookup.cpp.
std::shared_ptr< Group > hebi::Lookup::getGroupFromMacs | ( | const std::vector< MacAddress > & | addresses, |
int32_t | timeout_ms = DEFAULT_TIMEOUT |
||
) |
Get a group from modules with the given mac addresses.
Blocking call which returns a reference to a Group object with the given parameters. Times out after timeout_msec milliseconds.
addresses | List of physical mac addresses for desired group modules. |
timeout_ms | Timeout in milliseconds. A value of -1 blocks until a group is found, and a value of 0 returns immediately if no group with that address is currently known by the Lookup class. |
Definition at line 35 of file lookup.cpp.
std::shared_ptr< Group > hebi::Lookup::getGroupFromNames | ( | const std::vector< std::string > & | families, |
const std::vector< std::string > & | names, | ||
int32_t | timeout_ms = DEFAULT_TIMEOUT |
||
) |
Get a group from modules with the given names and families.
If one of the input vectors is of length one, then that element is assumed to pair with each item in the other input vector.
Blocking call which returns a reference to a Group object with the given parameters. Times out after timeout_msec milliseconds.
families | A list of families of desired group modules, as viewable in the HEBI GUI. If of length one, this family is paried with each given name. |
names | A list of names of desired group modules, as viewable in the HEBI GUI. If of length one, this name is paired with each given family |
timeout_ms | Timeout in milliseconds. A value of -1 blocks until a group is found, and a value of 0 returns immediately if no group with that address is currently known by the Lookup class. |
Definition at line 16 of file lookup.cpp.
int32_t hebi::Lookup::getInitialGroupCommandLifetimeMs | ( | ) |
Gets the default command lifetime value for groups created from this lookup.
Defaults to 250 ms.
See Group documentation for detailed usage, and docs.hebi.us for more information on Command Lifetime.
Definition at line 85 of file lookup.cpp.
float hebi::Lookup::getInitialGroupFeedbackFrequencyHz | ( | ) |
Gets the default feedback frequency value for groups created from this lookup.
Defaults to 100 Hz.
See Group documentation for detailed usage, and docs.hebi.us for more information on feedback requests.
Definition at line 75 of file lookup.cpp.
void hebi::Lookup::setInitialGroupCommandLifetimeMs | ( | int32_t | ms | ) |
Sets the default command lifetime value for groups created from this lookup.
ms | The number of milliseconds that newly-created groups will use as their command lifetime when sending out commands. |
Definition at line 90 of file lookup.cpp.
void hebi::Lookup::setInitialGroupFeedbackFrequencyHz | ( | float | frequency | ) |
Sets the default feedback frequency value for groups created from this lookup.
frequency | The frequency, in Hz, that newly-created groups will request feedback at. |
Definition at line 80 of file lookup.cpp.
|
staticprivate |
Definition at line 37 of file lookup.hpp.
|
private |
Default value of command lifetime used when creating new groups.
Definition at line 52 of file lookup.hpp.
|
private |
Default value of feedback frequency used when creating new groups.
Definition at line 47 of file lookup.hpp.
|
private |
Definition at line 42 of file lookup.hpp.