source: flair-src/trunk/lib/FlairSensorActuator/src/VrpnClient.cpp @ 330

Last change on this file since 330 was 330, checked in by Sanahuja Guillaume, 2 years ago

use less bandwidth in vprnlite

File size: 2.2 KB
Line 
1// %flair:license{
2// This file is part of the Flair framework distributed under the
3// CECILL-C License, Version 1.0.
4// %flair:license}
5//  created:    2013/04/03
6//  filename:   VrpnClient.cpp
7//
8//  author:     César Richard, Guillaume Sanahuja
9//              Copyright Heudiasyc UMR UTC/CNRS 7253
10//
11//  version:    $Id: $
12//
13//  purpose:    Class to connect to a Vrpn server
14//
15/*********************************************************************/
16
17#include "VrpnClient.h"
18#include "VrpnClient_impl.h"
19#include <FrameworkManager.h>
20#include <TabWidget.h>
21#include <Layout.h>
22
23using std::string;
24using namespace flair::core;
25using namespace flair::gui;
26
27namespace {
28  flair::sensor::VrpnClient *singleton = NULL;
29}
30
31
32namespace flair {
33namespace sensor {
34
35VrpnClient *GetVrpnClient(void) { return singleton; }
36       
37VrpnClient::VrpnClient(string name,
38                       string address, uint8_t priority,ConnectionType_t connectionType)
39    : Thread(getFrameworkManager(), name, priority) {
40        if (singleton != NULL) {
41    SimpleWarn("VrpnClient should be instanced only one time!\n");
42    SimpleWarn("Next calls to GetVrpnClient() will return the first created VrpnClient (%s)\n",singleton->ObjectName().c_str());
43  } else {
44    singleton = this;
45  }
46 
47  pimpl_ = new VrpnClient_impl(this, name, address,connectionType);
48}
49
50VrpnClient::VrpnClient(string name,
51                       SerialPort *serialport, uint16_t us_period,
52                       uint8_t priority)
53    : Thread(getFrameworkManager(), name, priority) {
54        if (singleton != NULL) {
55    SimpleWarn("VrpnClient should be instanced only one time!\n");
56    SimpleWarn("Next calls to GetVrpnClient() will return the first created VrpnClient (%s)\n",singleton->ObjectName().c_str());
57  } else {
58    singleton = this;
59  }
60 
61  pimpl_ = new VrpnClient_impl(this, name, serialport, us_period);
62}
63
64VrpnClient::~VrpnClient() {
65  SafeStop();
66  Join();
67
68  delete pimpl_;
69}
70
71VrpnClient::ConnectionType_t VrpnClient::ConnectionType(void) const {
72  return pimpl_->connectionType;
73}
74
75Layout *VrpnClient::GetLayout(void) const {
76  return (Layout *)(pimpl_->setup_tab);
77}
78
79TabWidget *VrpnClient::GetTabWidget(void) const { return pimpl_->tab; }
80
81void VrpnClient::Run(void) { pimpl_->Run(); }
82
83} // end namespace sensor
84} // end namespace flair
Note: See TracBrowser for help on using the repository browser.