Data Structures | Macros | Enumerations | Functions
ev3_dc.h File Reference

EV3 DC Motors. More...

#include <stddef.h>
#include <stdint.h>
#include <stdbool.h>

Go to the source code of this file.

Data Structures

struct  EV3_DC
 Structure of a DC motor descriptor. More...
 

Macros

#define EV3_DC_VAR(decl)   extern decl
 
#define EV3_DC_VAR_INIT(decl, ...)   extern decl
 
#define EV3_DC_INL   inline
 
#define DC_DIR   "/sys/class/dc-motor"
 
#define DC_DESC__LIMIT_   DESC_LIMIT
 
#define DC__NONE_   DC_DESC__LIMIT_
 

Enumerations

enum  { DC_TYPE__NONE_ = 0, RCX_MOTOR, DC_TYPE__COUNT_, DC_TYPE__UNKNOWN_ = DC_TYPE__COUNT_ }
 Identifiers of DC motor types. More...
 
enum  {
  DC_COMMAND__NONE_ = 0, DC_RUN_FOREVER, DC_RUN_TIMED, DC_RUN_DIRECT,
  DC_STOP, DC_COMMAND__COUNT_, DC_COMMAND__UNKNOWN_ = DC_COMMAND__COUNT_
}
 Common identifiers of DC motor "command" attribute. More...
 
enum  {
  DC_POLARITY__NONE_ = 0, DC_NORMAL, DC_INVERSED, DC_POLARITY__COUNT_,
  DC_POLARITY__UNKNOWN_ = DC_POLARITY__COUNT_
}
 Common identifiers of DC motor "polarity" attribute. More...
 
enum  {
  DC_STOP_ACTION__NONE_ = 0, DC_COAST, DC_BRAKE, DC_STOP_ACTION__COUNT_,
  DC_STOP_ACTION__UNKNOWN_ = DC_STOP_ACTION__COUNT_
}
 Common identifiers of DC motor "stop_action" attribute. More...
 
enum  { DC_STATE__NONE_ = 0, DC_RUNNING = 0x1L, DC_RAMPING = 0x2L }
 Common identifiers of DC motor "state" attribute.
 

Functions

 EV3_DC_VAR (EV3_DC ev3_dc[DC_DESC__LIMIT_])
 Vector of DC motor descriptors (filled by ev3_dc_init).
 
size_t get_dc_address (uint8_t sn, char *buf, size_t sz)
 Read "address" attribute of the DC motor. More...
 
size_t set_dc_command (uint8_t sn, char *value)
 Write "command" attribute of the DC motor. More...
 
size_t multi_set_dc_command (uint8_t *sn, char *value)
 Write "command" attribute of several DC motors. More...
 
size_t get_dc_commands (uint8_t sn, char *buf, size_t sz)
 Read "commands" attribute of the DC motor. More...
 
size_t get_dc_driver_name (uint8_t sn, char *buf, size_t sz)
 Read "driver_name" attribute of the DC motor. More...
 
size_t get_dc_duty_cycle (uint8_t sn, int *buf)
 Read "duty_cycle" attribute of the DC motor. More...
 
size_t get_dc_duty_cycle_sp (uint8_t sn, int *buf)
 Read "duty_cycle_sp" attribute of the DC motor. More...
 
size_t set_dc_duty_cycle_sp (uint8_t sn, int value)
 Write "duty_cycle_sp" attribute of the DC motor. More...
 
size_t multi_set_dc_duty_cycle_sp (uint8_t *sn, int value)
 Write "duty_cycle_sp" attribute of several DC motors. More...
 
size_t get_dc_polarity (uint8_t sn, char *buf, size_t sz)
 Read "polarity" attribute of the DC motor. More...
 
size_t set_dc_polarity (uint8_t sn, char *value)
 Write "polarity" attribute of the DC motor. More...
 
size_t multi_set_dc_polarity (uint8_t *sn, char *value)
 Write "polarity" attribute of several DC motors. More...
 
size_t get_dc_state (uint8_t sn, char *buf, size_t sz)
 Read "state" attribute of the DC motor. More...
 
size_t set_dc_stop_action (uint8_t sn, char *value)
 Write "stop_action" attribute of the DC motor. More...
 
size_t multi_set_dc_stop_action (uint8_t *sn, char *value)
 Write "stop_action" attribute of several DC motors. More...
 
size_t get_dc_stop_actions (uint8_t sn, char *buf, size_t sz)
 Read "stop_actions" attribute of the DC motor. More...
 
size_t get_dc_ramp_down_sp (uint8_t sn, int *buf)
 Read "ramp_down_sp" attribute of the DC motor. More...
 
size_t set_dc_ramp_down_sp (uint8_t sn, int value)
 Write "ramp_down_sp" attribute of the DC motor. More...
 
size_t multi_set_dc_ramp_down_sp (uint8_t *sn, int value)
 Write "ramp_down_sp" attribute of several DC motors. More...
 
size_t get_dc_ramp_up_sp (uint8_t sn, int *buf)
 Read "ramp_up_sp" attribute of the DC motor. More...
 
size_t set_dc_ramp_up_sp (uint8_t sn, int value)
 Write "ramp_up_sp" attribute of the DC motor. More...
 
size_t multi_set_dc_ramp_up_sp (uint8_t *sn, int value)
 Write "ramp_up_sp" attribute of several DC motors. More...
 
size_t get_dc_time_sp (uint8_t sn, int *buf)
 Read "time_sp" attribute of the DC motor. More...
 
size_t set_dc_time_sp (uint8_t sn, int value)
 Write "time_sp" attribute of the DC motor. More...
 
size_t multi_set_dc_time_sp (uint8_t *sn, int value)
 Write "time_sp" attribute of several DC motors. More...
 
const char * ev3_dc_type (INX_T type_inx)
 Get name of the specified DC motor type. More...
 
INX_T get_dc_type_inx (uint8_t sn)
 Read "driver_name" attribute and get index of the DC motor type. More...
 
size_t get_dc_desc (uint8_t sn, EV3_DC *desc)
 Read DC motor attributes that are required for filling the descriptor. More...
 
EV3_DCev3_dc_desc (uint8_t sn)
 Get descriptor of the DC motor. More...
 
INX_T ev3_dc_desc_type_inx (uint8_t sn)
 Get type from the DC motor descriptor. More...
 
uint8_t ev3_dc_desc_port (uint8_t sn)
 Get EV3 port from the DC motor descriptor. More...
 
uint8_t ev3_dc_desc_extport (uint8_t sn)
 Get extended port from the DC motor descriptor. More...
 
char * ev3_dc_port_name (uint8_t sn, char *buf)
 Assemble EV3 port name from the DC motor descriptor. More...
 
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. More...
 
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. More...
 
const char * ev3_dc_command (INX_T command_inx)
 Get name of the specified DC motor command. More...
 
size_t set_dc_command_inx (uint8_t sn, INX_T command_inx)
 Write "command" attribute of the DC motor by the index. More...
 
size_t multi_set_dc_command_inx (uint8_t *sn, INX_T command_inx)
 Write "command" attribute of several DC motors by the index. More...
 
const char * ev3_dc_polarity (INX_T polarity_inx)
 Get name of the specified DC motor polarity. More...
 
INX_T get_dc_polarity_inx (uint8_t sn)
 Read "polarity" attribute of the DC motor and get the index. More...
 
size_t set_dc_polarity_inx (uint8_t sn, INX_T polarity_inx)
 Write "polarity" attribute of the DC motor by the index. More...
 
size_t multi_set_dc_polarity_inx (uint8_t *sn, INX_T polarity_inx)
 Write "polarity" attribute of several DC motors by the index. More...
 
const char * ev3_dc_stop_action (INX_T stop_action_inx)
 Get name of the specified DC motor stop_action. More...
 
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. More...
 
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. More...
 
size_t get_dc_state_flags (uint8_t sn, FLAGS_T *flags)
 Read "state" attribute of the DC motor and get the flags. More...
 
int ev3_dc_init (void)
 Detect connected DC motors. More...
 

Detailed Description

EV3 DC Motors.

(ev3_dc.yu-h)

Author
Vitaly Kravtsov (in4li.nosp@m.o@gm.nosp@m.ail.c.nosp@m.om)