iMSTK
Interactive Medical Simulation Toolkit
|
The device client's represents the device and provides an interface to acquire data from a device. It posts events the device may have as well as provides the state. More...
#include <imstkDeviceClient.h>
Public Member Functions | |
SIGNAL (DeviceClient, buttonStateChanged) | |
bool | getTrackingEnabled () const |
Get/Set what listeners to enable on the device: tracking, analogic, force, buttons. | |
void | setTrackingEnabled (const bool status) |
bool | getAnalogicEnabled () const |
void | setAnalogicEnabled (const bool status) |
bool | getButtonsEnabled () const |
void | setButtonsEnabled (const bool status) |
bool | getForceEnabled () const |
void | setForceEnabled (const bool status) |
Vec3d | getPosition () |
Get the device position. | |
Vec3d | getVelocity () |
Get the device velocity. | |
Vec3d | getAngularVelocity () |
Get the device angular velocity. | |
Quatd | getOrientation () |
Get the device orientation. | |
const Vec3d & | getOffset () const |
Get offset from position for device end effector. | |
const std::unordered_map< int, int > & | getButtons () const |
Get button map. | |
int | getButton (const int buttonId) |
Get the state of a button returns 0 if can't find button. | |
std::vector< double > | getAnalog () const |
get values of the analog input | |
double | getAnalog (int i) const |
get single analog value More... | |
virtual void | update () |
Do runtime logic. | |
const std::string & | getIp () |
Get/Set the device IP. | |
void | setIp (const std::string &ip) |
const std::string & | getDeviceName () |
Get/Set the device name. | |
void | setDeviceName (const std::string &deviceName) |
Vec3d | getForce () |
Get/Set the device force. | |
void | setForce (Vec3d force) |
![]() | |
template<typename T > | |
void | postEvent (const T &e) |
Emits the event Direct observers will be immediately called, in sync Queued observers will receive the Command in their queue for later execution, reciever must implement doEvent. | |
template<typename T > | |
void | queueEvent (const T &e) |
Queues event directly to this. | |
void | doEvent () |
Do an event, if none exists return. | |
void | doAllEvents () |
Do all the events in the event queue. | |
void | foreachEvent (std::function< void(Command cmd)> func) |
Thread safe loop over all event commands, one can implement a custom handler. | |
void | rforeachEvent (std::function< void(Command cmd)> func) |
thread safe reverse loop over all event commands, one can implement a custom handler | |
void | clearEvents () |
Removes all events from queue cleans up copies of the event. | |
Protected Member Functions | |
DeviceClient (const std::string &name, const std::string &ip) | |
Protected Attributes | |
std::string | m_deviceName |
Device Name. | |
std::string | m_ip |
Connection device IP. | |
bool | m_trackingEnabled = true |
Tracking enabled if true. | |
bool | m_analogicEnabled = true |
Analogic enabled if true. | |
bool | m_buttonsEnabled = true |
Buttons enabled if true. | |
bool | m_forceEnabled = false |
Force enabled if true. | |
Vec3d | m_position |
Position of end effector. | |
Vec3d | m_velocity |
Linear velocity of end effector. | |
Vec3d | m_angularVelocity |
Angular velocity of the end effector. | |
Quatd | m_orientation |
Orientation of the end effector. | |
Vec3d | m_force |
Force vector. | |
Vec3d | m_endEffectorOffset = Vec3d(0.0, 0.0, 0.0) |
Offset from origin. | |
std::unordered_map< int, int > | m_buttons |
std::vector< double > | m_analogChannels |
ParallelUtils::SpinLock | m_transformLock |
Used for devices filling data from other threads. | |
ParallelUtils::SpinLock | m_forceLock |
Used for devices filling data from other threads. | |
ParallelUtils::SpinLock | m_dataLock |
Used for button and analog data. | |
![]() | |
ParallelUtils::SpinLock | eventQueueLock |
std::deque< Command > | eventQueue |
std::vector< std::pair< std::string, std::vector< Observer > > > | queuedObservers |
std::vector< std::pair< std::string, std::vector< Observer > > > | directObservers |
Additional Inherited Members | |
![]() | |
using | Observer = std::tuple< bool, std::weak_ptr< EventObject >, std::function< void(Event *)> > |
The device client's represents the device and provides an interface to acquire data from a device. It posts events the device may have as well as provides the state.
Definition at line 53 of file imstkDeviceClient.h.
double imstk::DeviceClient::getAnalog | ( | int | i | ) | const |
get single analog value
Definition at line 111 of file imstkDeviceClient.cpp.