//---------------------------------------------------------------guard--
#ifndef I2C_H
#define I2C_H

//-----------------------------------------------------------<include>--
#include <vector>
#include <string>

//-----------------------------------------------------------"include"--

class I2C_Device
{
//member types
    public:
        struct Exception
        {
            int ErrorCode;

            Exception( int Error ) : ErrorCode( Error )
            {}
        };
        using Buffer = std::vector< uint8_t >;

//member data
    private:
        std::string DeviceName;
        uint8_t     Address7;

        int         Id;

//constructors/destructor
    public:
        I2C_Device( unsigned int Bus, uint8_t Address );
        ~I2C_Device();

//member functions
    public:
        bool     Read ( Buffer& InputBuffer ) const;
        bool     Write( const Buffer& OutputBuffer ) const;
        uint16_t ReadRegisterWord    ( uint8_t Register ) const;
        uint16_t ReadRegisterWordSwap( uint8_t Register ) const;
};

//----------------------------------------------------------------------
#endif
//-----------------------------------------------------------------eof--
