// %flair:license{ // This file is part of the Flair framework distributed under the // CECILL-C License, Version 1.0. // %flair:license} // created: 2013/04/03 // filename: VrpnClient_impl.h // // author: César Richard, Guillaume Sanahuja // Copyright Heudiasyc UMR UTC/CNRS 7253 // // version: $Id: $ // // purpose: objet se connectant au serveur vrpn // // /*********************************************************************/ #ifndef VRPNCLIENT_IMPL_H #define VRPNCLIENT_IMPL_H #include #include namespace flair { namespace core { class OneAxisRotation; class Vector3D; class Quaternion; class Mutex; class SerialPort; } namespace gui { class TabWidget; class Tab; class Layout; } namespace sensor { class VrpnClient; class VrpnObject; } } class VrpnObject_impl; class vrpn_Connection; class VrpnClient_impl { public: VrpnClient_impl(flair::sensor::VrpnClient *self, std::string name, std::string address); VrpnClient_impl(flair::sensor::VrpnClient *self, std::string name, flair::core::SerialPort *serialport, uint16_t us_period); ~VrpnClient_impl(); void AddTrackable(VrpnObject_impl *obj); // normal void AddTrackable(VrpnObject_impl *obj, uint8_t id); // xbee void RemoveTrackable(VrpnObject_impl *obj); // normal+xbee void ComputeRotations(flair::core::Vector3D &point); void ComputeRotations(flair::core::Quaternion &quat); bool UseXbee(void); void Run(void); flair::gui::Tab *setup_tab; flair::gui::TabWidget *tab; vrpn_Connection *connection; private: flair::sensor::VrpnClient *self; flair::core::Mutex *mutex; uint16_t us_period; std::vector trackables; typedef struct xbee_object { VrpnObject_impl *vrpnobject; uint8_t id; } xbee_object; std::vector xbee_objects; flair::gui::Tab *main_tab; flair::core::OneAxisRotation *rotation_1, *rotation_2; flair::core::SerialPort *serialport; bool isConnected;//only for ip connection, not for xbee }; #endif // VRPNCLIENT_IMPL_H