annotate projects/d-box/I2c_TouchKey.h @ 45:579c86316008 newapi

Major API overhaul. Moved to a single data structure for handling render functions. Functionally, generally similar except for scheduling within PRU loop function, which now uses interrupts from the PRU rather than polling. This requires an updated kernel.
author andrewm
date Thu, 28 May 2015 14:35:55 -0400
parents 901d205d1a3c
children 59edd5780fef
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@0 11 #include "../../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_ */