Mercurial > hg > beaglert
annotate include/I2c_TouchKey.h @ 556:ce391098f321 prerelease tip
THIS PROJECT HAS MOVED TO https://github.com/BelaPlatform/bela
author | Giulio Moro <giuliomoro@yahoo.it> |
---|---|
date | Sat, 25 Jun 2016 20:21:00 +0100 |
parents | 361d0c2335cf |
children |
rev | line source |
---|---|
andrewm@0 | 1 /* |
andrewm@0 | 2 * I2c.h |
andrewm@0 | 3 * |
andrewm@0 | 4 * Created on: Oct 14, 2013 |
andrewm@0 | 5 * Author: Victor Zappi |
andrewm@0 | 6 */ |
andrewm@0 | 7 |
andrewm@0 | 8 #ifndef I2CTK_H_ |
andrewm@0 | 9 #define I2CTK_H_ |
andrewm@0 | 10 |
andrewm@68 | 11 #include <I2c.h> |
andrewm@0 | 12 |
andrewm@15 | 13 // #define NUM_BYTES_OLD 9 |
andrewm@15 | 14 // #define NUM_BYTES_NEW 13 |
andrewm@15 | 15 |
andrewm@15 | 16 #define MAX_SENSOR_BYTES 20 |
andrewm@15 | 17 |
andrewm@15 | 18 enum { |
andrewm@15 | 19 kSensorTypeTouchKey = 0, |
andrewm@15 | 20 kSensorTypeDBox1 = 1, |
andrewm@15 | 21 kSensorTypeDBox2 = 2 |
andrewm@15 | 22 }; |
andrewm@15 | 23 |
andrewm@15 | 24 static const int kSensorBytes[3] = {9, 13, 20}; |
andrewm@0 | 25 |
andrewm@0 | 26 class I2c_TouchKey : public I2c |
andrewm@0 | 27 { |
andrewm@0 | 28 private: |
andrewm@0 | 29 bool isReady; |
andrewm@15 | 30 int sensorType; |
andrewm@0 | 31 int numBytesToRead; |
andrewm@0 | 32 |
andrewm@0 | 33 // read NUM_BYTES bytes, which have to be properly parsed |
andrewm@15 | 34 char dataBuffer[MAX_SENSOR_BYTES]; |
andrewm@0 | 35 int bytesRead; |
andrewm@0 | 36 |
andrewm@0 | 37 int rawSliderPosition[5]; |
andrewm@0 | 38 int rawSliderPositionH; |
andrewm@0 | 39 |
andrewm@0 | 40 int touchCount; |
andrewm@0 | 41 float sliderSize[5]; |
andrewm@0 | 42 float sliderPosition[5]; |
andrewm@0 | 43 float sliderPositionH; |
andrewm@0 | 44 |
andrewm@0 | 45 |
andrewm@0 | 46 public: |
andrewm@15 | 47 int initTouchKey(int sensorTypeToUse = kSensorTypeTouchKey); |
andrewm@0 | 48 int readI2C(); |
andrewm@0 | 49 int getTouchCount(); |
andrewm@0 | 50 float * getSlidersize(); |
andrewm@0 | 51 float * getSliderPosition(); |
andrewm@0 | 52 float getSliderPositionH(); |
andrewm@0 | 53 |
andrewm@0 | 54 bool ready() { return isReady; } |
andrewm@0 | 55 |
andrewm@0 | 56 I2c_TouchKey(); |
andrewm@0 | 57 ~I2c_TouchKey(); |
andrewm@0 | 58 |
andrewm@0 | 59 }; |
andrewm@0 | 60 |
andrewm@0 | 61 inline int I2c_TouchKey::getTouchCount() |
andrewm@0 | 62 { |
andrewm@0 | 63 return touchCount; |
andrewm@0 | 64 } |
andrewm@0 | 65 |
andrewm@0 | 66 inline float * I2c_TouchKey::getSlidersize() |
andrewm@0 | 67 { |
andrewm@0 | 68 return sliderSize; |
andrewm@0 | 69 } |
andrewm@0 | 70 |
andrewm@0 | 71 inline float * I2c_TouchKey::getSliderPosition() |
andrewm@0 | 72 { |
andrewm@0 | 73 return sliderPosition; |
andrewm@0 | 74 } |
andrewm@0 | 75 |
andrewm@0 | 76 inline float I2c_TouchKey::getSliderPositionH() |
andrewm@0 | 77 { |
andrewm@0 | 78 return sliderPositionH; |
andrewm@0 | 79 } |
andrewm@0 | 80 |
andrewm@0 | 81 |
andrewm@0 | 82 |
andrewm@0 | 83 |
andrewm@0 | 84 |
andrewm@0 | 85 #endif /* I2CTK_H_ */ |