modm API documentation
modm::Tmp102< I2cMaster > Class Template Reference

#include <modm/driver/temperature/tmp102.hpp>

Inheritance diagram for modm::Tmp102< I2cMaster >:
modm::Lm75< I2cMaster > modm::pt::Protothread modm::Lm75< I2cMaster > modm::I2cDevice< I2cMaster, 2 > modm::Fiber< MODM_PROTOTHREAD_STACK_SIZE > modm::I2cDevice< I2cMaster, 2 > modm::NestedResumable< 10+1 > modm::fiber::Task modm::NestedResumable< 10+1 >

Classes

struct  Data
 

Public Member Functions

 Tmp102 (Data &data, uint8_t address=0x48)
 
bool update ()
 
modm::ResumableResult< bool > setUpdateRate (uint8_t rate)
 
modm::ResumableResult< bool > enableExtendedMode (bool enable=true)
 Enables extended mode with 13 bit data format.
 
modm::ResumableResult< bool > readComparatorMode (bool &result)
 param[out] result contains comparator mode alert in the configured polarity
 
modm::ResumableResult< bool > setUpperLimit (float temperature)
 Writes the upper limit of the alarm.
 
modm::ResumableResult< bool > setLowerLimit (float temperature)
 Writes the lower limit of the alarm.
 
modm::ResumableResult< bool > startConversion ()
 starts a temperature conversion right now
 
DatagetData ()
 
void attachConfigurationHandler (I2c::ConfigurationHandler handler)
 
modm::ResumableResult< bool > configureAlertMode (ThermostatMode mode, AlertPolarity polarity, FaultQueue faults)
 
modm::ResumableResult< bool > ping ()
 
modm::ResumableResult< bool > read (uint8_t *buffer, std::size_t size)
 Starts a write transaction and waits until finished.
 
modm::ResumableResult< bool > readTemperature ()
 reads the Temperature registers and buffers the results
 
void setAddress (uint8_t address)
 
modm::ResumableResult< bool > write (const uint8_t *buffer, std::size_t size)
 Starts a write transaction and waits until finished.
 
modm::ResumableResult< bool > writeRead (const uint8_t *writeBuffer, std::size_t writeSize, uint8_t *readBuffer, std::size_t readSize)
 Starts a write-read transaction and waits until finished.
 

Protected Typedefs

using id = uintptr_t
 
using binary_semaphore = counting_semaphore< 1 >
 

Protected Types

enum  Start
 

Protected Member Functions

int8_t getResumableDepth () const
 
bool isResumableRunning () const
 
bool isTransactionRunning ()
 
modm::ResumableResult< bool > runTransaction ()
 Starts our own transaction and waits until finished.
 
bool startRead (uint8_t *buffer, std::size_t size)
 Configures the transaction with a read operation and starts it.
 
bool startTransaction ()
 Starts the transaction with our own transaction object.
 
bool startTransaction (modm::I2cTransaction *transaction)
 Starts the transaction with a separate transaction object.
 
bool startWrite (const uint8_t *buffer, std::size_t size)
 Configures the transaction with a write operation and starts it.
 
bool startWriteRead (const uint8_t *writeBuffer, std::size_t writeSize, uint8_t *readBuffer, std::size_t readSize)
 Configures the transaction with a write/read operation and starts it.
 
void stopResumable ()
 
bool wasTransactionSuccessful ()
 
modm::fiber::id get_id () const
 
stop_source get_stop_source ()
 
stop_token get_stop_token ()
 
bool isRunning () const
 
void join ()
 
bool joinable () const
 Checks if the Task object identifies an active fiber of execution.
 
bool request_stop ()
 
void restart ()
 
virtual bool run ()
 
size_t stack_usage () const
 
void stack_watermark ()
 
bool start ()
 
void stop ()
 
virtual bool update ()
 

Static Protected Member Functions

static constexpr unsigned int hardware_concurrency ()
 Returns the number of concurrent threads supported by the implementation.
 

Protected Attributes

I2cWriteReadTransaction transaction
 

Static Protected Attributes

static constexpr size_t StackAlignment
 Alignment requirements for the bottom and top of the stack.
 
static constexpr size_t StackSizeDefault
 
static constexpr size_t StackSizeMinimum
 Minimum stack size required to push one full fiber context.
 
enum  cv_status
 
using condition_variable = condition_variable_any
 There is no specialization for std::unique_lock<fiber::mutex>.
 

Detailed Description

template<class I2cMaster>
class modm::Tmp102< I2cMaster >

Author
Niklas Hauser

Member Typedef Documentation

using modm::Fiber< fiber::StackSizeDefault >::binary_semaphore = counting_semaphore<1>
inherited

Implements the std::binary_semaphore interface for fibers.

See also
https://en.cppreference.com/w/cpp/thread/counting_semaphore
using modm::Fiber< fiber::StackSizeDefault >::id = uintptr_t
inherited

Identifier of a fiber task.

Member Enumeration Documentation

enum modm::Fiber::Start
inheritedstrong

The Fiber scheduling policy.

Constructor & Destructor Documentation

template<class I2cMaster >
modm::Tmp102< I2cMaster >::Tmp102 ( Data data,
uint8_t  address = 0x48 
)

Constructor, requires a tmp102::Data object, sets address to default of 0x48 (alternatives are 0x49, 0x4A and 0x4B).

Member Function Documentation

void modm::I2cDevice< I2cMaster, 10 , I2cWriteReadTransaction >::attachConfigurationHandler ( I2c::ConfigurationHandler  handler)
inheritedinline

Attaches a configuration handler, which is called before a transaction, whenever the configuration has to be changed.

modm::fiber::id modm::fiber::Task::get_id ( ) const
inheritednodiscardinline

Returns a value of std::thread::id identifying the thread associated with *this.

Note
This function can be called from an interrupt.
bool modm::fiber::Task::isRunning ( ) const
inheritednodiscardinline
Returns
if the fiber is attached to a scheduler.
bool modm::I2cDevice< I2cMaster, 10 , I2cWriteReadTransaction >::isTransactionRunning ( )
inheritedinlineprotected
Returns
true when transaction is busy.
void modm::fiber::Task::join ( )
inheritedinline

Blocks the current fiber until the fiber identified by *this finishes its execution. Returns immediately if the thread is not joinable.

modm::ResumableResult<bool> modm::I2cDevice< I2cMaster, 10 , I2cWriteReadTransaction >::ping ( )
inheritedinline
Return Values
truedevice responds to address
falseno device with address found
bool modm::fiber::Task::request_stop ( )
inheritedinline
Note
This function can be called from an interrupt.
void modm::I2cDevice< I2cMaster, 10 , I2cWriteReadTransaction >::setAddress ( uint8_t  address)
inheritedinline

Sets a new address of the slave device.

Parameters
addressthe slave address not yet shifted left (address < 128).
size_t modm::fiber::Task::stack_usage ( ) const
inheritednodiscardinline
Returns
the stack usage as measured by a watermark level.
See also
modm_context_stack_usage().
void modm::fiber::Task::stack_watermark ( )
inheritedinline

Watermarks the stack to measure stack_usage() later.

See also
modm_context_stack_watermark().
bool modm::fiber::Task::start ( )
inherited

Adds the task to the currently active scheduler, if not already running.

Returns
if the fiber has been scheduled.
bool modm::I2cDevice< I2cMaster, 10 , I2cWriteReadTransaction >::wasTransactionSuccessful ( )
inheritedinlineprotected
Returns
true when transaction did not return an error.

Member Data Documentation

constexpr size_t modm::Fiber< fiber::StackSizeDefault >::StackSizeDefault
inheritedstaticconstexpr

The default stack size is estimated experimentally so that a fiber can use modm::IOStream to log out information, which is fairly stack intensive. Use modm::fiber::Task::stack_usage() to determine the real stack usage.


The documentation for this class was generated from the following files: