# Generated from http://dvb.welho.fi/hel5-sidump1.xml # 2016-01-06 15:42:32.073637 [CHANNEL] DELIVERY_SYSTEM = DVBC/ANNEX_A FREQUENCY = 274000000 SYMBOL_RATE = 6900000 INNER_FEC = NONE MODULATION = QAM/128 INVERSION = AUTO [CHANNEL] DELIVERY_SYSTEM = DVBC/ANNEX_A FREQUENCY = 250000000 SYMBOL_RATE = 6900000 INNER_FEC = NONE MODULATION = QAM/256 INVERSION = AUTO [CHANNEL] DELIVERY_SYSTEM = DVBC/ANNEX_A FREQUENCY = 290000000 SYMBOL_RATE = 6900000 INNER_FEC = NONE MODULATION = QAM/256 INVERSION = AUTO [CHANNEL] DELIVERY_SYSTEM = DVBC/ANNEX_A FREQUENCY = 298000000 SYMBOL_RATE = 6900000 INNER_FEC = NONE MODULATION = QAM/256 INVERSION = AUTO [CHANNEL] DELIVERY_SYSTEM = DVBC/ANNEX_A FREQUENCY = 306000000 SYMBOL_RATE = 6900000 INNER_FEC = NONE MODULATION = QAM/256 INVERSION = AUTO [CHANNEL] DELIVERY_SYSTEM = DVBC/ANNEX_A FREQUENCY = 314000000 SYMBOL_RATE = 6900000 INNER_FEC = NONE MODULATION = QAM/256 INVERSION = AUTO [CHANNEL] DELIVERY_SYSTEM = DVBC/ANNEX_A FREQUENCY = 322000000 SYMBOL_RATE = 6900000 INNER_FEC = NONE MODULATION = QAM/256 INVERSION = AUTO [CHANNEL] DELIVERY_SYSTEM = DVBC/ANNEX_A FREQUENCY = 338000000 SYMBOL_RATE = 6900000 INNER_FEC = NONE MODULATION = QAM/256 INVERSION = AUTO [CHANNEL] DELIVERY_SYSTEM = DVBC/ANNEX_A FREQUENCY = 346000000 SYMBOL_RATE = 6900000 INNER_FEC = NONE MODULATION = QAM/256 INVERSION = AUTO [CHANNEL] DELIVERY_SYSTEM = DVBC/ANNEX_A FREQUENCY = 354000000 SYMBOL_RATE = 6900000 INNER_FEC = NONE MODULATION = QAM/256 INVERSION = AUTO [CHANNEL] DELIVERY_SYSTEM = DVBC/ANNEX_A FREQUENCY = 362000000 SYMBOL_RATE = 6900000 INNER_FEC = NONE MODULATION = QAM/256 INVERSION = AUTO [CHANNEL] DELIVERY_SYSTEM = DVBC/ANNEX_A FREQUENCY = 370000000 SYMBOL_RATE = 6900000 INNER_FEC = NONE MODULATION = QAM/256 INVERSION = AUTO [CHANNEL] DELIVERY_SYSTEM = DVBC/ANNEX_A FREQUENCY = 378000000 SYMBOL_RATE = 6900000 INNER_FEC = NONE MODULATION = QAM/256 INVERSION = AUTO [CHANNEL] DELIVERY_SYSTEM = DVBC/ANNEX_A FREQUENCY = 386000000 SYMBOL_RATE = 6900000 INNER_FEC = NONE MODULATION = QAM/256 INVERSION = AUTO [CHANNEL] DELIVERY_SYSTEM = DVBC/ANNEX_A FREQUENCY = 394000000 SYMBOL_RATE = 6900000 INNER_FEC = NONE MODULATION = QAM/256 INVERSION = AUTO [CHANNEL] DELIVERY_SYSTEM = DVBC/ANNEX_A FREQUENCY = 178000000 SYMBOL_RATE = 6900000 INNER_FEC = NONE MODULATION = QAM/256 INVERSION = AUTO [CHANNEL] DELIVERY_SYSTEM = DVBC/ANNEX_A FREQUENCY = 186000000 SYMBOL_RATE = 6900000 INNER_FEC = NONE MODULATION = QAM/256 INVERSION = AUTO [CHANNEL] DELIVERY_SYSTEM = DVBC/ANNEX_A FREQUENCY = 194000000 SYMBOL_RATE = 6900000 INNER_FEC = NONE MODULATION = QAM/256 INVERSION = AUTO [CHANNEL] DELIVERY_SYSTEM = DVBC/ANNEX_A FREQUENCY = 202000000 SYMBOL_RATE = 6900000 INNER_FEC = NONE MODULATION = QAM/256 INVERSION = AUTO [CHANNEL] DELIVERY_SYSTEM = DVBC/ANNEX_A FREQUENCY = 210000000 SYMBOL_RATE = 6900000 INNER_FEC = NONE MODULATION = QAM/256 INVERSION = AUTO [CHANNEL] DELIVERY_SYSTEM = DVBC/ANNEX_A FREQUENCY = 218000000 SYMBOL_RATE = 6900000 INNER_FEC = NONE MODULATION = QAM/256 INVERSION = AUTO [CHANNEL] DELIVERY_SYSTEM = DVBC/ANNEX_A FREQUENCY = 226000000 SYMBOL_RATE = 6900000 INNER_FEC = NONE MODULATION = QAM/256 INVERSION = AUTO [CHANNEL] DELIVERY_SYSTEM = DVBC/ANNEX_A FREQUENCY = 242000000 SYMBOL_RATE = 6900000 INNER_FEC = NONE MODULATION = QAM/256 INVERSION = AUTO [CHANNEL] DELIVERY_SYSTEM = DVBC/ANNEX_A FREQUENCY = 258000000 SYMBOL_RATE = 6900000 INNER_FEC = NONE MODULATION = QAM/256 INVERSION = AUTO [CHANNEL] DELIVERY_SYSTEM = DVBC/ANNEX_A FREQUENCY = 266000000 SYMBOL_RATE = 6900000 INNER_FEC = NONE MODULATION = QAM/256 INVERSION = AUTO [CHANNEL] DELIVERY_SYSTEM = DVBC/ANNEX_A FREQUENCY = 162000000 SYMBOL_RATE = 6900000 INNER_FEC = NONE MODULATION = QAM/256 INVERSION = AUTO [CHANNEL] DELIVERY_SYSTEM = DVBC/ANNEX_A FREQUENCY = 154000000 SYMBOL_RATE = 6900000 INNER_FEC = NONE MODULATION = QAM/256 INVERSION = AUTO [CHANNEL] DELIVERY_SYSTEM = DVBC/ANNEX_A FREQUENCY = 146000000 SYMBOL_RATE = 6900000 INNER_FEC = NONE MODULATION = QAM/256 INVERSION = AUTO [CHANNEL] DELIVERY_SYSTEM = DVBC/ANNEX_A FREQUENCY = 170000000 SYMBOL_RATE = 6900000 INNER_FEC = NONE MODULATION = QAM/256 INVERSION = AUTO #n49'>49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142
#ifndef __CPHIDGETSERVO
#define __CPHIDGETSERVO
#include "cphidget.h"
#include "cphidgetadvancedservo.h"

/** \defgroup phidservo Phidget Servo 
 * \ingroup phidgets
 * Calls specific to the Phidget Servo. See the product manual for more specific API details, supported functionality, units, etc.
 * @{
 */

DPHANDLE(Servo)
CHDRSTANDARD(Servo)

/**
 * Gets the number of motors supported by this controller.
 * @param phid An attached phidget servo handle.
 * @param count The motor count.
 */
CHDRGET(Servo,MotorCount,int *count)

/**
 * Gets the current position of a motor.
 * @param phid An attached phidget servo handle.
 * @param index The motor index.
 * @param position The motor position.
 */
CHDRGETINDEX(Servo,Position,double *position)
/**
 * Sets the current position of a motor.
 * @param phid An attached phidget servo handle.
 * @param index The motor index.
 * @param position The motor position.
 */
CHDRSETINDEX(Servo,Position,double position)
/**
 * Gets the maximum position that a motor can be set to.
 * @param phid An attached phidget servo handle.
 * @param index The motor index.
 * @param max The maximum position.
 */
CHDRGETINDEX(Servo,PositionMax,double *max)
/**
 * Gets the minimum position that a motor can be set to.
 * @param phid An attached phidget servo handle.
 * @param index The motor index.
 * @param min The minimum position.
 */
CHDRGETINDEX(Servo,PositionMin,double *min)
/**
 * Sets a position change event handler. This is called when the position changes.
 * @param phid An attached phidget servo handle
 * @param fptr Callback function pointer.
 * @param userPtr A pointer for use by the user - this value is passed back into the callback function.
 */
CHDREVENTINDEX(Servo,PositionChange,double position)
/**
 * Gets the engaged state of a motor. This is whether the motor is powered or not.
 * @param phid An attached phidget servo handle
 * @param index The motor index.
 * @param engagedState The engaged state. Possible values are \ref PTRUE and \ref PFALSE.
 */
CHDRGETINDEX(Servo,Engaged,int *engagedState)
/**
 * Sets the engaged state of a motor. This is whether the motor is powered or not.
 * @param phid An attached phidget servo handle
 * @param index The motor index.
 * @param engagedState The engaged state. Possible values are \ref PTRUE and \ref PFALSE.
 */
CHDRSETINDEX(Servo,Engaged,int engagedState)
/**
 * Gets the servo type of a motor.
 * @param phid An attached phidget advanced servo handle
 * @param index The motor index.
 * @param servoType The servo type.
 */
CHDRGETINDEX(Servo,ServoType,CPhidget_ServoType *servoType)
/**
 * Sets the servo type of a motor.
 * @param phid An attached phidget advanced servo handle
 * @param index The motor index.
 * @param servoType The servo type.
 */
CHDRSETINDEX(Servo,ServoType,CPhidget_ServoType servoType)
/**
 * Sets the servo parameters of a motor.
 * @param phid An attached phidget advanced servo handle
 * @param index The motor index.
 * @param min_us The minimum supported PCM in microseconds.
 * @param max_us The maximum supported PCM in microseconds.
 * @param degrees The degrees of rotation defined by the given PCM range.
 */
CHDRSETINDEX(Servo,ServoParameters,double min_us,double max_us,double degrees)

#ifndef REMOVE_DEPRECATED
DEP_CHDRGET("Deprecated - use CPhidgetServo_getMotorCount",Servo,NumMotors,int *)
DEP_CHDRSETINDEX("Deprecated - use CPhidgetServo_setPosition",Servo,MotorPosition,double)
DEP_CHDRGETINDEX("Deprecated - use CPhidgetServo_getPosition",Servo,MotorPosition,double *)
DEP_CHDRGETINDEX("Deprecated - use CPhidgetServo_getPositionMax",Servo,MotorPositionMax,double *)
DEP_CHDRGETINDEX("Deprecated - use CPhidgetServo_getPositionMin",Servo,MotorPositionMin,double *)
DEP_CHDREVENTINDEX("Deprecated - use CPhidgetServo_set_OnPositionChange_Handler",Servo,MotorPositionChange,double motorPosition)
DEP_CHDRSETINDEX("Deprecated - use CPhidgetServo_setEngaged",Servo,MotorOn,int)
DEP_CHDRGETINDEX("Deprecated - use CPhidgetServo_getEngaged",Servo,MotorOn,int *)
#endif

#ifndef EXTERNALPROTO

PHIDGET21_API int CCONV setupNewServoParams(CPhidgetServoHandle phid, int Index, CPhidgetServoParameters params);

#define SERVO_MAXSERVOS 4
struct _CPhidgetServo {
	CPhidget phid;

	int (CCONV *fptrPositionChange)(CPhidgetServoHandle, void *, int, double);           
	void *fptrPositionChangeptr;

	//Deprecated
	int (CCONV *fptrMotorPositionChange)(CPhidgetServoHandle, void *, int, double);           
	void *fptrMotorPositionChangeptr;

	double motorPositionEcho[SERVO_MAXSERVOS];
	unsigned char motorEngagedStateEcho[SERVO_MAXSERVOS];

	double motorPosition[SERVO_MAXSERVOS];
	unsigned char motorEngagedState[SERVO_MAXSERVOS];

	unsigned char fullStateEcho;

	double motorPositionMax[SERVO_MAXSERVOS], motorPositionMin[SERVO_MAXSERVOS];
	double motorPositionMaxLimit, motorPositionMinLimit;

	CPhidgetServoParameters servoParams[ADVSERVO_MAXSERVOS];
	char *servoParamString[ADVSERVO_MAXSERVOS];

	unsigned char outputPacket[8];
	unsigned int outputPacketLen;
} typedef CPhidgetServoInfo;
#endif

/** @} */

#endif