0 Star 0 Fork 1

ianaxe/vrpn

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
vrpn_Tracker_isense.h 2.63 KB
一键复制 编辑 原始数据 按行查看 历史
#ifndef __TRACKER_ISENSE_H
#define __TRACKER_ISENSE_H
#include "vrpn_Configure.h" // IWYU pragma: keep
#ifdef VRPN_INCLUDE_INTERSENSE
#ifdef __APPLE__
#define MACOSX
#endif
#include <time.h>
#include <math.h>
#include <stdlib.h>
#include <stdio.h>
#ifndef _WIN32
#include <sys/time.h>
#endif
#include "vrpn_Tracker.h"
#include "vrpn_Button.h"
#include "vrpn_Analog.h"
#include "isense.h"
class VRPN_API vrpn_Tracker_InterSense : public vrpn_Tracker {
public:
vrpn_Tracker_InterSense(const char *name,
vrpn_Connection *c,
int commPort, const char *additional_reset_commands = NULL,
int is900_timestamps = 0, int reset_at_start=0);
~vrpn_Tracker_InterSense();
/// Add an IS900 button device to one of the sensors
/// This allows configuration of an InterSense IS-900
int add_is900_button(const char *button_device_name, int sensor, int numbuttons = 5);
/// Add the analog part of an IS900 joystick device to one of the sensors
/// This allows configuration of an InterSense IS-900
/// The optional parameters specify the clipping and scaling to take the reports
/// from the two joystick axes into the range [-1..1]. The default is unscaled.
int add_is900_analog(const char *analog_device_name, int sensor,
double c0Min = -1, double c0Low = 0, double c0Hi = 0, double c0Max = 1,
double c1Min = -1, double c1Low = 0, double c1Hi = 0, double c1Max = 1);
/// This function should be called each time through the main loop
/// of the server code. It polls for a report from the tracker and
/// sends it if there is one. It will reset the tracker if there is
/// no data from it for a few seconds.
virtual void mainloop();
protected:
virtual void get_report(void);
virtual void reset();
virtual void send_report(void);
char add_reset_cmd[2048]; //< Additional reset commands to be sent
int m_CommPort;
ISD_TRACKER_HANDLE m_Handle;
ISD_TRACKER_INFO_TYPE m_TrackerInfo;
ISD_STATION_INFO_TYPE m_StationInfo[ISD_MAX_STATIONS];
int do_is900_timestamps; //< Request and process IS-900 timestamps?
int m_reset_at_start; //< should the tracker reset at startup
struct timeval is900_zerotime; //< When the IS-900 time counter was zeroed
vrpn_Button_Server *is900_buttons[ISD_MAX_STATIONS]; //< Pointer to button on each sensor (NULL if none)
vrpn_Clipping_Analog_Server *is900_analogs[ISD_MAX_STATIONS]; //< Pointer to analog on each sensor (NULL if none)
/// Augments the basic Fastrak format to include IS900 features if needed
int set_sensor_output_format(int sensor);
void getTrackerInfo(char *msg);
};
#endif
#endif
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C
1
https://gitee.com/ianaxe/vrpn.git
git@gitee.com:ianaxe/vrpn.git
ianaxe
vrpn
vrpn
master

搜索帮助