Library for MAX30101, read/write functions for registers implemented.

Dependents:   test_MAX30101 testSensor

MAX30101.h

Committer:
Rhyme
Date:
2015-12-29
Revision:
1:fc677d82d0f1
Parent:
0:4ad9373787e8
Child:
2:c465a8d44b9a

File content as of revision 1:fc677d82d0f1:

/**
 * MAX30101
 * High-Sensitivity Pulse Oximeter and
 * Heart-Rate Sensor for Wearable Health
 */
#ifndef _MAX30101_H_
#define _MAX30101_H_

class MAX30101
{
public:
 /**
 * MAX30101 constructor
 *
 * @param sda SDA pin
 * @param scl SCL pin
 * @param addr 7bit address of the I2C peripheral
 */
 MAX30101(PinName sda, PinName scl, int addr) ;
 
 ~MAX30101() ;
 
uint8_t  getID(void) ;
uint8_t  getRev(void) ;
uint16_t getIntStatus(void) ;
void     setIntEnable(uint16_t mask) ;
uint8_t  getFIFO_WR_PTR(void) ;
void     setFIFO_WR_PTR(uint8_t data) ;
uint8_t  getOVF_COUNTER(void) ;
void     setOVF_COUNTER(uint8_t data) ;
uint8_t  getFIFO_RD_PTR(void) ;
void     setFIFO_RD_PTR(uint8_t data) ;
uint8_t  getFIFO_DATA(void) ;
void     setFIFO_DATA(uint8_t data) ;
uint8_t  getFIFO_CONFIG(void) ;
void     setFIFO_CONFIG(uint8_t data) ;
uint8_t  getMODE_CONFIG(void) ;
void     setMODE_CONFIG(uint8_t data) ;
uint8_t  getSPO2_CONFIG(void) ;
void     setSPO2_CONFIG(uint8_t data) ;
uint8_t  getLED1_PA(void) ;
void     setLED1_PA(uint8_t data) ;
uint8_t  getLED2_PA(void) ;
void     setLED2_PA(uint8_t data) ;
uint8_t  getLED3_PA(void) ;
void     setLED3_PA(uint8_t data) ;
uint8_t  getPILOT_PA(void) ;
void     setPILOT_PA(uint8_t data) ;
uint16_t getSLOT(void) ;
void     setSLOT(uint16_t data) ;
uint8_t  getTEMP_INT(void) ;
uint8_t  getTEMP_FRAM(void) ;
uint8_t  getTEMP_EN(void) ; /* ? */
uint8_t  getPROX_INT_THR(void) ;
void     setPROX_INT_THR(uint8_t data) ;

/*
 * some member functions here (yet to be written)
 */
  
private:
  I2C m_i2c;
  int m_addr;
  void readRegs(int addr, uint8_t *data, int len) ;
  void writeRegs(uint8_t *data, int len) ;
} ;
#endif /* _MAX30101_H_ */