aboutsummaryrefslogtreecommitdiffstats
path: root/Java/com_phidgets_AdvancedServoPhidget.c
blob: 960ce29982064c5219626b6828baf2883204be88 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include "../stdafx.h"
#include "phidget_jni.h"
#include "com_phidgets_AdvancedServoPhidget.h"
#include "../cphidgetadvancedservo.h"

EVENT_VARS(servoPositionChange, ServoPositionChange)
EVENT_VARS(servoVelocityChange, ServoVelocityChange)
EVENT_VARS(currentChange, CurrentChange)

JNI_LOAD(advservo, AdvancedServo)
	EVENT_VAR_SETUP(advservo, servoPositionChange, ServoPositionChange, ID, V)
	EVENT_VAR_SETUP(advservo, servoVelocityChange, ServoVelocityChange, ID, V)
	EVENT_VAR_SETUP(advservo, currentChange, CurrentChange, ID, V)
}

EVENT_HANDLER_INDEXED(AdvancedServo, servoPositionChange, ServoPositionChange, 
					  CPhidgetAdvancedServo_set_OnPositionChange_Handler, double)
EVENT_HANDLER_INDEXED(AdvancedServo, servoVelocityChange, ServoVelocityChange, 
					  CPhidgetAdvancedServo_set_OnVelocityChange_Handler, double)
EVENT_HANDLER_INDEXED(AdvancedServo, currentChange, CurrentChange, 
					  CPhidgetAdvancedServo_set_OnCurrentChange_Handler, double)

JNI_CREATE(AdvancedServo)
JNI_INDEXED_GETFUNC(AdvancedServo, Acceleration, Acceleration, jdouble)
JNI_INDEXED_SETFUNC(AdvancedServo, Acceleration, Acceleration, jdouble)
JNI_INDEXED_GETFUNC(AdvancedServo, AccelerationMin, AccelerationMin, jdouble)
JNI_INDEXED_GETFUNC(AdvancedServo, AccelerationMax, AccelerationMax, jdouble)
JNI_INDEXED_GETFUNC(AdvancedServo, VelocityLimit, VelocityLimit, jdouble)
JNI_INDEXED_SETFUNC(AdvancedServo, VelocityLimit, VelocityLimit, jdouble)
JNI_INDEXED_GETFUNC(AdvancedServo, Velocity, Velocity, jdouble)
JNI_INDEXED_GETFUNC(AdvancedServo, VelocityMin, VelocityMin, jdouble)
JNI_INDEXED_GETFUNC(AdvancedServo, VelocityMax, VelocityMax, jdouble)
JNI_INDEXED_GETFUNC(AdvancedServo, Position, Position, jdouble)
JNI_INDEXED_SETFUNC(AdvancedServo, Position, Position, jdouble)
JNI_INDEXED_GETFUNC(AdvancedServo, PositionMin, PositionMin, jdouble)
JNI_INDEXED_GETFUNC(AdvancedServo, PositionMax, PositionMax, jdouble)
JNI_INDEXED_SETFUNC(AdvancedServo, PositionMin, PositionMin, jdouble)
JNI_INDEXED_SETFUNC(AdvancedServo, PositionMax, PositionMax, jdouble)
JNI_INDEXED_GETFUNCBOOL(AdvancedServo, Engaged, Engaged)
JNI_INDEXED_SETFUNC(AdvancedServo, Engaged, Engaged, jboolean)
JNI_INDEXED_GETFUNCBOOL(AdvancedServo, Stopped, Stopped)
JNI_INDEXED_GETFUNCBOOL(AdvancedServo, SpeedRampingOn, SpeedRampingOn)
JNI_INDEXED_SETFUNC(AdvancedServo, SpeedRampingOn, SpeedRampingOn, jboolean)
JNI_INDEXED_GETFUNC(AdvancedServo, Current, Current, jdouble)
JNIEXPORT jint JNICALL
Java_com_phidgets_AdvancedServoPhidget_getServoType(JNIEnv *env, jobject obj, jint index)
{
	CPhidgetAdvancedServoHandle h = (CPhidgetAdvancedServoHandle)(uintptr_t)
	    (*env)->GetLongField(env, obj, handle_fid);
	int error;
	CPhidget_ServoType v;
	if ((error = CPhidgetAdvancedServo_getServoType(h, index, &v)))
		PH_THROW(error);
	return (jint)v;
}
JNI_INDEXED_SETFUNC(AdvancedServo, ServoType, ServoType, jint)
JNIEXPORT void JNICALL
Java_com_phidgets_AdvancedServoPhidget_setServoParameters(JNIEnv *env, jobject obj, jint index, jdouble minUs, jdouble maxUs, jdouble degrees, jdouble velocityMax)
{
	CPhidgetAdvancedServoHandle h = (CPhidgetAdvancedServoHandle)(uintptr_t)
	    (*env)->GetLongField(env, obj, handle_fid);
	int error;
	if ((error = CPhidgetAdvancedServo_setServoParameters(h, index, minUs, maxUs, degrees, velocityMax)))
		PH_THROW(error);
}
JNI_GETFUNC(AdvancedServo, MotorCount, MotorCount, jint)