When I try to compile one of the example programs, e.g. Example-01_Basic.ino, I get compilation errors related to the QwI2C class in this library.
In file included from /home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/qwiic_tmf882x.h:53:0,
from /home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/qwiic_tmf882x.cpp:52:
/home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/qwiic_i2c.h:64:15: error: 'TwoWire' has not been declared
bool init(TwoWire& wirePort, bool bInit=false);
^~~~~~~
/home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/qwiic_i2c.h:77:5: error: 'TwoWire' does not name a type; did you mean 'TwoWire_h'?
TwoWire* _i2cPort;
^~~~~~~
TwoWire_h
In file included from /home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/qwiic_tmf882x.h:53:0,
from /home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/sfe_shim.cpp:62:
/home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/qwiic_i2c.h:64:15: error: 'TwoWire' has not been declared
bool init(TwoWire& wirePort, bool bInit=false);
^~~~~~~
/home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/qwiic_i2c.h:77:5: error: 'TwoWire' does not name a type; did you mean 'TwoWire_h'?
TwoWire* _i2cPort;
^~~~~~~
TwoWire_h
In file included from /home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/qwiic_i2c.cpp:48:0:
/home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/qwiic_i2c.h:64:15: error: 'TwoWire' has not been declared
bool init(TwoWire& wirePort, bool bInit=false);
^~~~~~~
/home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/qwiic_i2c.h:77:5: error: 'TwoWire' does not name a type; did you mean 'TwoWire_h'?
TwoWire* _i2cPort;
^~~~~~~
TwoWire_h
In file included from /home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/qwiic_tmf882x.h:53:0,
from /home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/sfe_arduino.cpp:60:
/home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/qwiic_i2c.h:64:15: error: 'TwoWire' has not been declared
bool init(TwoWire& wirePort, bool bInit=false);
^~~~~~~
/home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/qwiic_i2c.h:77:5: error: 'TwoWire' does not name a type; did you mean 'TwoWire_h'?
TwoWire* _i2cPort;
^~~~~~~
TwoWire_h
/home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/qwiic_i2c.cpp: In constructor 'QwI2C::QwI2C()':
/home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/qwiic_i2c.cpp:74:22: error: class 'QwI2C' does not have any field named '_i2cPort'
QwI2C::QwI2C(void) : _i2cPort{nullptr}
^~~~~~~~
/home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/qwiic_i2c.cpp: At global scope:
/home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/qwiic_i2c.cpp:83:6: error: prototype for 'bool QwI2C::init(arduino::TwoWire&, bool)' does not match any in class 'QwI2C'
bool QwI2C::init(TwoWire &wirePort, bool bInit)
^~~~~
In file included from /home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/qwiic_i2c.cpp:48:0:
/home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/qwiic_i2c.h:64:10: error: candidates are: bool QwI2C::init(int&, bool)
bool init(TwoWire& wirePort, bool bInit=false);
^~~~
/home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/qwiic_i2c.h:63:10: error: bool QwI2C::init()
bool init(void);
^~~~
/home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/qwiic_i2c.cpp: In member function 'bool QwI2C::init()':
/home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/qwiic_i2c.cpp:103:10: error: '_i2cPort' was not declared in this scope
if (!_i2cPort)
^~~~~~~~
/home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/qwiic_i2c.cpp:103:10: note: suggested alternative: 'Port'
if (!_i2cPort)
^~~~~~~~
Port
/home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/qwiic_i2c.cpp:104:31: error: no matching function for call to 'QwI2C::init(arduino::TwoWire&, bool)'
return init(Wire, true); // no wire, send in Wire and init it
^
/home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/qwiic_i2c.cpp:100:6: note: candidate: bool QwI2C::init()
bool QwI2C::init(void)
^~~~~
/home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/qwiic_i2c.cpp:100:6: note: candidate expects 0 arguments, 2 provided
In file included from /home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/qwiic_i2c.cpp:48:0:
/home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/qwiic_i2c.h:64:10: note: candidate: bool QwI2C::init(int&, bool)
bool init(TwoWire& wirePort, bool bInit=false);
^~~~
/home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/qwiic_i2c.h:64:10: note: no known conversion for argument 1 from 'arduino::TwoWire' to 'int&'
/home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/qwiic_i2c.cpp: In member function 'bool QwI2C::ping(uint8_t)':
/home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/qwiic_i2c.cpp:116:10: error: '_i2cPort' was not declared in this scope
if (!_i2cPort)
^~~~~~~~
/home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/qwiic_i2c.cpp:116:10: note: suggested alternative: 'Port'
if (!_i2cPort)
^~~~~~~~
Port
/home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/qwiic_i2c.cpp:119:5: error: '_i2cPort' was not declared in this scope
_i2cPort->beginTransmission(i2c_address);
^~~~~~~~
/home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/qwiic_i2c.cpp:119:5: note: suggested alternative: 'Port'
_i2cPort->beginTransmission(i2c_address);
^~~~~~~~
Port
/home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/qwiic_i2c.cpp: In member function 'bool QwI2C::writeRegisterByte(uint8_t, uint8_t, uint8_t)':
/home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/qwiic_i2c.cpp:131:10: error: '_i2cPort' was not declared in this scope
if (!_i2cPort)
^~~~~~~~
/home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/qwiic_i2c.cpp:131:10: note: suggested alternative: 'Port'
if (!_i2cPort)
^~~~~~~~
Port
/home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/qwiic_i2c.cpp:134:5: error: '_i2cPort' was not declared in this scope
_i2cPort->beginTransmission(i2c_address);
^~~~~~~~
/home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/qwiic_i2c.cpp:134:5: note: suggested alternative: 'Port'
_i2cPort->beginTransmission(i2c_address);
^~~~~~~~
Port
/home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/qwiic_i2c.cpp: In member function 'int QwI2C::writeRegisterRegion(uint8_t, uint8_t, uint8_t*, uint16_t)':
/home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/qwiic_i2c.cpp:166:5: error: '_i2cPort' was not declared in this scope
_i2cPort->beginTransmission(i2c_address);
^~~~~~~~
/home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/qwiic_i2c.cpp:166:5: note: suggested alternative: 'Port'
_i2cPort->beginTransmission(i2c_address);
^~~~~~~~
Port
/home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/qwiic_i2c.cpp: In member function 'int QwI2C::readRegisterRegion(uint8_t, uint8_t, uint8_t*, uint16_t)':
/home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/qwiic_i2c.cpp:186:10: error: '_i2cPort' was not declared in this scope
if (!_i2cPort)
^~~~~~~~
/home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/qwiic_i2c.cpp:186:10: note: suggested alternative: 'Port'
if (!_i2cPort)
^~~~~~~~
Port
/home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/qwiic_i2c.cpp:202:9: error: '_i2cPort' was not declared in this scope
_i2cPort->beginTransmission(addr);
^~~~~~~~
/home/carter/Arduino/libraries/SparkFun_Qwiic_TMF882X_Library/src/qwiic_i2c.cpp:202:9: note: suggested alternative: 'Port'
_i2cPort->beginTransmission(addr);
^~~~~~~~
Port
exit status 1
Compilation error: exit status 1