13class Trill :
public I2c
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);
void newData(const uint8_t *newData, size_t len, bool includesStatusByte=false)
Set data retrieved from the device.
Definition Trill.cpp:713
static const std::string & getNameFromMode(Mode mode)
Definition Trill.cpp:303
unsigned int getNumChannels() const
Definition Trill.cpp:976
int setPrescaler(uint8_t prescaler)
Definition Trill.cpp:529
bool is1D()
Definition Trill.cpp:831
int setMinimumTouchSize(float minSize)
Definition Trill.cpp:551
int updateBaseline()
Definition Trill.cpp:654
float touchHorizontalSize(uint8_t touch_num)
Definition Trill.cpp:932
uint8_t getAddress()
Definition Trill.h:274
int reset()
Definition Trill.cpp:658
int setup(unsigned int i2c_bus, Device device=ANY, uint8_t i2c_address=255)
Definition Trill.cpp:127
void printDetails()
Definition Trill.cpp:492
int setIDACValue(uint8_t value)
Definition Trill.cpp:546
EventMode
Definition Trill.h:51
@ kEventModeTouch
Only set the EVT pin if activity is detected in the current frame.
Definition Trill.h:52
@ kEventModeChange
Only set the EVT pin if activity is detected in the current or past frame.
Definition Trill.h:53
@ kEventModeAlways
Set the EVT pin every time a new frame is available.
Definition Trill.h:54
ScanTriggerMode
Definition Trill.h:59
@ kScanTriggerDisabled
Do not scan capacitive channels.
Definition Trill.h:60
@ kScanTriggerI2c
Scan capacitive channels after every I2C transaction.
Definition Trill.h:61
@ kScanTriggerTimer
Scan capacitive channels every time the timer set by setAutoScanInterval() expires.
Definition Trill.h:62
@ kScanTriggerI2cOrTimer
Scan capacitive channels after every I2C transaction or when timer expires, whichever comes first.
Definition Trill.h:63
Device
Definition Trill.h:31
@ FLEX
Trill Flex
Definition Trill.h:39
@ RING
Trill Ring
Definition Trill.h:37
@ HEX
Trill Hex
Definition Trill.h:38
@ UNKNOWN
same as ANY, for backwards compatibility
Definition Trill.h:40
@ CRAFT
Trill Craft
Definition Trill.h:36
@ BAR
Trill Bar
Definition Trill.h:34
@ SQUARE
Trill Square
Definition Trill.h:35
@ NONE
No device.
Definition Trill.h:32
@ ANY
A valid device of unknown type.
Definition Trill.h:33
unsigned int getNumTouches()
Definition Trill.cpp:859
float compoundTouchLocation()
Definition Trill.cpp:958
int readStatusByte()
Definition Trill.cpp:803
uint8_t getFrameId()
Definition Trill.cpp:823
bool hasReset()
Definition Trill.cpp:813
static Mode getModeFromName(const std::string &name)
Definition Trill.cpp:312
unsigned int getNumHorizontalTouches()
Definition Trill.cpp:868
int setChannelMask(uint32_t mask)
Definition Trill.cpp:627
float touchLocation(uint8_t touch_num)
Definition Trill.cpp:878
int setScanTrigger(ScanTriggerMode scanTriggerMode)
Definition Trill.cpp:614
int setAutoScanInterval(uint16_t interval)
Definition Trill.cpp:597
int setNoiseThreshold(float threshold)
Definition Trill.cpp:534
int readI2C(bool shouldReadStatusByte=false)
Read data from the device.
Definition Trill.cpp:691
int setMode(Mode mode)
Definition Trill.cpp:504
void setVerbose(int verbose)
Definition Trill.cpp:499
float compoundTouchSize()
Definition Trill.cpp:968
float touchHorizontalLocation(uint8_t touch_num)
Definition Trill.cpp:919
unsigned int getDefaultNumChannels() const
Definition Trill.cpp:981
static constexpr uint8_t speedValues[4]
Definition Trill.h:147
int setEventMode(EventMode mode)
Definition Trill.cpp:621
bool hasActivity()
Definition Trill.cpp:818
unsigned int getNumButtons()
Definition Trill.h:546
float compoundTouchHorizontalLocation()
Definition Trill.cpp:963
Mode getMode()
Definition Trill.h:270
std::vector< float > rawData
Definition Trill.h:140
int setScanSettings(uint8_t speed, uint8_t num_bits=12)
Definition Trill.cpp:514
static Device getDeviceFromName(const std::string &name)
Definition Trill.cpp:291
static const std::string & getNameFromDevice(Device device)
Definition Trill.cpp:267
int setTimerPeriod(float ms)
Definition Trill.cpp:563
Device deviceType()
Definition Trill.h:246
int setTransmissionFormat(uint8_t width, uint8_t shift)
Definition Trill.cpp:643
bool is2D()
Definition Trill.cpp:846
static std::vector< std::pair< Device, uint8_t > > probeRange(unsigned int i2c_bus, size_t maxCount=0)
Definition Trill.cpp:249
static Device probe(unsigned int i2c_bus, uint8_t i2c_address)
Definition Trill.cpp:236
uint32_t getFrameIdUnwrapped()
Definition Trill.cpp:827
unsigned int getBytesToRead(bool includesStatusByte)
Definition Trill.cpp:676
Mode
Definition Trill.h:19
@ RAW
Definition Trill.h:23
@ AUTO
Definition Trill.h:20
@ BASELINE
Definition Trill.h:24
@ DIFF
Definition Trill.h:25
@ CENTROID
Definition Trill.h:22
float getButtonValue(uint8_t button_num)
Definition Trill.cpp:891
float touchSize(uint8_t touch_num)
Definition Trill.cpp:906
static constexpr uint8_t prescalerMax
Definition Trill.h:151
int firmwareVersion()
Definition Trill.h:266