61 this->gain = clip<uint16_t,uint16_t>(
gain, 0, 5);
80 datarate = clip<uint16_t,uint16_t>(rate, 0, 7);
161 .
name =
"ADS111X ADC" ,
162 .id=CLSID_ANALOG_ADS111X,
170 std::pair<uint16_t,uint16_t>(ADR_ADS111X_MIN_0,ADR_ADS111X_MAX_0),
171 std::pair<uint16_t,uint16_t>(ADR_ADS111X_MIN_1,ADR_ADS111X_MAX_1),
172 std::pair<uint16_t,uint16_t>(ADR_ADS111X_MIN_2,ADR_ADS111X_MAX_2),
173 std::pair<uint16_t,uint16_t>(ADR_ADS111X_MIN_3,ADR_ADS111X_MAX_3),
177ADS111X_AnalogSource::ADS111X_AnalogSource() :
ADS111X(
i2cport) ,
CommandHandler(
"adsAnalog", CLSID_ANALOG_ADS111X, 0),
AnalogAxisProcessing(4,this,this, true,true,true,true), Thread(
"ads111x", 64, 25) {
249 if(lastAxis < this->
axes){
339 this->
buf.resize(this->axes,0);
340 this->
rawbuf.resize(this->axes,0);
351 replies.emplace_back(
axes);
359 replies.emplace_back(
gain);
362 replies.emplace_back(
"6.144V:0,4.096V:1,2.048V:2,1.024V:3,0.512V:4,0.256V:5");
380 replies.emplace_back(
"8 SPS:0,16 SPS:1,32 SPS:2,64 SPS:3,128 SPS:4,250 SPS:5,475 SPS:6,860 SPS:7");
const std::array< std::pair< uint16_t, uint16_t >, 4 > minMaxValAddr
void setAxes(uint8_t axes, bool differential)
void i2cTxCompleted(I2CPort *port)
ADS111X_AnalogSource_commands
static ClassIdentifier info
std::vector< int32_t > rawbuf
CommandStatus command(const ParsedCommand &cmd, std::vector< CommandReply > &replies)
void i2cRxCompleted(I2CPort *port)
void i2cError(I2CPort *port)
virtual const ClassIdentifier getInfo()
std::vector< int32_t > * getAxes()
volatile ADS111X_AnalogSource_state state
struct ADS111X::@675 registers
void startI2CTransfer(I2CPort *port)
void setGain(uint16_t gain)
void endI2CTransfer(I2CPort *port)
void writeReg(const uint8_t reg, uint16_t data)
void writeRegIT(const uint8_t reg, uint16_t data)
void setThresh(uint16_t loTh, uint16_t hiTh)
ADS111X(I2CPort &port, uint8_t address=0x48)
void startConversion(uint8_t channel, bool differential=false)
uint16_t readReg(const uint8_t reg)
void readRegIT(const uint8_t reg, uint16_t *data)
void setDatarate(uint16_t rate)
void saveMinMaxValues(const std::array< std::pair< uint16_t, uint16_t >, size > &minMaxAddresses)
void processAxes(std::vector< int32_t > &buf)
static AnalogProcessingConfig decodeAnalogProcessingConfFromInt(uint16_t val)
AnalogProcessingConfig & getAnalogProcessingConfig()
CommandStatus command(const ParsedCommand &cmd, std::vector< CommandReply > &replies)
void restoreMinMaxValues(const std::array< std::pair< uint16_t, uint16_t >, size > &minMaxAddresses)
static uint16_t encodeAnalogProcessingConfToInt(AnalogProcessingConfig &conf)
void setAnalogProcessingConfig(AnalogProcessingConfig conf)
std::vector< int32_t > buf
void registerCommand(const char *cmd, const ID cmdid, const char *help=nullptr, uint32_t flags=0)
bool writeMemIT(I2CDevice *device, const uint16_t devAddr, const uint16_t memAddr, const uint16_t memAddSize, uint8_t *pData, const uint16_t size, bool shiftAddr=true)
bool readMem(I2CDevice *device, const uint16_t devAddr, const uint16_t memAddr, const uint16_t memAddSize, uint8_t *pData, const uint16_t size, const uint32_t timeout, bool shiftAddr=true)
void freePort(I2CDevice *device)
bool readMemIT(I2CDevice *device, const uint16_t devAddr, const uint16_t memAddr, const uint16_t memAddSize, uint8_t *pData, const uint16_t size, bool shiftAddr=true)
void takePort(I2CDevice *device)
bool writeMem(I2CDevice *device, const uint16_t devAddr, const uint16_t memAddr, const uint16_t memAddSize, uint8_t *pData, const uint16_t size, const uint32_t timeout, bool shiftAddr=true)
uint32_t WaitForNotification(TickType_t Timeout=portMAX_DELAY)
void Delay(const TickType_t Delay)
bool Flash_Write(uint16_t adr, uint16_t dat)
bool Flash_Read(uint16_t adr, uint16_t *buf, bool checkempty=true)