SPIDAR API Library  0x16033101
Space Interface Device for Artificial Reality
Spidar.h
Go to the documentation of this file.
1 
5 #ifdef SPIDAR_API_EXPORTS
6 #define SPIDAR_API extern "C" __declspec(dllexport)
7 #else
8 #define SPIDAR_API extern "C" __declspec(dllimport)
9 #endif
10 
11 #include <SDKDDKVer.h>
12 
13 #define WIN32_LEAN_AND_MEAN
14 #include <windows.h>
15 
16 //
17 extern "C" struct Vector3
18 {
19  FLOAT x, y, z;
20 };
21 
22 //
23 extern "C" struct Quaternion
24 {
25  FLOAT x, y, z, w;
26 };
27 
28 //
29 // 状態確認
30 //
31 
32 // ライブラリのバージョン確認
33 SPIDAR_API BOOL __stdcall SpidarGetLibraryVersion(UINT& version);
34 
35 //
36 // 初期化
37 //
38 
39 // SPIDARシステムの初期化(要設定ファイル)
40 SPIDAR_API BOOL __stdcall SpidarInitialize(LPCSTR fileName, UINT& serialNumber);
41 
42 // SPIDARコントローラ基板のみ初期化
43 SPIDAR_API BOOL __stdcall SpidarInitializeController(UINT serialNumber);
44 
45 // SPIDARシステム・コントローラを終了
46 SPIDAR_API BOOL __stdcall SpidarTerminate(UINT serialNumber);
47 
48 //
49 // システム制御(SPIDARシステムとして初期化されている場合のみ有効)
50 //
51 
52 // 力提示のON/OFFの切り替え
53 SPIDAR_API BOOL __stdcall SpidarSetHaptics(UINT serialNumber, BOOL enable);
54 
55 // カスケード制御バネ定数用ゲインの設定
56 SPIDAR_API BOOL __stdcall SpidarSetCascadeGain(UINT serialNumber, FLOAT gain);
57 
58 // SPIDARシステムのメインループ動作開始(LEDが点灯)
59 SPIDAR_API BOOL __stdcall SpidarStart(UINT serialNumber);
60 
61 // SPIDARシステムのメインループ動作停止(LEDが消灯)
62 SPIDAR_API BOOL __stdcall SpidarStop(UINT serialNumber);
63 
64 //
65 // オンライン操作(メインループ動作中のみ有効)
66 //
67 
68 // キャリブレーション実行
69 SPIDAR_API BOOL __stdcall SpidarCalibrate(UINT serialNumber);
70 
71 // グリップの姿勢取得
72 SPIDAR_API BOOL __stdcall SpidarGetPose(UINT serialNumber, Vector3& position, Quaternion& rotation,
73  Vector3& velocity, Vector3& angularVelocity);
74 
75 // エンコーダ値を取得
76 SPIDAR_API BOOL __stdcall SpidarGetEncoderCount(UINT serialNumber, INT(&count)[8]);
77 
78 // 提示力の設定
79 SPIDAR_API BOOL __stdcall SpidarSetForce(UINT serialNumber, const Vector3& force, FLOAT forceK, FLOAT forceB,
80  const Vector3& torque, FLOAT torqueK, FLOAT torqueB, BOOL lerp, BOOL cascade);
81 
82 //
83 // オフライン操作(SPIDARコントローラとして初期化されている場合のみ有効)
84 //
85 
86 // モータ制御のON/OFFの切り替え(LEDが点灯/消灯)
87 SPIDAR_API BOOL __stdcall SpidarEnableMotorControl(UINT serialNumber, BOOL enable);
88 
89 // PWMをパルス幅で設定
90 SPIDAR_API BOOL __stdcall SpidarWritePulseWidth(UINT serialNumber, const UINT(&pulseWidth)[8]);
91 
92 // PWMのパルス幅の最大値を取得
93 SPIDAR_API BOOL __stdcall SpidarGetMaxPulseWidth(UINT serialNumber, UINT& maxPulseWidth);
94 
95 // 生のエンコーダ値を取得(回転方向による+-は調整されていません)
96 SPIDAR_API BOOL __stdcall SpidarReadEncoderCount(UINT serialNumber, INT(&count)[8]);
97 
98 // エンコーダ値をクリア
99 SPIDAR_API BOOL __stdcall SpidarClearEncoderCount(UINT serialNumber);
100 
101 //
102 // その他
103 //
104 
105 // 更新時間間隔を取得
106 SPIDAR_API BOOL __stdcall SpidarGetDeltaTime(UINT serialNumber, FLOAT& deltaTime);
107 
108 // グリップ半径を取得
109 SPIDAR_API BOOL __stdcall SpidarGetGripRadius(UINT serialNumber, FLOAT& gripRadius);
110 
111 // ログ取得の開始
112 SPIDAR_API BOOL __stdcall SpidarStartLog(UINT serialNumber);
113 
114 // GPIOの入力値を取得
115 SPIDAR_API BOOL __stdcall SpidarGetGpioValue(UINT serialNumber, UINT& value);
116 
117 // end of file.
SPIDAR_API BOOL __stdcall SpidarGetPose(UINT serialNumber, Vector3 &position, Quaternion &rotation, Vector3 &velocity, Vector3 &angularVelocity)
グリップの姿勢を取得します.
Definition: Spidar.cpp:274
SPIDAR_API BOOL __stdcall SpidarGetGpioValue(UINT serialNumber, UINT &value)
GPIOの値を取得します.
Definition: Spidar.cpp:477
SPIDAR_API BOOL __stdcall SpidarSetCascadeGain(UINT serialNumber, FLOAT gain)
カスケード制御用ゲインを設定します.
Definition: Spidar.cpp:222
SPIDAR_API BOOL __stdcall SpidarTerminate(UINT serialNumber)
SPIDARを終了します.
Definition: Spidar.cpp:152
SPIDAR_API BOOL __stdcall SpidarStop(UINT serialNumber)
システムの動作を停止します.
Definition: Spidar.cpp:254
SPIDAR_API BOOL __stdcall SpidarEnableMotorControl(UINT serialNumber, BOOL enable)
コントローラ単体での動作状態を変更します.
Definition: Spidar.cpp:375
SPIDAR_API BOOL __stdcall SpidarGetGripRadius(UINT serialNumber, FLOAT &gripRadius)
グリップの半径を取得します.
Definition: Spidar.cpp:519
SPIDAR_API BOOL __stdcall SpidarStart(UINT serialNumber)
システムの動作を開始します.
Definition: Spidar.cpp:238
SPIDAR_API BOOL __stdcall SpidarSetHaptics(UINT serialNumber, BOOL enable)
力覚提示の有無を設定します.
Definition: Spidar.cpp:204
SPIDAR_API BOOL __stdcall SpidarInitializeController(UINT serialNumber)
SPIDARコントローラを初期化します.
Definition: Spidar.cpp:124
SPIDAR_API BOOL __stdcall SpidarGetDeltaTime(UINT serialNumber, FLOAT &deltaTime)
制御周期(実測値)を取得します.
Definition: Spidar.cpp:504
3次元ベクトル型の構造体です.
Definition: Spidar.h:17
SPIDAR_API BOOL __stdcall SpidarCalibrate(UINT serialNumber)
グリップ姿勢のキャリブレーションを実行します.
Definition: Spidar.cpp:188
SPIDAR_API BOOL __stdcall SpidarGetLibraryVersion(UINT &version)
SPIDAR APIのライブラリバージョンを取得します.
Definition: Spidar.cpp:61
SPIDAR_API BOOL __stdcall SpidarGetMaxPulseWidth(UINT serialNumber, UINT &maxPulseWidth)
PWMのパルス幅の最大値を取得します.
Definition: Spidar.cpp:420
SPIDAR_API BOOL __stdcall SpidarClearEncoderCount(UINT serialNumber)
エンコーダ値をクリアします.
Definition: Spidar.cpp:451
SPIDAR_API BOOL __stdcall SpidarWritePulseWidth(UINT serialNumber, const UINT(&pulseWidth)[8])
PWMのパルス幅を書き込みます.
Definition: Spidar.cpp:398
四元数型の構造体です.
Definition: Spidar.h:23
SPIDAR_API BOOL __stdcall SpidarSetForce(UINT serialNumber, const Vector3 &force, FLOAT forceK, FLOAT forceB, const Vector3 &torque, FLOAT torqueK, FLOAT torqueB, BOOL lerp, BOOL cascade)
提示力の目標値を設定します.
Definition: Spidar.cpp:338
SPIDAR_API BOOL __stdcall SpidarGetEncoderCount(UINT serialNumber, INT(&count)[8])
エンコーダ値を取得します.
Definition: Spidar.cpp:315
SPIDAR_API BOOL __stdcall SpidarInitialize(LPCSTR fileName, UINT &serialNumber)
SPIDARシステムを初期化します.
Definition: Spidar.cpp:80
SPIDAR_API BOOL __stdcall SpidarStartLog(UINT serialNumber)
ログの記録を開始します.
Definition: Spidar.cpp:533
SPIDAR_API BOOL __stdcall SpidarReadEncoderCount(UINT serialNumber, INT(&count)[8])
エンコーダ値を読み込みます.
Definition: Spidar.cpp:436