ev3_sensor.h
Go to the documentation of this file.
1 
2 /* ev3_sensor.h was generated by yup.py (yupp) 1.0c3
3  out of ev3_sensor.yu-h
4  */
11 #ifndef EV3_SENSOR_H
12 #define EV3_SENSOR_H
13 
14 #ifdef EV3_SENSOR_IMPLEMENT
15 #define EV3_SENSOR_VAR( decl ) \
16  decl
17 #define EV3_SENSOR_VAR_INIT( decl, ... ) \
18  decl = __VA_ARGS__
19 
20 #define EV3_SENSOR_INL
21 
22 #else /* EV3_SENSOR_IMPLEMENT */
23 #define EV3_SENSOR_VAR( decl ) \
24  extern decl
25 #define EV3_SENSOR_VAR_INIT( decl, ... ) \
26  extern decl
27 
28 #if __GNUC__ && !__GNUC_STDC_INLINE__
29 #define EV3_SENSOR_INL \
30  extern inline
31 #else
32 #define EV3_SENSOR_INL \
33  inline
34 #endif
35 
36 #endif /* EV3_SENSOR_IMPLEMENT */
37 
38 #include <stddef.h>
39 #include <stdint.h>
40 #include <stdbool.h>
41 
50 #ifdef __cplusplus
51 extern "C" {
52 #endif
53 
54 #define SENSOR_DIR "/sys/class/lego-sensor"
59 typedef struct {
60  INX_T type_inx;
61  uint8_t port;
62  uint8_t extport;
63  uint8_t addr;
65 } EV3_SENSOR;
66 
67 #define SENSOR_DESC__LIMIT_ DESC_LIMIT
69 #define SENSOR__NONE_ SENSOR_DESC__LIMIT_
74 EV3_SENSOR_VAR( EV3_SENSOR ev3_sensor[ SENSOR_DESC__LIMIT_ ] );
75 
79 enum {
80  SENSOR_TYPE__NONE_ = 0, /* XXX: memset( 0 ) is used */
81 
82  EV3_ANALOG_XX,
83  NXT_ANALOG,
84  PIXY_LEGO,
85  DI_DFLEX,
86  FCL_9DOF,
87  FCL_ADC,
88  FCL_ALTITUDE,
89  FCL_GESTURE,
90  FCL_HUMIDITY,
91  FCL_IR,
92  FCL_LIGHT,
93  HT_NXT_COLOR,
94  HT_NXT_ANGLE,
95  HT_NXT_ACCEL,
96  HT_NXT_BAROMETRIC,
97  HT_NXT_COLOR_V2,
98  HT_NXT_EOPD,
99  HT_NXT_FORCE,
100  HT_NXT_GYRO,
101  HT_NXT_IR_LINK,
102  HT_NXT_IR_RECEIVER,
103  HT_NXT_PIR,
104  HT_NXT_COMPASS,
105  HT_NXT_MAG,
106  HT_NXT_IR_SEEK_V2,
107  HT_NXT_SMUX,
108  HT_SUPER_PRO,
109  LEGO_EV3_US,
110  LEGO_EV3_GYRO,
111  LEGO_EV3_COLOR,
112  LEGO_EV3_TOUCH,
113  LEGO_EV3_IR,
114  WEDO_HUB,
115  WEDO_MOTION,
116  WEDO_TILT,
117  LEGO_POWER_STORAGE,
118  LEGO_NXT_TEMP,
119  LEGO_NXT_TOUCH,
120  LEGO_NXT_LIGHT,
121  LEGO_NXT_SOUND,
122  LEGO_NXT_US,
123  MI_XG1300L,
124  MS_ABSOLUTE_IMU,
125  MS_ANGLE,
126  MS_EV3_SMUX,
127  MS_LIGHT_ARRAY,
128  MS_LINE_LEADER,
129  MS_NXTCAM,
130  MS_NXTCAM5,
131  MS_NXTMMX,
132  MS_8CH_SERVO,
133  MS_PPS58_NX,
134  MS_PIXY_ADAPTER,
135  MS_NXT_TOUCH_MUX,
136 
138  SENSOR_TYPE__UNKNOWN_ = SENSOR_TYPE__COUNT_
139 };
140 
144 enum {
145  SENSOR_MODE__NONE_ = 0,
146 
147  EV3_ANALOG_XX_ANALOG,
148  NXT_ANALOG_ANALOG_0,
149  NXT_ANALOG_ANALOG_1,
150  PIXY_LEGO_ALL,
151  PIXY_LEGO_SIG1,
152  PIXY_LEGO_SIG2,
153  PIXY_LEGO_SIG3,
154  PIXY_LEGO_SIG4,
155  PIXY_LEGO_SIG5,
156  PIXY_LEGO_SIG6,
157  PIXY_LEGO_SIG7,
158  DI_DFLEX_FLEX,
159  FCL_9DOF_GYRO,
160  FCL_9DOF_ACC,
161  FCL_9DOF_MAGNET,
162  FCL_ADC_CH1_VOLTAGE,
163  FCL_ADC_CH2_VOLTAGE,
164  FCL_ADC_VOLTAGE,
165  FCL_ALTITUDE_PRESSURE,
166  FCL_ALTITUDE_ALTITUDE,
167  FCL_GESTURE_GESTURE,
168  FCL_GESTURE_PROXIMITY,
169  FCL_GESTURE_RGB_RAW,
170  FCL_GESTURE_CLEAR,
171  FCL_HUMIDITY_CENTIGRADE,
172  FCL_HUMIDITY_FAHRENHEIT,
173  FCL_HUMIDITY_HUMIDITY,
174  FCL_IR_IR_DATA,
175  FCL_LIGHT_ILLUMINANCE,
176  HT_NXT_COLOR_COLOR,
177  HT_NXT_COLOR_RED,
178  HT_NXT_COLOR_GREEN,
179  HT_NXT_COLOR_BLUE,
180  HT_NXT_COLOR_RAW,
181  HT_NXT_COLOR_NORM,
182  HT_NXT_COLOR_ALL,
183  HT_NXT_ANGLE_ANGLE,
184  HT_NXT_ANGLE_ANGLE_ACC,
185  HT_NXT_ANGLE_SPEED,
186  HT_NXT_ACCEL_ACCEL,
187  HT_NXT_ACCEL_ALL,
188  HT_NXT_BAROMETRIC_PRESS,
189  HT_NXT_BAROMETRIC_TEMP,
190  HT_NXT_COLOR_V2_COLOR,
191  HT_NXT_COLOR_V2_RED,
192  HT_NXT_COLOR_V2_GREEN,
193  HT_NXT_COLOR_V2_BLUE,
194  HT_NXT_COLOR_V2_WHITE,
195  HT_NXT_COLOR_V2_NORM,
196  HT_NXT_COLOR_V2_ALL,
197  HT_NXT_COLOR_V2_PASSIVE,
198  HT_NXT_COLOR_V2_RAW,
199  HT_NXT_EOPD_LONG,
200  HT_NXT_EOPD_SHORT,
201  HT_NXT_FORCE_FORCE,
202  HT_NXT_GYRO_GYRO,
203  HT_NXT_IR_LINK_IRLINK,
204  HT_NXT_IR_RECEIVER_1_MOTOR,
205  HT_NXT_IR_RECEIVER_8_MOTOR,
206  HT_NXT_PIR_PROX,
207  HT_NXT_COMPASS_COMPASS,
208  HT_NXT_MAG_MAG,
209  HT_NXT_IR_SEEK_V2_DC,
210  HT_NXT_IR_SEEK_V2_AC,
211  HT_NXT_IR_SEEK_V2_DC_ALL,
212  HT_NXT_IR_SEEK_V2_AC_ALL,
213  HT_NXT_SMUX_MUX,
214  HT_SUPER_PRO_AIN,
215  HT_SUPER_PRO_DIN,
216  HT_SUPER_PRO_DOUT,
217  HT_SUPER_PRO_DCTRL,
218  HT_SUPER_PRO_STROBE,
219  HT_SUPER_PRO_LED,
220  HT_SUPER_PRO_AOUT_0,
221  HT_SUPER_PRO_AOUT_1,
222  LEGO_EV3_US_US_DIST_CM, US_US_DIST_CM = LEGO_EV3_US_US_DIST_CM,
223  LEGO_EV3_US_US_DIST_IN, US_US_DIST_IN = LEGO_EV3_US_US_DIST_IN,
224  LEGO_EV3_US_US_LISTEN, US_US_LISTEN = LEGO_EV3_US_US_LISTEN,
225  LEGO_EV3_US_US_SI_CM, US_US_SI_CM = LEGO_EV3_US_US_SI_CM,
226  LEGO_EV3_US_US_SI_IN, US_US_SI_IN = LEGO_EV3_US_US_SI_IN,
227  LEGO_EV3_US_US_DC_CM, US_US_DC_CM = LEGO_EV3_US_US_DC_CM,
228  LEGO_EV3_US_US_DC_IN, US_US_DC_IN = LEGO_EV3_US_US_DC_IN,
229  LEGO_EV3_GYRO_GYRO_ANG, GYRO_GYRO_ANG = LEGO_EV3_GYRO_GYRO_ANG,
230  LEGO_EV3_GYRO_GYRO_RATE, GYRO_GYRO_RATE = LEGO_EV3_GYRO_GYRO_RATE,
231  LEGO_EV3_GYRO_GYRO_FAS, GYRO_GYRO_FAS = LEGO_EV3_GYRO_GYRO_FAS,
232  LEGO_EV3_GYRO_GYRO_G_AND_A, GYRO_GYRO_G_AND_A = LEGO_EV3_GYRO_GYRO_G_AND_A,
233  LEGO_EV3_GYRO_GYRO_CAL, GYRO_GYRO_CAL = LEGO_EV3_GYRO_GYRO_CAL,
234  LEGO_EV3_COLOR_COL_REFLECT, COLOR_COL_REFLECT = LEGO_EV3_COLOR_COL_REFLECT,
235  LEGO_EV3_COLOR_COL_AMBIENT, COLOR_COL_AMBIENT = LEGO_EV3_COLOR_COL_AMBIENT,
236  LEGO_EV3_COLOR_COL_COLOR, COLOR_COL_COLOR = LEGO_EV3_COLOR_COL_COLOR,
237  LEGO_EV3_COLOR_REF_RAW, COLOR_REF_RAW = LEGO_EV3_COLOR_REF_RAW,
238  LEGO_EV3_COLOR_RGB_RAW, COLOR_RGB_RAW = LEGO_EV3_COLOR_RGB_RAW,
239  LEGO_EV3_COLOR_COL_CAL, COLOR_COL_CAL = LEGO_EV3_COLOR_COL_CAL,
240  LEGO_EV3_TOUCH_TOUCH, TOUCH_TOUCH = LEGO_EV3_TOUCH_TOUCH,
241  LEGO_EV3_IR_IR_PROX, IR_IR_PROX = LEGO_EV3_IR_IR_PROX,
242  LEGO_EV3_IR_IR_SEEK, IR_IR_SEEK = LEGO_EV3_IR_IR_SEEK,
243  LEGO_EV3_IR_IR_REMOTE, IR_IR_REMOTE = LEGO_EV3_IR_IR_REMOTE,
244  LEGO_EV3_IR_IR_REM_A, IR_IR_REM_A = LEGO_EV3_IR_IR_REM_A,
245  LEGO_EV3_IR_IR_S_ALT, IR_IR_S_ALT = LEGO_EV3_IR_IR_S_ALT,
246  LEGO_EV3_IR_IR_CAL, IR_IR_CAL = LEGO_EV3_IR_IR_CAL,
247  WEDO_HUB_HUB,
248  WEDO_MOTION_PROX,
249  WEDO_MOTION_RAW,
250  WEDO_TILT_TILT,
251  WEDO_TILT_TILT_AXIS,
252  WEDO_TILT_RAW,
253  LEGO_POWER_STORAGE_IN_VOLT,
254  LEGO_POWER_STORAGE_IN_AMP,
255  LEGO_POWER_STORAGE_OUT_VOLT,
256  LEGO_POWER_STORAGE_OUT_AMP,
257  LEGO_POWER_STORAGE_JOULE,
258  LEGO_POWER_STORAGE_IN_WATT,
259  LEGO_POWER_STORAGE_OUT_WATT,
260  LEGO_POWER_STORAGE_ALL,
261  LEGO_NXT_TEMP_NXT_TEMP_C,
262  LEGO_NXT_TEMP_NXT_TEMP_F,
263  LEGO_NXT_TOUCH_TOUCH,
264  LEGO_NXT_LIGHT_REFLECT,
265  LEGO_NXT_LIGHT_AMBIENT,
266  LEGO_NXT_SOUND_DB,
267  LEGO_NXT_SOUND_DBA,
268  LEGO_NXT_US_US_DIST_CM,
269  LEGO_NXT_US_US_DIST_IN,
270  LEGO_NXT_US_US_SI_CM,
271  LEGO_NXT_US_US_SI_IN,
272  LEGO_NXT_US_US_LISTEN,
273  MI_XG1300L_ANGLE,
274  MI_XG1300L_SPEED,
275  MI_XG1300L_ACCEL,
276  MI_XG1300L_ALL,
277  MS_ABSOLUTE_IMU_TILT,
278  MS_ABSOLUTE_IMU_ACCEL,
279  MS_ABSOLUTE_IMU_COMPASS,
280  MS_ABSOLUTE_IMU_MAG,
281  MS_ABSOLUTE_IMU_GYRO,
282  MS_ABSOLUTE_IMU_ALL,
283  MS_ANGLE_ANGLE,
284  MS_ANGLE_ANGLE2,
285  MS_ANGLE_SPEED,
286  MS_ANGLE_ALL,
287  MS_EV3_SMUX_MUX,
288  MS_LIGHT_ARRAY_CAL,
289  MS_LIGHT_ARRAY_RAW,
290  MS_LINE_LEADER_PID,
291  MS_LINE_LEADER_PID_ALL,
292  MS_LINE_LEADER_CAL,
293  MS_LINE_LEADER_RAW,
294  MS_NXTCAM_TRACK,
295  MS_NXTCAM5_TRACK,
296  MS_NXTMMX_STATUS,
297  MS_NXTMMX_STATUS_OLD,
298  MS_8CH_SERVO_V3,
299  MS_8CH_SERVO_OLD,
300  MS_PPS58_NX_RAW,
301  MS_PPS58_NX_ABS_PSI,
302  MS_PPS58_NX_ABS_MBAR,
303  MS_PPS58_NX_ABS_KPA,
304  MS_PPS58_NX_REL_PSI,
305  MS_PPS58_NX_REL_MBAR,
306  MS_PPS58_NX_REL_KPA,
307  MS_PIXY_ADAPTER_TRACK,
308  MS_NXT_TOUCH_MUX_TOUCH_MUX,
310  SENSOR_MODE__UNKNOWN_ = SENSOR_MODE__COUNT_
311 };
312 
316 enum {
317  SENSOR_COMMAND__NONE_ = 0,
318 
319  HT_NXT_ANGLE_RESET,
320  HT_NXT_ANGLE_CAL,
321  HT_NXT_SMUX_HALT,
322  HT_NXT_SMUX_DETECT,
323  HT_NXT_SMUX_RUN,
324  WEDO_HUB_OUT_OFF,
325  WEDO_HUB_OUT_ON,
326  WEDO_HUB_CLEAR_ERR,
327  MI_XG1300L_RESET,
328  MI_XG1300L_ACCEL_2G,
329  MI_XG1300L_ACCEL_4G,
330  MI_XG1300L_ACCEL_8G,
331  MS_ABSOLUTE_IMU_BEGIN_COMP_CAL,
332  MS_ABSOLUTE_IMU_END_COMP_CAL,
333  MS_ABSOLUTE_IMU_ACCEL_2G,
334  MS_ABSOLUTE_IMU_ACCEL_4G,
335  MS_ABSOLUTE_IMU_ACCEL_8G,
336  MS_ABSOLUTE_IMU_ACCEL_16G,
337  MS_ANGLE_RESET,
338  MS_LIGHT_ARRAY_CAL_WHITE,
339  MS_LIGHT_ARRAY_CAL_BLACK,
340  MS_LIGHT_ARRAY_SLEEP,
341  MS_LIGHT_ARRAY_WAKE,
342  MS_LIGHT_ARRAY_60HZ,
343  MS_LIGHT_ARRAY_50HZ,
344  MS_LIGHT_ARRAY_UNIVERSAL,
345  MS_LINE_LEADER_CAL_WHITE,
346  MS_LINE_LEADER_CAL_BLACK,
347  MS_LINE_LEADER_SLEEP,
348  MS_LINE_LEADER_WAKE,
349  MS_LINE_LEADER_INV_COL,
350  MS_LINE_LEADER_RST_COL,
351  MS_LINE_LEADER_SNAP,
352  MS_LINE_LEADER_60HZ,
353  MS_LINE_LEADER_50HZ,
354  MS_LINE_LEADER_UNIVERSAL,
355  MS_NXTCAM_TRACK_ON,
356  MS_NXTCAM_TRACK_OFF,
357  MS_NXTCAM_TRACK_OBJ,
358  MS_NXTCAM_TRACK_LINE,
359  MS_NXTCAM_SORT_SIZE,
360  MS_NXTCAM_SORT_COL,
361  MS_NXTCAM5_TRACK_OBJ,
362  MS_NXTCAM5_TRACK_FACE,
363  MS_NXTCAM5_MULTI_MOVIE,
364  MS_NXTCAM5_MOVIE,
365  MS_NXTCAM5_PICTURE,
366  MS_NXTCAM5_TRACK_EYE,
367  MS_NXTCAM5_TRACK_QR,
368  MS_NXTCAM5_TRACK_LINE,
369  MS_PPS58_NX_ZERO,
370  MS_PIXY_ADAPTER_SORT_SIZE,
371  MS_PIXY_ADAPTER_SORT_COL,
373  SENSOR_COMMAND__UNKNOWN_ = SENSOR_COMMAND__COUNT_
374 };
375 
383 extern size_t get_sensor_address( uint8_t sn, char *buf, size_t sz );
384 
392 extern size_t get_sensor_bin_data( uint8_t sn, byte *buf, size_t sz );
393 
401 extern size_t set_sensor_bin_data( uint8_t sn, byte *value, size_t sz );
402 
410 extern size_t multi_set_sensor_bin_data( uint8_t *sn, byte *value, size_t sz );
411 
419 extern size_t get_sensor_bin_data_format( uint8_t sn, char *buf, size_t sz );
420 
428 extern size_t set_sensor_command( uint8_t sn, char *value );
429 
437 extern size_t multi_set_sensor_command( uint8_t *sn, char *value );
438 
446 extern size_t get_sensor_commands( uint8_t sn, char *buf, size_t sz );
447 
455 extern size_t get_sensor_direct( uint8_t sn, char *buf, size_t sz );
456 
464 extern size_t set_sensor_direct( uint8_t sn, char *value );
465 
473 extern size_t multi_set_sensor_direct( uint8_t *sn, char *value );
474 
482 extern size_t get_sensor_decimals( uint8_t sn, dword *buf );
483 
491 extern size_t get_sensor_driver_name( uint8_t sn, char *buf, size_t sz );
492 
500 extern size_t get_sensor_fw_version( uint8_t sn, char *buf, size_t sz );
501 
509 extern size_t get_sensor_mode( uint8_t sn, char *buf, size_t sz );
510 
518 extern size_t set_sensor_mode( uint8_t sn, char *value );
519 
527 extern size_t multi_set_sensor_mode( uint8_t *sn, char *value );
528 
536 extern size_t get_sensor_modes( uint8_t sn, char *buf, size_t sz );
537 
545 extern size_t get_sensor_num_values( uint8_t sn, dword *buf );
546 
554 extern size_t get_sensor_poll_ms( uint8_t sn, dword *buf );
555 
563 extern size_t set_sensor_poll_ms( uint8_t sn, dword value );
564 
572 extern size_t multi_set_sensor_poll_ms( uint8_t *sn, dword value );
573 
581 extern size_t get_sensor_units( uint8_t sn, char *buf, size_t sz );
582 
590 extern size_t get_sensor_value0( uint8_t sn, float *buf );
591 
599 extern size_t get_sensor_value1( uint8_t sn, float *buf );
600 
608 extern size_t get_sensor_value2( uint8_t sn, float *buf );
609 
617 extern size_t get_sensor_value3( uint8_t sn, float *buf );
618 
626 extern size_t get_sensor_value4( uint8_t sn, float *buf );
627 
635 extern size_t get_sensor_value5( uint8_t sn, float *buf );
636 
644 extern size_t get_sensor_value6( uint8_t sn, float *buf );
645 
653 extern size_t get_sensor_value7( uint8_t sn, float *buf );
654 
662 extern size_t get_sensor_text_value( uint8_t sn, char *buf, size_t sz );
663 
672 extern size_t get_sensor_value( uint8_t inx, uint8_t sn, int *buf );
673 
679 extern const char *ev3_sensor_type( INX_T type_inx );
680 
686 extern INX_T get_sensor_type_inx( uint8_t sn );
687 
694 extern size_t get_sensor_desc( uint8_t sn, EV3_SENSOR *desc );
695 
701 extern EV3_SENSOR *ev3_sensor_desc( uint8_t sn );
702 
708 extern INX_T ev3_sensor_desc_type_inx( uint8_t sn );
709 
715 extern uint8_t ev3_sensor_desc_port( uint8_t sn );
716 
722 extern uint8_t ev3_sensor_desc_extport( uint8_t sn );
723 
729 extern uint8_t ev3_sensor_desc_addr( uint8_t sn );
730 
737 extern char *ev3_sensor_port_name( uint8_t sn, char *buf );
738 
746 extern bool ev3_search_sensor( INX_T type_inx, uint8_t *sn, uint8_t from );
747 
756 extern bool ev3_search_sensor_plugged_in( uint8_t port, uint8_t extport, uint8_t *sn, uint8_t from );
757 
763 extern const char *ev3_sensor_mode( INX_T mode_inx );
764 
771 extern INX_T get_sensor_mode_inx_of_type( uint8_t sn, INX_T type_inx );
772 
780 extern INX_T get_sensor_mode_inx( uint8_t sn );
781 
788 extern size_t set_sensor_mode_inx( uint8_t sn, INX_T mode_inx );
789 
796 extern size_t multi_set_sensor_mode_inx( uint8_t *sn, INX_T mode_inx );
797 
803 extern const char *ev3_sensor_command( INX_T command_inx );
804 
811 extern size_t set_sensor_command_inx( uint8_t sn, INX_T command_inx );
812 
819 extern size_t multi_set_sensor_command_inx( uint8_t *sn, INX_T command_inx );
820 
825 extern int ev3_sensor_init( void );
826 
830 enum {
831  IR_REMOTE__NONE_ = 0,
832 
833  RED_UP = 1,
834  RED_DOWN = 2,
835  BLUE_UP = 3,
836  BLUE_DOWN = 4,
837  RED_UP_BLUE_UP = 5,
838  RED_UP_BLUE_DOWN = 6,
839  RED_DOWN_BLUE_UP = 7,
840  RED_DOWN_BLUE_DOWN = 8,
841  BEACON_MODE_ON = 9,
842  RED_UP_RED_DOWN = 10,
843  BLUE_UP_BLUE_DOWN = 11,
844 };
845 
846 #ifdef __cplusplus
847 }
848 #endif
849 
852 #undef EV3_SENSOR_VAR
853 #undef EV3_SENSOR_VAR_INIT
854 #undef EV3_SENSOR_INL
855 #endif
856 
size_t multi_set_sensor_command_inx(uint8_t *sn, INX_T command_inx)
Write "command" attribute of several sensors by the index.
Definition: ev3_sensor.c:1556
Definition: ev3_sensor.h:309
size_t get_sensor_value0(uint8_t sn, float *buf)
Read "value0" attribute of the sensor.
Definition: ev3_sensor.c:230
const char * ev3_sensor_type(INX_T type_inx)
Get name of the specified sensor type.
Definition: ev3_sensor.c:314
Definition: ev3_sensor.h:137
uint8_t ev3_sensor_desc_addr(uint8_t sn)
Get I2C address from the sensor descriptor.
Definition: ev3_sensor.c:588
size_t get_sensor_value3(uint8_t sn, float *buf)
Read "value3" attribute of the sensor.
Definition: ev3_sensor.c:254
size_t get_sensor_value4(uint8_t sn, float *buf)
Read "value4" attribute of the sensor.
Definition: ev3_sensor.c:262
size_t multi_set_sensor_poll_ms(uint8_t *sn, dword value)
Write "poll_ms" attribute of several sensors.
Definition: ev3_sensor.c:215
size_t get_sensor_mode(uint8_t sn, char *buf, size_t sz)
Read "mode" attribute of the sensor.
Definition: ev3_sensor.c:160
size_t get_sensor_value1(uint8_t sn, float *buf)
Read "value1" attribute of the sensor.
Definition: ev3_sensor.c:238
size_t set_sensor_mode(uint8_t sn, char *value)
Write "mode" attribute of the sensor.
Definition: ev3_sensor.c:168
size_t get_sensor_driver_name(uint8_t sn, char *buf, size_t sz)
Read "driver_name" attribute of the sensor.
Definition: ev3_sensor.c:144
uint8_t addr
Definition: ev3_sensor.h:63
size_t get_sensor_decimals(uint8_t sn, dword *buf)
Read "decimals" attribute of the sensor.
Definition: ev3_sensor.c:136
size_t get_sensor_value7(uint8_t sn, float *buf)
Read "value7" attribute of the sensor.
Definition: ev3_sensor.c:286
size_t get_sensor_units(uint8_t sn, char *buf, size_t sz)
Read "units" attribute of the sensor.
Definition: ev3_sensor.c:222
size_t set_sensor_bin_data(uint8_t sn, byte *value, size_t sz)
Write "bin_data" attribute of the sensor.
Definition: ev3_sensor.c:67
const char * ev3_sensor_command(INX_T command_inx)
Get name of the specified sensor command.
Definition: ev3_sensor.c:1425
size_t get_sensor_bin_data(uint8_t sn, byte *buf, size_t sz)
Read "bin_data" attribute of the sensor.
Definition: ev3_sensor.c:59
uint8_t ev3_sensor_desc_port(uint8_t sn)
Get EV3 port from the sensor descriptor.
Definition: ev3_sensor.c:578
INX_T get_sensor_mode_inx(uint8_t sn)
Read "mode" attribute of the sensor and get the index.
Definition: ev3_sensor.c:1410
size_t get_sensor_direct(uint8_t sn, char *buf, size_t sz)
Read "direct" attribute of the sensor.
Definition: ev3_sensor.c:113
size_t get_sensor_num_values(uint8_t sn, dword *buf)
Read "num_values" attribute of the sensor.
Definition: ev3_sensor.c:191
uint8_t extport
Definition: ev3_sensor.h:62
size_t multi_set_sensor_bin_data(uint8_t *sn, byte *value, size_t sz)
Write "bin_data" attribute of several sensors.
Definition: ev3_sensor.c:75
INX_T type_inx
Definition: ev3_sensor.h:60
size_t get_sensor_value5(uint8_t sn, float *buf)
Read "value5" attribute of the sensor.
Definition: ev3_sensor.c:270
size_t set_sensor_mode_inx(uint8_t sn, INX_T mode_inx)
Write "mode" attribute of the sensor by the index.
Definition: ev3_sensor.c:1415
Structure of a sensor descriptor.
Definition: ev3_sensor.h:59
size_t get_sensor_desc(uint8_t sn, EV3_SENSOR *desc)
Read sensor attributes that are required for filling the descriptor.
Definition: ev3_sensor.c:551
EV3_SENSOR * ev3_sensor_desc(uint8_t sn)
Get descriptor of the sensor.
Definition: ev3_sensor.c:567
size_t set_sensor_command(uint8_t sn, char *value)
Write "command" attribute of the sensor.
Definition: ev3_sensor.c:90
Definition: ev3_sensor.h:372
size_t multi_set_sensor_direct(uint8_t *sn, char *value)
Write "direct" attribute of several sensors.
Definition: ev3_sensor.c:129
size_t multi_set_sensor_mode(uint8_t *sn, char *value)
Write "mode" attribute of several sensors.
Definition: ev3_sensor.c:176
size_t get_sensor_text_value(uint8_t sn, char *buf, size_t sz)
Read "text_value" attribute of the sensor.
Definition: ev3_sensor.c:294
size_t get_sensor_value(uint8_t inx, uint8_t sn, int *buf)
Read "value" attribute of the sensor.
Definition: ev3_sensor.c:302
uint8_t port
Definition: ev3_sensor.h:61
size_t set_sensor_command_inx(uint8_t sn, INX_T command_inx)
Write "command" attribute of the sensor by the index.
Definition: ev3_sensor.c:1551
size_t multi_set_sensor_mode_inx(uint8_t *sn, INX_T mode_inx)
Write "mode" attribute of several sensors by the index.
Definition: ev3_sensor.c:1420
int ev3_sensor_init(void)
Detect connected sensors.
Definition: ev3_sensor.c:1561
size_t get_sensor_commands(uint8_t sn, char *buf, size_t sz)
Read "commands" attribute of the sensor.
Definition: ev3_sensor.c:105
size_t set_sensor_poll_ms(uint8_t sn, dword value)
Write "poll_ms" attribute of the sensor.
Definition: ev3_sensor.c:207
char * ev3_sensor_port_name(uint8_t sn, char *buf)
Assemble EV3 port name from the sensor descriptor.
Definition: ev3_sensor.c:593
size_t get_sensor_modes(uint8_t sn, char *buf, size_t sz)
Read "modes" attribute of the sensor.
Definition: ev3_sensor.c:183
INX_T get_sensor_type_inx(uint8_t sn)
Read "driver_name" attribute and get index of the sensor type.
Definition: ev3_sensor.c:430
INX_T ev3_sensor_desc_type_inx(uint8_t sn)
Get type from the sensor descriptor.
Definition: ev3_sensor.c:573
size_t get_sensor_fw_version(uint8_t sn, char *buf, size_t sz)
Read "fw_version" attribute of the sensor.
Definition: ev3_sensor.c:152
size_t get_sensor_value6(uint8_t sn, float *buf)
Read "value6" attribute of the sensor.
Definition: ev3_sensor.c:278
uint8_t ev3_sensor_desc_extport(uint8_t sn)
Get extended port from the sensor descriptor.
Definition: ev3_sensor.c:583
bool ev3_search_sensor(INX_T type_inx, uint8_t *sn, uint8_t from)
Search of a sequence number of the specified sensor type.
Definition: ev3_sensor.c:598
size_t multi_set_sensor_command(uint8_t *sn, char *value)
Write "command" attribute of several sensors.
Definition: ev3_sensor.c:98
bool ev3_search_sensor_plugged_in(uint8_t port, uint8_t extport, uint8_t *sn, uint8_t from)
Search of a sequence number the sensor by plug-in attributes.
Definition: ev3_sensor.c:613
size_t get_sensor_value2(uint8_t sn, float *buf)
Read "value2" attribute of the sensor.
Definition: ev3_sensor.c:246
const char * ev3_sensor_mode(INX_T mode_inx)
Get name of the specified sensor mode.
Definition: ev3_sensor.c:635
size_t set_sensor_direct(uint8_t sn, char *value)
Write "direct" attribute of the sensor.
Definition: ev3_sensor.c:121
INX_T get_sensor_mode_inx_of_type(uint8_t sn, INX_T type_inx)
Read "mode" attribute of the specified sensor type and get the index.
Definition: ev3_sensor.c:1020
size_t get_sensor_address(uint8_t sn, char *buf, size_t sz)
Read "address" attribute of the sensor.
Definition: ev3_sensor.c:51
size_t get_sensor_bin_data_format(uint8_t sn, char *buf, size_t sz)
Read "bin_data_format" attribute of the sensor.
Definition: ev3_sensor.c:82
size_t get_sensor_poll_ms(uint8_t sn, dword *buf)
Read "poll_ms" attribute of the sensor.
Definition: ev3_sensor.c:199