Go to the documentation of this file.00001
00005
00006
00007 #ifndef ROC_I2CDEVICE_H
00008 #define ROC_I2CDEVICE_H
00009
00010 #include "base/Peripheral.h"
00011
00012 namespace roc {
00013
00014 class I2cDevice : public base::Peripheral {
00015 protected:
00016 int fUseSPI;
00017 int fPort;
00018 uint8_t fSlaveAddr;
00019 public:
00020
00021 I2cDevice();
00022 I2cDevice(base::Board* board, int port=0, uint8_t addr=0);
00023 virtual ~I2cDevice();
00024
00025 bool isSPI() const { return fUseSPI; }
00026
00028 void setPortNumber(int port)
00029 { fPort = port; }
00030
00032 int getPortNumber() const
00033 { return fPort; }
00034
00036 void setSlaveAddr(uint8_t addr)
00037 { fSlaveAddr = addr; }
00038
00040 uint8_t getSlaveAddr() const
00041 { return fSlaveAddr; }
00042
00043 int setRegister(uint8_t reg, uint8_t val, bool veri=false);
00044 int getRegister(uint8_t reg, uint8_t& val);
00045 int getRegister16(uint8_t reg, uint16_t& val);
00046 int setRegisterVerify(uint8_t reg, uint8_t valset, uint8_t& valget);
00047
00048 int setRegisterArray(uint8_t reg, const uint8_t *val, int nreg,
00049 bool veri=false);
00050 int getRegisterArray(uint8_t reg, uint8_t *val, int nreg);
00051
00052 int setMailboxRegister(uint8_t reg, const uint8_t *val, int nval);
00053 int getMailboxRegister(uint8_t reg, uint8_t *val, int nval);
00054
00055 static void addAddrMap(base::Board* board);
00056 };
00057
00058 }
00059
00060 #endif