1#ifndef VRPN_3DCONNEXION_H
2#define VRPN_3DCONNEXION_H
6#include "vrpn_Analog.h"
7#include "vrpn_Button.h"
8#include "vrpn_Configure.h"
9#include "vrpn_Connection.h"
10#include "vrpn_HumanInterface.h"
11#include "vrpn_Shared.h"
12#include "vrpn_Types.h"
27#if defined(VRPN_USE_HID)
28class VRPN_API vrpn_3DConnexion:
public vrpn_Button_Filter,
public vrpn_Analog,
protected vrpn_HidInterface {
33 virtual ~vrpn_3DConnexion();
41 virtual void decodePacket(
size_t bytes, vrpn_uint8 *buffer);
42 struct timeval _timestamp;
46 void report_changes (vrpn_uint32 class_of_service = vrpn_CONNECTION_LOW_LATENCY);
48 void report (vrpn_uint32 class_of_service = vrpn_CONNECTION_LOW_LATENCY);
57 vrpn_uint16 vendor = 0, vrpn_uint16 product = 0);
63 struct timeval _timestamp;
68 void report_changes(vrpn_uint32 class_of_service = vrpn_CONNECTION_LOW_LATENCY);
70 void report(vrpn_uint32 class_of_service = vrpn_CONNECTION_LOW_LATENCY);
76#if defined(linux) && !defined(VRPN_USE_HID)
77 int set_led(
int led_state);
82class VRPN_API vrpn_3DConnexion_Navigator:
public vrpn_3DConnexion {
85 virtual ~vrpn_3DConnexion_Navigator() {};
90class VRPN_API vrpn_3DConnexion_Navigator_for_Notebooks:
public vrpn_3DConnexion {
92 vrpn_3DConnexion_Navigator_for_Notebooks(
const char *name,
vrpn_Connection *c = 0);
93 virtual ~vrpn_3DConnexion_Navigator_for_Notebooks() {};
98class VRPN_API vrpn_3DConnexion_Traveler:
public vrpn_3DConnexion {
101 virtual ~vrpn_3DConnexion_Traveler() {};
106class VRPN_API vrpn_3DConnexion_SpaceMouse:
public vrpn_3DConnexion {
109 virtual ~vrpn_3DConnexion_SpaceMouse() {};
133class VRPN_API vrpn_3DConnexion_SpaceMousePro:
public vrpn_3DConnexion {
135 vrpn_3DConnexion_SpaceMousePro(
const char *name,
vrpn_Connection *c = 0);
136 virtual ~vrpn_3DConnexion_SpaceMousePro() {};
141class VRPN_API vrpn_3DConnexion_SpaceMouseCompact :
public vrpn_3DConnexion {
143 vrpn_3DConnexion_SpaceMouseCompact(
const char *name,
vrpn_Connection *c = 0);
144 virtual ~vrpn_3DConnexion_SpaceMouseCompact() {};
149class VRPN_API vrpn_3DConnexion_SpaceMouseWireless :
public vrpn_3DConnexion {
151 vrpn_3DConnexion_SpaceMouseWireless(
const char *name,
vrpn_Connection *c = 0);
152 virtual ~vrpn_3DConnexion_SpaceMouseWireless() {};
157class VRPN_API vrpn_3DConnexion_SpaceMouseWireless2 :
public vrpn_3DConnexion {
159 vrpn_3DConnexion_SpaceMouseWireless2(
const char* name,
vrpn_Connection* c = 0);
160 virtual ~vrpn_3DConnexion_SpaceMouseWireless2() {};
165class VRPN_API vrpn_3DConnexion_SpaceExplorer :
public vrpn_3DConnexion {
167 vrpn_3DConnexion_SpaceExplorer(
const char *name,
vrpn_Connection *c = 0);
168 virtual ~vrpn_3DConnexion_SpaceExplorer() {};
173class VRPN_API vrpn_3DConnexion_SpaceBall5000:
public vrpn_3DConnexion {
175 vrpn_3DConnexion_SpaceBall5000(
const char *name,
vrpn_Connection *c = 0);
176 virtual ~vrpn_3DConnexion_SpaceBall5000() {};
181class VRPN_API vrpn_3DConnexion_SpacePilot:
public vrpn_3DConnexion {
184 virtual ~vrpn_3DConnexion_SpacePilot() {};
189class VRPN_API vrpn_3DConnexion_SpacePilotPro :
public vrpn_3DConnexion {
191 vrpn_3DConnexion_SpacePilotPro(
const char *name,
vrpn_Connection *c = 0);
192 virtual ~vrpn_3DConnexion_SpacePilotPro(){};
197class VRPN_API vrpn_3DConnexion_SpaceMouseProWireless :
public vrpn_3DConnexion {
199 vrpn_3DConnexion_SpaceMouseProWireless(
const char *name,
vrpn_Connection *c = 0);
200 virtual ~vrpn_3DConnexion_SpaceMouseProWireless() {};
203 void decodePacket(
size_t bytes, vrpn_uint8 *buffer);
void on_data_received(size_t bytes, vrpn_uint8 *buffer)
Derived class reimplements this callback. It is called whenever a read returns some data.
virtual void report(vrpn_uint32 class_of_service=vrpn_CONNECTION_LOW_LATENCY, const struct timeval time=vrpn_ANALOG_NOW)
virtual void report_changes(vrpn_uint32 class_of_service=vrpn_CONNECTION_LOW_LATENCY, const struct timeval time=vrpn_ANALOG_NOW)
virtual void mainloop()=0
Generic connection class not specific to the transport mechanism.
定义 vrpn_Connection.h:562
定义 vrpn_HumanInterface.h:56
vrpn_uint16 product() const
vrpn_HidInterface(vrpn_HidAcceptor *acceptor, vrpn_uint16 vendor=0, vrpn_uint16 product=0, hid_device *device=NULL)
vrpn_uint16 vendor() const