14 #ifdef EV3_SERVO_IMPLEMENT 15 #define EV3_SERVO_VAR( decl ) \ 17 #define EV3_SERVO_VAR_INIT( decl, ... ) \ 23 #define EV3_SERVO_VAR( decl ) \ 25 #define EV3_SERVO_VAR_INIT( decl, ... ) \ 28 #if __GNUC__ && !__GNUC_STDC_INLINE__ 29 #define EV3_SERVO_INL \ 32 #define EV3_SERVO_INL \ 53 #define SERVO_DIR "/sys/class/servo-motor" 66 #define SERVO_DESC__LIMIT_ DESC_LIMIT 68 #define SERVO__NONE_ SERVO_DESC__LIMIT_ 73 EV3_SERVO_VAR( EV3_SERVO ev3_servo[ SERVO_DESC__LIMIT_ ] ); 79 SERVO_TYPE__NONE_ = 0,
91 SERVO_COMMAND__NONE_ = 0,
104 SERVO_POLARITY__NONE_ = 0,
117 SERVO_STATE__NONE_ = 0,
119 SERVO_RUNNING = 0x1L,
504 #undef EV3_SERVO_VAR_INIT const char * ev3_servo_command(INX_T command_inx)
Get name of the specified servo motor command.
Definition: ev3_servo.c:325
size_t set_servo_rate_sp(uint8_t sn, int value)
Write "rate_sp" attribute of the servo motor.
Definition: ev3_servo.c:197
INX_T ev3_servo_desc_type_inx(uint8_t sn)
Get type from the servo motor descriptor.
Definition: ev3_servo.c:263
size_t set_servo_polarity(uint8_t sn, char *value)
Write "polarity" attribute of the servo motor.
Definition: ev3_servo.c:151
size_t set_servo_mid_pulse_sp(uint8_t sn, int value)
Write "mid_pulse_sp" attribute of the servo motor.
Definition: ev3_servo.c:105
bool ev3_search_servo_plugged_in(uint8_t port, uint8_t extport, uint8_t *sn, uint8_t from)
Search of a sequence number the servo motor by plug-in attributes.
Definition: ev3_servo.c:303
size_t get_servo_min_pulse_sp(uint8_t sn, int *buf)
Read "min_pulse_sp" attribute of the servo motor.
Definition: ev3_servo.c:120
size_t set_servo_min_pulse_sp(uint8_t sn, int value)
Write "min_pulse_sp" attribute of the servo motor.
Definition: ev3_servo.c:128
size_t get_servo_command(uint8_t sn, char *buf, size_t sz)
Read "command" attribute of the servo motor.
Definition: ev3_servo.c:43
size_t get_servo_position_sp(uint8_t sn, int *buf)
Read "position_sp" attribute of the servo motor.
Definition: ev3_servo.c:166
size_t set_servo_position_sp(uint8_t sn, int value)
Write "position_sp" attribute of the servo motor.
Definition: ev3_servo.c:174
size_t get_servo_rate_sp(uint8_t sn, int *buf)
Read "rate_sp" attribute of the servo motor.
Definition: ev3_servo.c:189
int ev3_servo_init(void)
Detect connected servo motors.
Definition: ev3_servo.c:409
size_t multi_set_servo_command_inx(uint8_t *sn, INX_T command_inx)
Write "command" attribute of several servo motors by the index.
Definition: ev3_servo.c:354
INX_T get_servo_polarity_inx(uint8_t sn)
Read "polarity" attribute of the servo motor and get the index.
Definition: ev3_servo.c:371
size_t multi_set_servo_min_pulse_sp(uint8_t *sn, int value)
Write "min_pulse_sp" attribute of several servo motors.
Definition: ev3_servo.c:136
size_t get_servo_max_pulse_sp(uint8_t sn, int *buf)
Read "max_pulse_sp" attribute of the servo motor.
Definition: ev3_servo.c:74
uint8_t extport
Definition: ev3_servo.h:61
uint8_t addr
Definition: ev3_servo.h:62
Structure of a servo motor descriptor.
Definition: ev3_servo.h:58
Definition: ev3_servo.h:83
size_t get_servo_state(uint8_t sn, char *buf, size_t sz)
Read "state" attribute of the servo motor.
Definition: ev3_servo.c:212
uint8_t ev3_servo_desc_extport(uint8_t sn)
Get extended port from the servo motor descriptor.
Definition: ev3_servo.c:273
INX_T get_servo_command_inx(uint8_t sn)
Read "command" attribute of the servo motor and get the index.
Definition: ev3_servo.c:337
size_t get_servo_mid_pulse_sp(uint8_t sn, int *buf)
Read "mid_pulse_sp" attribute of the servo motor.
Definition: ev3_servo.c:97
size_t multi_set_servo_polarity_inx(uint8_t *sn, INX_T polarity_inx)
Write "polarity" attribute of several servo motors by the index.
Definition: ev3_servo.c:388
size_t get_servo_polarity(uint8_t sn, char *buf, size_t sz)
Read "polarity" attribute of the servo motor.
Definition: ev3_servo.c:143
bool ev3_search_servo(INX_T type_inx, uint8_t *sn, uint8_t from)
Search of a sequence number of the specified servo motor type.
Definition: ev3_servo.c:288
uint8_t port
Definition: ev3_servo.h:60
INX_T get_servo_type_inx(uint8_t sn)
Read "driver_name" attribute and get index of the servo motor type.
Definition: ev3_servo.c:230
size_t multi_set_servo_position_sp(uint8_t *sn, int value)
Write "position_sp" attribute of several servo motors.
Definition: ev3_servo.c:182
EV3_SERVO * ev3_servo_desc(uint8_t sn)
Get descriptor of the servo motor.
Definition: ev3_servo.c:257
size_t get_servo_desc(uint8_t sn, EV3_SERVO *desc)
Read servo motor attributes that are required for filling the descriptor.
Definition: ev3_servo.c:241
size_t set_servo_command(uint8_t sn, char *value)
Write "command" attribute of the servo motor.
Definition: ev3_servo.c:51
const char * ev3_servo_type(INX_T type_inx)
Get name of the specified servo motor type.
Definition: ev3_servo.c:220
size_t set_servo_command_inx(uint8_t sn, INX_T command_inx)
Write "command" attribute of the servo motor by the index.
Definition: ev3_servo.c:349
size_t get_servo_state_flags(uint8_t sn, FLAGS_T *flags)
Read "state" attribute of the servo motor and get the flags.
Definition: ev3_servo.c:393
uint8_t ev3_servo_desc_addr(uint8_t sn)
Get I2C address from the servo motor descriptor.
Definition: ev3_servo.c:278
size_t multi_set_servo_max_pulse_sp(uint8_t *sn, int value)
Write "max_pulse_sp" attribute of several servo motors.
Definition: ev3_servo.c:90
const char * ev3_servo_polarity(INX_T polarity_inx)
Get name of the specified servo motor polarity.
Definition: ev3_servo.c:359
size_t multi_set_servo_mid_pulse_sp(uint8_t *sn, int value)
Write "mid_pulse_sp" attribute of several servo motors.
Definition: ev3_servo.c:113
size_t multi_set_servo_polarity(uint8_t *sn, char *value)
Write "polarity" attribute of several servo motors.
Definition: ev3_servo.c:159
INX_T type_inx
Definition: ev3_servo.h:59
size_t set_servo_polarity_inx(uint8_t sn, INX_T polarity_inx)
Write "polarity" attribute of the servo motor by the index.
Definition: ev3_servo.c:383
size_t multi_set_servo_rate_sp(uint8_t *sn, int value)
Write "rate_sp" attribute of several servo motors.
Definition: ev3_servo.c:205
size_t set_servo_max_pulse_sp(uint8_t sn, int value)
Write "max_pulse_sp" attribute of the servo motor.
Definition: ev3_servo.c:82
size_t get_servo_address(uint8_t sn, char *buf, size_t sz)
Read "address" attribute of the servo motor.
Definition: ev3_servo.c:35
Definition: ev3_servo.h:96
Definition: ev3_servo.h:109
char * ev3_servo_port_name(uint8_t sn, char *buf)
Assemble EV3 port name from the servo motor descriptor.
Definition: ev3_servo.c:283
size_t get_servo_driver_name(uint8_t sn, char *buf, size_t sz)
Read "driver_name" attribute of the servo motor.
Definition: ev3_servo.c:66
size_t multi_set_servo_command(uint8_t *sn, char *value)
Write "command" attribute of several servo motors.
Definition: ev3_servo.c:59
uint8_t ev3_servo_desc_port(uint8_t sn)
Get EV3 port from the servo motor descriptor.
Definition: ev3_servo.c:268