POC1.5 prototype 2 x color sensor 2 x LM75B 3 x AnalogIn 1 x accel

Dependencies:   mbed vt100

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers edge_color.h Source File

edge_color.h

00001 #ifndef _EDGE_COLOR_H_
00002 #define _EDGE_COLOR_H_
00003 #include "mbed.h"
00004 #include "edge_sensor.h"
00005 #include "VEML6040.h"
00006 
00007 class edge_color : public edge_sensor {
00008 public:
00009     edge_color(VEML6040 *sensor, PwmOut *led[], uint16_t *pwm) ;
00010     ~edge_color(void) ;
00011     virtual void        reset(void) ;
00012     virtual void        prepare(void) ;
00013     virtual void        sample(void) ;
00014     virtual int         deliver(void) ;
00015     
00016     void        calibrate(uint16_t target[], uint16_t result[], int num_ave) ;
00017     void        getAveColor(uint16_t v[], int num_ave) ;
00018     void        getRGB(uint16_t v[]) ;
00019     uint8_t     getConfig(void) { return _sensor_config ; }
00020     void        setConfig(uint8_t config) { _sensor_config = config ; }
00021     uint16_t    get_pwm_period(void) { return _pwm_period ; }   
00022     void        set_pwm_period(uint16_t period) { _pwm_period = period ; }
00023     uint16_t    get_pwm_target(void) { return _pwm_target ; }
00024     void        set_pwm_target(uint16_t target) { _pwm_target = target ; }
00025     uint16_t    getR(void) { return _value[0] ; }
00026     uint16_t    getG(void) { return _value[1] ; }
00027     uint16_t    getB(void) { return _value[2] ; }
00028     uint16_t    getPwmR(void) { return _pwm[0] ; }
00029     uint16_t    getPwmG(void) { return _pwm[1] ; }
00030     uint16_t    getPwmB(void) { return _pwm[2] ; }
00031     void        setLEDs(uint16_t led_value[]) ;
00032     void        setLEDs(uint16_t r, uint16_t g, uint16_t b) ;
00033     
00034 protected:
00035     VEML6040    *_sensor ;
00036     uint8_t     _sensor_config ;
00037     PwmOut      *_led[3] ;
00038     uint16_t    _pwm_period ;
00039     uint16_t    _pwm_target ;
00040     uint16_t    _value[3] ; /* r, g, b */
00041     uint16_t    _pwm[3] ;   /* r, g, b */
00042     uint16_t    _probe ; /* probing value for calibration */
00043 } ;
00044 
00045 extern uint16_t        color0_pwm[3] ;
00046 extern uint16_t        color1_pwm[3] ;
00047 extern uint16_t        color0_target[3] ;
00048 extern uint16_t        color1_target[3] ;
00049 
00050 #endif /* _EDGE_COLOR_H_ */