Mercurial > hg > beaglert
view projects/d-box/DboxSensors.h @ 0:8a575ba3ab52
Initial commit.
author | andrewm |
---|---|
date | Fri, 31 Oct 2014 19:10:17 +0100 |
parents | |
children | 901d205d1a3c |
line wrap: on
line source
/* * DboxSensors.h * * Created on: May 19, 2014 * Author: Victor Zappi */ #ifndef DBOXSENSORS_H_ #define DBOXSENSORS_H_ #include <stdio.h> #include <sys/mount.h> // mount() #include <string.h> // strerror() #include <fstream> // fstream #include <iostream> #include <unistd.h> // usleep() #include <glob.h> // glob() #include <sys/time.h> // elapsed time #include <sys/stat.h> // mkdir() #include <algorithm> // reverse() [string...] #include "I2c_TouchKey.h" #include "AnalogInput.h" #include "../../include/GPIOcontrol.h" // TODO wrap this into a class /*--------------------------------------------------------------------------------------------------------------------------------------------------- * This class retrieves data from all the connected sensors, * logs them * and exposes to the main only the values needed to synthesize sound * * The simple instrument has: * * * *--------------------------------------------------------------------------------------------------------------------------------------------------- */ class DboxSensors { public: int initSensors(int tk0_bus, int tk0_address, int tk1_bus, int tk1_address, int tk_file, int fsr_pin, int fsrmax, bool useNewSensors, int gpio0=-1, int gpio1=-1); int readSensors(); int getTKTouchCount(int index); float *getTKXPositions(int index); float getTKYPosition(int index); float *getTKTouchSize(int index); double getFSRVAlue(); int getDigitalIn(int index); DboxSensors(); ~DboxSensors(); private: bool newSensors; I2c_TouchKey TK0; int tk0_touchCnt; float tk0_touchPosX[5]; float tk0_touchPosY; float tk0_touchSize[5]; I2c_TouchKey TK1; int tk1_touchCnt; float tk1_touchPosX[5]; float tk1_touchPosY; float tk1_touchSize[5]; AnalogInput FSR; int fsr_pinNum; double fsr_read; int fsr_max; unsigned int digitalIn[2]; int fdDi[2]; int gpio[2]; void resetSensorsData(); }; //-------------------------------------------------------------------------------- // read interface inline int DboxSensors::getTKTouchCount(int index) { if(index==0) return tk0_touchCnt; else return tk1_touchCnt; } inline float *DboxSensors::getTKXPositions(int index) { if(index==0) return tk0_touchPosX; else return tk1_touchPosX; } inline float DboxSensors::getTKYPosition(int index) { if(index==0) return tk0_touchPosY; else return tk1_touchPosY; } inline float *DboxSensors::getTKTouchSize(int index) { if(index==0) return tk0_touchSize; else return tk1_touchSize; } inline double DboxSensors::getFSRVAlue() { return fsr_read; } inline int DboxSensors::getDigitalIn(int index) { return digitalIn[index]; } //-------------------------------------------------------------------------------- #endif /* DBOXSENSORS_H_ */