// Autogenerated C header file for Servo
#ifndef _JACDAC_SPEC_SERVO_H
#define _JACDAC_SPEC_SERVO_H 1

#define JD_SERVICE_CLASS_SERVO  0x12fc9103

/**
 * Read-write ° i16.16 (int32_t). Specifies the angle of the arm (request).
 */
#define JD_SERVO_REG_ANGLE JD_REG_VALUE

/**
 * Read-write bool (uint8_t). Turn the power to the servo on/off.
 */
#define JD_SERVO_REG_ENABLED JD_REG_INTENSITY

/**
 * Read-write ° i16.16 (int32_t). Correction applied to the angle to account for the servo arm drift.
 */
#define JD_SERVO_REG_OFFSET 0x81

/**
 * Constant ° i16.16 (int32_t). Lowest angle that can be set, typically 0 °.
 */
#define JD_SERVO_REG_MIN_ANGLE JD_REG_MIN_VALUE

/**
 * Read-write μs uint16_t. The length of pulse corresponding to lowest angle.
 */
#define JD_SERVO_REG_MIN_PULSE 0x83

/**
 * Constant ° i16.16 (int32_t). Highest angle that can be set, typically 180°.
 */
#define JD_SERVO_REG_MAX_ANGLE JD_REG_MAX_VALUE

/**
 * Read-write μs uint16_t. The length of pulse corresponding to highest angle.
 */
#define JD_SERVO_REG_MAX_PULSE 0x85

/**
 * Constant kg/cm u16.16 (uint32_t). The servo motor will stop rotating when it is trying to move a `stall_torque` weight at a radial distance of `1.0` cm.
 */
#define JD_SERVO_REG_STALL_TORQUE 0x180

/**
 * Constant s/60° u16.16 (uint32_t). Time to move 60°.
 */
#define JD_SERVO_REG_RESPONSE_SPEED 0x181

/**
 * Read-only ° i16.16 (int32_t). The current physical position of the arm, if the device has a way to sense the position.
 */
#define JD_SERVO_REG_ACTUAL_ANGLE JD_REG_READING

#endif
