uTL
micro Template library
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.