71 uint8_t firmware_version_ = 0;
73 bool dataBufferIncludesStatusByte =
false;
75 std::vector<uint8_t> dataBuffer;
76 uint16_t commandSleepTime = 1000;
77 size_t currentReadOffset = -1;
78 bool shouldReadFrameId =
false;
80 unsigned int transmissionWidth = 16;
81 unsigned int transmissionRightShift = 0;
91 void parseNewData(
bool includesStatusByte);
92 void processStatusByte(uint8_t newStatusByte);
93 int writeCommandAndHandle(
const i2c_char_t* data,
size_t size,
const char* name);
94 int writeCommandAndHandle(i2c_char_t command,
const char* name);
95 int readBytesFrom(uint8_t offset, i2c_char_t* data,
size_t size,
const char* name);
96 int readBytesFrom(uint8_t offset, i2c_char_t& byte,
const char* name);
97 int waitForAck(uint8_t command,
const char* name);
98 void updateChannelMask(uint32_t mask);
100 uint8_t cmdCounter = 0;
101 bool readErrorOccurred;
102 bool enableVersionCheck =
true;
174 Trill(
unsigned int i2c_bus,
Device device, uint8_t i2c_address = 255);
180 int setup(
unsigned int i2c_bus,
Device device =
ANY, uint8_t i2c_address = 255);
188 static Device probe(
unsigned int i2c_bus, uint8_t i2c_address);
202 static std::vector<std::pair<Device,uint8_t> >
probeRange(
unsigned int i2c_bus,
size_t maxCount = 0);
225 int readI2C(
bool shouldReadStatusByte =
false);
241 void newData(
const uint8_t*
newData,
size_t len,
bool includesStatusByte =
false);
bool is1D()
Definition: Trill.cpp:831
bool is2D()
Definition: Trill.cpp:846
static Device getDeviceFromName(const std::string &name)
Definition: Trill.cpp:291
int setAutoScanInterval(uint16_t interval)
Definition: Trill.cpp:597
Trill Bar
Definition: Trill.h:34
static Device probe(unsigned int i2c_bus, uint8_t i2c_address)
Definition: Trill.cpp:236
Only set the EVT pin if activity is detected in the current frame.
Definition: Trill.h:52
float touchHorizontalLocation(uint8_t touch_num)
Definition: Trill.cpp:919
int setMode(Mode mode)
Definition: Trill.cpp:504
int setEventMode(EventMode mode)
Definition: Trill.cpp:621
unsigned int getNumChannels() const
Definition: Trill.cpp:976
int setTransmissionFormat(uint8_t width, uint8_t shift)
Definition: Trill.cpp:643
uint32_t getFrameIdUnwrapped()
Definition: Trill.cpp:827
int firmwareVersion()
Definition: Trill.h:266
A valid device of unknown type.
Definition: Trill.h:33
Scan capacitive channels after every I2C transaction or when timer expires, whichever comes first...
Definition: Trill.h:63
int setChannelMask(uint32_t mask)
Definition: Trill.cpp:627
unsigned int getDefaultNumChannels() const
Definition: Trill.cpp:981
void printDetails()
Definition: Trill.cpp:492
unsigned int getNumButtons()
Definition: Trill.h:546
int setTimerPeriod(float ms)
Definition: Trill.cpp:563
float touchHorizontalSize(uint8_t touch_num)
Definition: Trill.cpp:932
ScanTriggerMode
Definition: Trill.h:59
int updateBaseline()
Definition: Trill.cpp:654
float touchSize(uint8_t touch_num)
Definition: Trill.cpp:906
int setScanTrigger(ScanTriggerMode scanTriggerMode)
Definition: Trill.cpp:614
bool hasActivity()
Definition: Trill.cpp:818
Mode getMode()
Definition: Trill.h:270
static const std::string & getNameFromMode(Mode mode)
Definition: Trill.cpp:303
std::vector< float > rawData
Definition: Trill.h:140
static std::vector< std::pair< Device, uint8_t > > probeRange(unsigned int i2c_bus, size_t maxCount=0)
Definition: Trill.cpp:249
int readI2C(bool shouldReadStatusByte=false)
Read data from the device.
Definition: Trill.cpp:691
Trill Square
Definition: Trill.h:35
Trill Craft
Definition: Trill.h:36
float compoundTouchSize()
Definition: Trill.cpp:968
float compoundTouchLocation()
Definition: Trill.cpp:958
unsigned int getBytesToRead(bool includesStatusByte)
Definition: Trill.cpp:676
Device
Definition: Trill.h:31
void newData(const uint8_t *newData, size_t len, bool includesStatusByte=false)
Set data retrieved from the device.
Definition: Trill.cpp:713
int setIDACValue(uint8_t value)
Definition: Trill.cpp:546
int setPrescaler(uint8_t prescaler)
Definition: Trill.cpp:529
Do not scan capacitive channels.
Definition: Trill.h:60
void setVerbose(int verbose)
Definition: Trill.cpp:499
Trill Ring
Definition: Trill.h:37
No device.
Definition: Trill.h:32
int setup(unsigned int i2c_bus, Device device=ANY, uint8_t i2c_address=255)
Definition: Trill.cpp:127
float compoundTouchHorizontalLocation()
Definition: Trill.cpp:963
static constexpr uint8_t speedValues[4]
Definition: Trill.h:147
A class to use the Trill family of capacitive sensors. http://bela.io/trill.
Definition: Trill.h:13
int setMinimumTouchSize(float minSize)
Definition: Trill.cpp:551
static constexpr uint8_t prescalerMax
Definition: Trill.h:151
int setNoiseThreshold(float threshold)
Definition: Trill.cpp:534
unsigned int getNumHorizontalTouches()
Definition: Trill.cpp:868
Trill Hex
Definition: Trill.h:38
Scan capacitive channels after every I2C transaction.
Definition: Trill.h:61
Scan capacitive channels every time the timer set by setAutoScanInterval() expires.
Definition: Trill.h:62
bool hasReset()
Definition: Trill.cpp:813
float getButtonValue(uint8_t button_num)
Definition: Trill.cpp:891
Mode
Definition: Trill.h:19
same as ANY, for backwards compatibility
Definition: Trill.h:40
Trill Flex
Definition: Trill.h:39
EventMode
Definition: Trill.h:51
int readStatusByte()
Definition: Trill.cpp:803
static Mode getModeFromName(const std::string &name)
Definition: Trill.cpp:312
unsigned int getNumTouches()
Definition: Trill.cpp:859
Only set the EVT pin if activity is detected in the current or past frame.
Definition: Trill.h:53
float touchLocation(uint8_t touch_num)
Definition: Trill.cpp:878
static const std::string & getNameFromDevice(Device device)
Definition: Trill.cpp:267
int setScanSettings(uint8_t speed, uint8_t num_bits=12)
Definition: Trill.cpp:514
Device deviceType()
Definition: Trill.h:246
Set the EVT pin every time a new frame is available.
Definition: Trill.h:54
uint8_t getAddress()
Definition: Trill.h:274
uint8_t getFrameId()
Definition: Trill.cpp:823
int reset()
Definition: Trill.cpp:658