cisst-saw
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
mtsNovintHDL.h
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /* ex: set filetype=cpp softtabstop=4 shiftwidth=4 tabstop=4 cindent expandtab: */
3 
4 /*
5 
6  Author(s): Gorkem Sevinc, Anton Deguet
7  Created on: 2009-09-04
8 
9  (C) Copyright 2009-2010 Johns Hopkins University (JHU), All Rights
10  Reserved.
11 
12 --- begin cisst license - do not edit ---
13 
14 This software is provided "as is" under an open source license, with
15 no warranty. The complete license can be found in license.txt and
16 http://www.cisst.org/cisst/license.txt.
17 
18 --- end cisst license ---
19 */
20 
21 #ifndef _mtsNovintHDL_h
22 #define _mtsNovintHDL_h
23 
27 
28 // Always include last
30 
31 // forward declaration for private data
32 struct mtsNovintHDLDriverData;
33 struct mtsNovintHDLHandle;
34 
37 
38 public:
39  enum {NB_JOINTS = 3};
41 
42 protected:
43  // internal data using Novint data types
44  struct DeviceData {
46 
47  // local copy of the buttons state as defined by Sensable
49 
50  // local copy of the position and velocities
52 
53  // mtsFunction called to broadcast the event
54  mtsFunctionWrite Button1Event, Button2Event, Button3Event, Button4Event;
55 
57 
58  bool Clutch;
59 
60  std::string Name;
61 
63  };
64 
67  mtsNovintHDLDriverData * Driver;
68 
69  void SetInterfaces(const std::string & firstDeviceName,
70  const std::string & secondDeviceName);
71 
72  void SetupInterfaces(void);
73 
74 private:
77  mtsNovintHDL(const std::string & taskName);
78 
79 public:
82  mtsNovintHDL(const std::string & taskName,
83  const std::string & firstDeviceName);
84 
89  mtsNovintHDL(const std::string & taskName,
90  const std::string & firstDeviceName,
91  const std::string & secondDeviceName);
92 
93  mtsNovintHDL(const char * taskName,
94  const char * firstDeviceName,
95  const char * secondDeviceName);
97 
98  ~mtsNovintHDL();
99  void Configure(const std::string & CMN_UNUSED(filename) = "") {};
100  void Create(void *data = 0);
101  void Run();
102  void Start(void);
103  void Kill(void);
104  void Cleanup(void) {};
105  virtual void UserControl(void) {};
106 };
107 
108 
110 
111 
112 #endif // _mtsNovintHDL_h
113 
#define CISST_EXPORT
Definition: cmnExportMacros.h:50
A vector object of dynamic size.
Definition: vctDynamicVector.h:127
Definition: mtsNovintHDL.h:35
vctDynamicVector< DeviceData * > DevicesVector
Definition: mtsNovintHDL.h:65
int DeviceCount
Definition: mtsNovintHDL.h:40
prmForceCartesianSet ForceCartesian
Definition: mtsNovintHDL.h:56
#define CMN_UNUSED(argument)
Definition: cmnPortability.h:479
void Configure(const std::string &CMN_UNUSED(filename)="")
Definition: mtsNovintHDL.h:99
CMN_DECLARE_SERVICES_INSTANTIATION(mtsNovintHDL)
prmPositionCartesianGet PositionCartesian
Definition: mtsNovintHDL.h:51
Definition: mtsNovintHDL.h:44
mtsNovintHDLDriverData * Driver
Definition: mtsNovintHDL.h:67
vctDynamicVector< mtsNovintHDLHandle * > DevicesHandleVector
Definition: mtsNovintHDL.h:66
void Cleanup(void)
Definition: mtsNovintHDL.h:104
void Create(void)
Definition: mtsTask.h:228
Definition: prmForceCartesianSet.h:39
bool Clutch
Definition: mtsNovintHDL.h:58
mtsInt Buttons
Definition: mtsNovintHDL.h:48
#define CMN_DECLARE_SERVICES(hasDynamicCreation, lod)
Definition: cmnClassRegisterMacros.h:116
virtual void UserControl(void)
Definition: mtsNovintHDL.h:105
int DeviceNumber
Definition: mtsNovintHDL.h:62
Definition: mtsTaskFromCallback.h:154
virtual void Run(void)=0
Cartesian position move parameters.
Definition: mtsFunctionWrite.h:37
const int CMN_NO_DYNAMIC_CREATION
Definition: cmnClassRegisterMacros.h:328
Defines a task created from a callback.
bool DeviceEnabled
Definition: mtsNovintHDL.h:45
mtsFunctionWrite Button4Event
Definition: mtsNovintHDL.h:54
#define CMN_LOG_ALLOW_DEFAULT
Definition: cmnLogLoD.h:76
std::string Name
Definition: mtsNovintHDL.h:60
Definition: prmPositionCartesianGet.h:37