// Autogenerated C header file for Dual Motors
#ifndef _JACDAC_SPEC_DUAL_MOTORS_H
#define _JACDAC_SPEC_DUAL_MOTORS_H 1

#define JD_SERVICE_CLASS_DUAL_MOTORS  0x1529d537

/**
 * Relative speed of the motors. Use positive/negative values to run the motor forwards and backwards.
 * A speed of ``0`` while ``enabled`` acts as brake.
 */
#define JD_DUAL_MOTORS_REG_SPEED JD_REG_VALUE
typedef struct jd_dual_motors_speed {
    int16_t left;  // ratio i1.15
    int16_t right;  // ratio i1.15
} jd_dual_motors_speed_t;


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

/**
 * Constant kg/cm u16.16 (uint32_t). Torque required to produce the rated power of an each electrical motor at load speed.
 */
#define JD_DUAL_MOTORS_REG_LOAD_TORQUE 0x180

/**
 * Constant rpm u16.16 (uint32_t). Revolutions per minute of the motor under full load.
 */
#define JD_DUAL_MOTORS_REG_LOAD_ROTATION_SPEED 0x181

/**
 * Constant bool (uint8_t). Indicates if the motors can run backwards.
 */
#define JD_DUAL_MOTORS_REG_REVERSIBLE 0x182

#endif
