14 #ifdef EV3_DC_IMPLEMENT 15 #define EV3_DC_VAR( decl ) \ 17 #define EV3_DC_VAR_INIT( decl, ... ) \ 23 #define EV3_DC_VAR( decl ) \ 25 #define EV3_DC_VAR_INIT( decl, ... ) \ 28 #if __GNUC__ && !__GNUC_STDC_INLINE__ 54 #define DC_DIR "/sys/class/dc-motor" 66 #define DC_DESC__LIMIT_ DESC_LIMIT 68 #define DC__NONE_ DC_DESC__LIMIT_ 73 EV3_DC_VAR( EV3_DC ev3_dc[ DC_DESC__LIMIT_ ] ); 91 DC_COMMAND__NONE_ = 0,
106 DC_POLARITY__NONE_ = 0,
119 DC_STOP_ACTION__NONE_ = 0,
254 extern size_t get_dc_state( uint8_t sn,
char *buf,
size_t sz );
429 extern bool ev3_search_dc( INX_T type_inx, uint8_t *sn, uint8_t from );
538 #undef EV3_DC_VAR_INIT size_t get_dc_polarity(uint8_t sn, char *buf, size_t sz)
Read "polarity" attribute of the DC motor.
Definition: ev3_dc.c:108
size_t multi_set_dc_duty_cycle_sp(uint8_t *sn, int value)
Write "duty_cycle_sp" attribute of several DC motors.
Definition: ev3_dc.c:101
bool ev3_search_dc_plugged_in(uint8_t port, uint8_t extport, uint8_t *sn, uint8_t from)
Search of a sequence number the DC motor by plug-in attributes.
Definition: ev3_dc.c:308
INX_T ev3_dc_desc_type_inx(uint8_t sn)
Get type from the DC motor descriptor.
Definition: ev3_dc.c:273
size_t set_dc_time_sp(uint8_t sn, int value)
Write "time_sp" attribute of the DC motor.
Definition: ev3_dc.c:216
size_t set_dc_stop_action(uint8_t sn, char *value)
Write "stop_action" attribute of the DC motor.
Definition: ev3_dc.c:139
int ev3_dc_init(void)
Detect connected DC motors.
Definition: ev3_dc.c:429
size_t multi_set_dc_polarity_inx(uint8_t *sn, INX_T polarity_inx)
Write "polarity" attribute of several DC motors by the index.
Definition: ev3_dc.c:385
const char * ev3_dc_stop_action(INX_T stop_action_inx)
Get name of the specified DC motor stop_action.
Definition: ev3_dc.c:390
size_t set_dc_stop_action_inx(uint8_t sn, INX_T stop_action_inx)
Write "stop_action" attribute of the DC motor by the index.
Definition: ev3_dc.c:402
size_t set_dc_command_inx(uint8_t sn, INX_T command_inx)
Write "command" attribute of the DC motor by the index.
Definition: ev3_dc.c:346
size_t set_dc_command(uint8_t sn, char *value)
Write "command" attribute of the DC motor.
Definition: ev3_dc.c:46
size_t get_dc_state(uint8_t sn, char *buf, size_t sz)
Read "state" attribute of the DC motor.
Definition: ev3_dc.c:131
size_t set_dc_polarity_inx(uint8_t sn, INX_T polarity_inx)
Write "polarity" attribute of the DC motor by the index.
Definition: ev3_dc.c:380
size_t multi_set_dc_command_inx(uint8_t *sn, INX_T command_inx)
Write "command" attribute of several DC motors by the index.
Definition: ev3_dc.c:351
size_t multi_set_dc_polarity(uint8_t *sn, char *value)
Write "polarity" attribute of several DC motors.
Definition: ev3_dc.c:124
EV3_DC * ev3_dc_desc(uint8_t sn)
Get descriptor of the DC motor.
Definition: ev3_dc.c:267
const char * ev3_dc_polarity(INX_T polarity_inx)
Get name of the specified DC motor polarity.
Definition: ev3_dc.c:356
bool ev3_search_dc(INX_T type_inx, uint8_t *sn, uint8_t from)
Search of a sequence number of the specified DC motor type.
Definition: ev3_dc.c:293
size_t get_dc_duty_cycle(uint8_t sn, int *buf)
Read "duty_cycle" attribute of the DC motor.
Definition: ev3_dc.c:77
INX_T type_inx
Definition: ev3_dc.h:60
INX_T get_dc_type_inx(uint8_t sn)
Read "driver_name" attribute and get index of the DC motor type.
Definition: ev3_dc.c:241
size_t set_dc_ramp_up_sp(uint8_t sn, int value)
Write "ramp_up_sp" attribute of the DC motor.
Definition: ev3_dc.c:193
size_t get_dc_time_sp(uint8_t sn, int *buf)
Read "time_sp" attribute of the DC motor.
Definition: ev3_dc.c:208
size_t multi_set_dc_time_sp(uint8_t *sn, int value)
Write "time_sp" attribute of several DC motors.
Definition: ev3_dc.c:224
size_t set_dc_duty_cycle_sp(uint8_t sn, int value)
Write "duty_cycle_sp" attribute of the DC motor.
Definition: ev3_dc.c:93
size_t multi_set_dc_stop_action_inx(uint8_t *sn, INX_T stop_action_inx)
Write "stop_action" attribute of several DC motors by the index.
Definition: ev3_dc.c:407
size_t get_dc_ramp_up_sp(uint8_t sn, int *buf)
Read "ramp_up_sp" attribute of the DC motor.
Definition: ev3_dc.c:185
size_t multi_set_dc_ramp_down_sp(uint8_t *sn, int value)
Write "ramp_down_sp" attribute of several DC motors.
Definition: ev3_dc.c:178
uint8_t ev3_dc_desc_port(uint8_t sn)
Get EV3 port from the DC motor descriptor.
Definition: ev3_dc.c:278
size_t set_dc_ramp_down_sp(uint8_t sn, int value)
Write "ramp_down_sp" attribute of the DC motor.
Definition: ev3_dc.c:170
size_t get_dc_driver_name(uint8_t sn, char *buf, size_t sz)
Read "driver_name" attribute of the DC motor.
Definition: ev3_dc.c:69
size_t get_dc_state_flags(uint8_t sn, FLAGS_T *flags)
Read "state" attribute of the DC motor and get the flags.
Definition: ev3_dc.c:412
size_t get_dc_ramp_down_sp(uint8_t sn, int *buf)
Read "ramp_down_sp" attribute of the DC motor.
Definition: ev3_dc.c:162
size_t multi_set_dc_command(uint8_t *sn, char *value)
Write "command" attribute of several DC motors.
Definition: ev3_dc.c:54
size_t multi_set_dc_ramp_up_sp(uint8_t *sn, int value)
Write "ramp_up_sp" attribute of several DC motors.
Definition: ev3_dc.c:201
size_t get_dc_stop_actions(uint8_t sn, char *buf, size_t sz)
Read "stop_actions" attribute of the DC motor.
Definition: ev3_dc.c:154
const char * ev3_dc_command(INX_T command_inx)
Get name of the specified DC motor command.
Definition: ev3_dc.c:330
uint8_t extport
Definition: ev3_dc.h:62
size_t get_dc_desc(uint8_t sn, EV3_DC *desc)
Read DC motor attributes that are required for filling the descriptor.
Definition: ev3_dc.c:252
size_t set_dc_polarity(uint8_t sn, char *value)
Write "polarity" attribute of the DC motor.
Definition: ev3_dc.c:116
size_t get_dc_address(uint8_t sn, char *buf, size_t sz)
Read "address" attribute of the DC motor.
Definition: ev3_dc.c:38
uint8_t port
Definition: ev3_dc.h:61
uint8_t ev3_dc_desc_extport(uint8_t sn)
Get extended port from the DC motor descriptor.
Definition: ev3_dc.c:283
char * ev3_dc_port_name(uint8_t sn, char *buf)
Assemble EV3 port name from the DC motor descriptor.
Definition: ev3_dc.c:288
size_t get_dc_duty_cycle_sp(uint8_t sn, int *buf)
Read "duty_cycle_sp" attribute of the DC motor.
Definition: ev3_dc.c:85
INX_T get_dc_polarity_inx(uint8_t sn)
Read "polarity" attribute of the DC motor and get the index.
Definition: ev3_dc.c:368
size_t multi_set_dc_stop_action(uint8_t *sn, char *value)
Write "stop_action" attribute of several DC motors.
Definition: ev3_dc.c:147
size_t get_dc_commands(uint8_t sn, char *buf, size_t sz)
Read "commands" attribute of the DC motor.
Definition: ev3_dc.c:61
Structure of a DC motor descriptor.
Definition: ev3_dc.h:59
const char * ev3_dc_type(INX_T type_inx)
Get name of the specified DC motor type.
Definition: ev3_dc.c:231