i2c.h File Reference

An Abstract base class interface for the i2c bus. More...

`#include <utl/core/impl.h>`
`#include <utl/core/crtp.h>`
`#include <utl/meta/meta.h>`

Go to the source code of this file.

## Classes

class | utl::i2c_i< impl_t >
| Abstract base class for i2c bus. More...
class | utl::i2c_i< virtual_tag >
| A virtual base class specialization. More...
struct | utl::i2c_i_details::is_i2c_< _Tp, typename >
| Primary template to catch any non I2C interface types. More...
struct | utl::i2c_i_details::is_i2c_< _Tp, meta::void_t< typename _Tp::Sequence, void > >
| template to catch a proper I2C interface type More...

## Namespaces

| utl
| STL's core language concepts.
| utl::i2c_i_details

## Typedefs

template<class _Tp >
using | utl::i2c_i_details::try_cclk_t = decltype(declval< const _Tp >().clock())
template<class _Tp >
using | utl::i2c_i_details::try_clk_t = decltype(declval< _Tp >().clock(declval< uint32_t >()))
template<class _Tp >
using | utl::i2c_i_details::try_start_t = decltype(declval< _Tp >().start())
template<class _Tp >
using | utl::i2c_i_details::try_stop_t = decltype(declval< _Tp >().stop())
template<class _Tp >
using | utl::i2c_i_details::try_rx_data_t = decltype(declval< _Tp >().rx_data(declval< bool >(), declval< typename _Tp::Sequence >()))
template<class _Tp >
using | utl::i2c_i_details::try_tx_data_t = decltype(declval< _Tp >().tx_data(declval< byte_t >(), declval< typename _Tp::Sequence >()))

## Detailed Description

An Abstract base class interface for the i2c bus.

Copyright (C) 2018 Christos Choutouridis

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Definition in file i2c.h.