Macros | Functions
ev3_tacho.c File Reference

EV3 Tacho Motors. More...

#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include "modp_numtoa.h"
#include "ev3.h"
#include "ev3_port.h"
#include "ev3_tacho.h"

Macros

#define EV3_TACHO_IMPLEMENT
 
#define PATH_PREF_LEN   28
 
#define DESC_SPOT   "///"
 
#define PATH_ADDRESS   "/sys/class/tacho-motor/motor" DESC_SPOT "address"
 
#define PATH_COMMAND   "/sys/class/tacho-motor/motor" DESC_SPOT "command"
 
#define PATH_COMMANDS   "/sys/class/tacho-motor/motor" DESC_SPOT "commands"
 
#define PATH_COUNT_PER_ROT   "/sys/class/tacho-motor/motor" DESC_SPOT "count_per_rot"
 
#define PATH_COUNT_PER_M   "/sys/class/tacho-motor/motor" DESC_SPOT "count_per_m"
 
#define PATH_FULL_TRAVEL_COUNT   "/sys/class/tacho-motor/motor" DESC_SPOT "full_travel_count"
 
#define PATH_DRIVER_NAME   "/sys/class/tacho-motor/motor" DESC_SPOT "driver_name"
 
#define PATH_DUTY_CYCLE   "/sys/class/tacho-motor/motor" DESC_SPOT "duty_cycle"
 
#define PATH_DUTY_CYCLE_SP   "/sys/class/tacho-motor/motor" DESC_SPOT "duty_cycle_sp"
 
#define PATH_HOLD_PID_KD   "/sys/class/tacho-motor/motor" DESC_SPOT "hold_pid/Kd"
 
#define PATH_HOLD_PID_KI   "/sys/class/tacho-motor/motor" DESC_SPOT "hold_pid/Ki"
 
#define PATH_HOLD_PID_KP   "/sys/class/tacho-motor/motor" DESC_SPOT "hold_pid/Kp"
 
#define PATH_MAX_SPEED   "/sys/class/tacho-motor/motor" DESC_SPOT "max_speed"
 
#define PATH_POLARITY   "/sys/class/tacho-motor/motor" DESC_SPOT "polarity"
 
#define PATH_POSITION   "/sys/class/tacho-motor/motor" DESC_SPOT "position"
 
#define PATH_POSITION_SP   "/sys/class/tacho-motor/motor" DESC_SPOT "position_sp"
 
#define PATH_RAMP_DOWN_SP   "/sys/class/tacho-motor/motor" DESC_SPOT "ramp_down_sp"
 
#define PATH_RAMP_UP_SP   "/sys/class/tacho-motor/motor" DESC_SPOT "ramp_up_sp"
 
#define PATH_SPEED   "/sys/class/tacho-motor/motor" DESC_SPOT "speed"
 
#define PATH_SPEED_PID_KD   "/sys/class/tacho-motor/motor" DESC_SPOT "speed_pid/Kd"
 
#define PATH_SPEED_PID_KI   "/sys/class/tacho-motor/motor" DESC_SPOT "speed_pid/Ki"
 
#define PATH_SPEED_PID_KP   "/sys/class/tacho-motor/motor" DESC_SPOT "speed_pid/Kp"
 
#define PATH_SPEED_SP   "/sys/class/tacho-motor/motor" DESC_SPOT "speed_sp"
 
#define PATH_STATE   "/sys/class/tacho-motor/motor" DESC_SPOT "state"
 
#define PATH_STOP_ACTION   "/sys/class/tacho-motor/motor" DESC_SPOT "stop_action"
 
#define PATH_STOP_ACTIONS   "/sys/class/tacho-motor/motor" DESC_SPOT "stop_actions"
 
#define PATH_TIME_SP   "/sys/class/tacho-motor/motor" DESC_SPOT "time_sp"
 

Functions

size_t get_tacho_address (uint8_t sn, char *buf, size_t sz)
 Read "address" attribute of the tacho. More...
 
size_t set_tacho_command (uint8_t sn, char *value)
 Write "command" attribute of the tacho. More...
 
size_t multi_set_tacho_command (uint8_t *sn, char *value)
 Write "command" attribute of several tachos. More...
 
size_t get_tacho_commands (uint8_t sn, char *buf, size_t sz)
 Read "commands" attribute of the tacho. More...
 
size_t get_tacho_count_per_rot (uint8_t sn, int *buf)
 Read "count_per_rot" attribute of the tacho. More...
 
size_t get_tacho_count_per_m (uint8_t sn, int *buf)
 Read "count_per_m" attribute of the tacho. More...
 
size_t get_tacho_full_travel_count (uint8_t sn, int *buf)
 Read "full_travel_count" attribute of the tacho. More...
 
size_t get_tacho_driver_name (uint8_t sn, char *buf, size_t sz)
 Read "driver_name" attribute of the tacho. More...
 
size_t get_tacho_duty_cycle (uint8_t sn, int *buf)
 Read "duty_cycle" attribute of the tacho. More...
 
size_t get_tacho_duty_cycle_sp (uint8_t sn, int *buf)
 Read "duty_cycle_sp" attribute of the tacho. More...
 
size_t set_tacho_duty_cycle_sp (uint8_t sn, int value)
 Write "duty_cycle_sp" attribute of the tacho. More...
 
size_t multi_set_tacho_duty_cycle_sp (uint8_t *sn, int value)
 Write "duty_cycle_sp" attribute of several tachos. More...
 
size_t get_tacho_hold_pid_Kd (uint8_t sn, int *buf)
 Read "hold_pid/Kd" attribute of the tacho. More...
 
size_t set_tacho_hold_pid_Kd (uint8_t sn, int value)
 Write "hold_pid/Kd" attribute of the tacho. More...
 
size_t multi_set_tacho_hold_pid_Kd (uint8_t *sn, int value)
 Write "hold_pid/Kd" attribute of several tachos. More...
 
size_t get_tacho_hold_pid_Ki (uint8_t sn, int *buf)
 Read "hold_pid/Ki" attribute of the tacho. More...
 
size_t set_tacho_hold_pid_Ki (uint8_t sn, int value)
 Write "hold_pid/Ki" attribute of the tacho. More...
 
size_t multi_set_tacho_hold_pid_Ki (uint8_t *sn, int value)
 Write "hold_pid/Ki" attribute of several tachos. More...
 
size_t get_tacho_hold_pid_Kp (uint8_t sn, int *buf)
 Read "hold_pid/Kp" attribute of the tacho. More...
 
size_t set_tacho_hold_pid_Kp (uint8_t sn, int value)
 Write "hold_pid/Kp" attribute of the tacho. More...
 
size_t multi_set_tacho_hold_pid_Kp (uint8_t *sn, int value)
 Write "hold_pid/Kp" attribute of several tachos. More...
 
size_t get_tacho_max_speed (uint8_t sn, int *buf)
 Read "max_speed" attribute of the tacho. More...
 
size_t get_tacho_polarity (uint8_t sn, char *buf, size_t sz)
 Read "polarity" attribute of the tacho. More...
 
size_t set_tacho_polarity (uint8_t sn, char *value)
 Write "polarity" attribute of the tacho. More...
 
size_t multi_set_tacho_polarity (uint8_t *sn, char *value)
 Write "polarity" attribute of several tachos. More...
 
size_t get_tacho_position (uint8_t sn, int *buf)
 Read "position" attribute of the tacho. More...
 
size_t set_tacho_position (uint8_t sn, int value)
 Write "position" attribute of the tacho. More...
 
size_t multi_set_tacho_position (uint8_t *sn, int value)
 Write "position" attribute of several tachos. More...
 
size_t get_tacho_position_sp (uint8_t sn, int *buf)
 Read "position_sp" attribute of the tacho. More...
 
size_t set_tacho_position_sp (uint8_t sn, int value)
 Write "position_sp" attribute of the tacho. More...
 
size_t multi_set_tacho_position_sp (uint8_t *sn, int value)
 Write "position_sp" attribute of several tachos. More...
 
size_t get_tacho_ramp_down_sp (uint8_t sn, int *buf)
 Read "ramp_down_sp" attribute of the tacho. More...
 
size_t set_tacho_ramp_down_sp (uint8_t sn, int value)
 Write "ramp_down_sp" attribute of the tacho. More...
 
size_t multi_set_tacho_ramp_down_sp (uint8_t *sn, int value)
 Write "ramp_down_sp" attribute of several tachos. More...
 
size_t get_tacho_ramp_up_sp (uint8_t sn, int *buf)
 Read "ramp_up_sp" attribute of the tacho. More...
 
size_t set_tacho_ramp_up_sp (uint8_t sn, int value)
 Write "ramp_up_sp" attribute of the tacho. More...
 
size_t multi_set_tacho_ramp_up_sp (uint8_t *sn, int value)
 Write "ramp_up_sp" attribute of several tachos. More...
 
size_t get_tacho_speed (uint8_t sn, int *buf)
 Read "speed" attribute of the tacho. More...
 
size_t get_tacho_speed_pid_Kd (uint8_t sn, int *buf)
 Read "speed_pid/Kd" attribute of the tacho. More...
 
size_t set_tacho_speed_pid_Kd (uint8_t sn, int value)
 Write "speed_pid/Kd" attribute of the tacho. More...
 
size_t multi_set_tacho_speed_pid_Kd (uint8_t *sn, int value)
 Write "speed_pid/Kd" attribute of several tachos. More...
 
size_t get_tacho_speed_pid_Ki (uint8_t sn, int *buf)
 Read "speed_pid/Ki" attribute of the tacho. More...
 
size_t set_tacho_speed_pid_Ki (uint8_t sn, int value)
 Write "speed_pid/Ki" attribute of the tacho. More...
 
size_t multi_set_tacho_speed_pid_Ki (uint8_t *sn, int value)
 Write "speed_pid/Ki" attribute of several tachos. More...
 
size_t get_tacho_speed_pid_Kp (uint8_t sn, int *buf)
 Read "speed_pid/Kp" attribute of the tacho. More...
 
size_t set_tacho_speed_pid_Kp (uint8_t sn, int value)
 Write "speed_pid/Kp" attribute of the tacho. More...
 
size_t multi_set_tacho_speed_pid_Kp (uint8_t *sn, int value)
 Write "speed_pid/Kp" attribute of several tachos. More...
 
size_t get_tacho_speed_sp (uint8_t sn, int *buf)
 Read "speed_sp" attribute of the tacho. More...
 
size_t set_tacho_speed_sp (uint8_t sn, int value)
 Write "speed_sp" attribute of the tacho. More...
 
size_t multi_set_tacho_speed_sp (uint8_t *sn, int value)
 Write "speed_sp" attribute of several tachos. More...
 
size_t get_tacho_state (uint8_t sn, char *buf, size_t sz)
 Read "state" attribute of the tacho. More...
 
size_t get_tacho_stop_action (uint8_t sn, char *buf, size_t sz)
 Read "stop_action" attribute of the tacho. More...
 
size_t set_tacho_stop_action (uint8_t sn, char *value)
 Write "stop_action" attribute of the tacho. More...
 
size_t multi_set_tacho_stop_action (uint8_t *sn, char *value)
 Write "stop_action" attribute of several tachos. More...
 
size_t get_tacho_stop_actions (uint8_t sn, char *buf, size_t sz)
 Read "stop_actions" attribute of the tacho. More...
 
size_t get_tacho_time_sp (uint8_t sn, int *buf)
 Read "time_sp" attribute of the tacho. More...
 
size_t set_tacho_time_sp (uint8_t sn, int value)
 Write "time_sp" attribute of the tacho. More...
 
size_t multi_set_tacho_time_sp (uint8_t *sn, int value)
 Write "time_sp" attribute of several tachos. More...
 
const char * ev3_tacho_type (INX_T type_inx)
 Get name of the specified tacho type. More...
 
INX_T get_tacho_type_inx (uint8_t sn)
 Read "driver_name" attribute and get index of the tacho type. More...
 
size_t get_tacho_desc (uint8_t sn, EV3_TACHO *desc)
 Read tacho attributes that are required for filling the descriptor. More...
 
EV3_TACHOev3_tacho_desc (uint8_t sn)
 Get descriptor of the tacho. More...
 
INX_T ev3_tacho_desc_type_inx (uint8_t sn)
 Get type from the tacho descriptor. More...
 
uint8_t ev3_tacho_desc_port (uint8_t sn)
 Get EV3 port from the tacho descriptor. More...
 
uint8_t ev3_tacho_desc_extport (uint8_t sn)
 Get extended port from the tacho descriptor. More...
 
char * ev3_tacho_port_name (uint8_t sn, char *buf)
 Assemble EV3 port name from the tacho descriptor. More...
 
bool ev3_search_tacho (INX_T type_inx, uint8_t *sn, uint8_t from)
 Search of a sequence number of the specified tacho type. More...
 
bool ev3_search_tacho_plugged_in (uint8_t port, uint8_t extport, uint8_t *sn, uint8_t from)
 Search of a sequence number the tacho by plug-in attributes. More...
 
const char * ev3_tacho_command (INX_T command_inx)
 Get name of the specified tacho command. More...
 
size_t set_tacho_command_inx (uint8_t sn, INX_T command_inx)
 Write "command" attribute of the tacho by the index. More...
 
size_t multi_set_tacho_command_inx (uint8_t *sn, INX_T command_inx)
 Write "command" attribute of several tachos by the index. More...
 
const char * ev3_tacho_polarity (INX_T polarity_inx)
 Get name of the specified tacho polarity. More...
 
INX_T get_tacho_polarity_inx (uint8_t sn)
 Read "polarity" attribute of the tacho and get the index. More...
 
size_t set_tacho_polarity_inx (uint8_t sn, INX_T polarity_inx)
 Write "polarity" attribute of the tacho by the index. More...
 
size_t multi_set_tacho_polarity_inx (uint8_t *sn, INX_T polarity_inx)
 Write "polarity" attribute of several tachos by the index. More...
 
const char * ev3_tacho_stop_action (INX_T stop_action_inx)
 Get name of the specified tacho stop_action. More...
 
INX_T get_tacho_stop_action_inx (uint8_t sn)
 Read "stop_action" attribute of the tacho and get the index. More...
 
size_t set_tacho_stop_action_inx (uint8_t sn, INX_T stop_action_inx)
 Write "stop_action" attribute of the tacho by the index. More...
 
size_t multi_set_tacho_stop_action_inx (uint8_t *sn, INX_T stop_action_inx)
 Write "stop_action" attribute of several tachos by the index. More...
 
size_t get_tacho_state_flags (uint8_t sn, FLAGS_T *flags)
 Read "state" attribute of the tacho and get the flags. More...
 
int ev3_tacho_init (void)
 Detect connected tachos. More...
 

Detailed Description

EV3 Tacho Motors.

(ev3_tacho.yu-c)

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