// Данный пример определяет тип модуля реле или силового ключа подключённого к шине I2C.                    // * Строки со звёздочкой являются необязательными.
#include <iostream>                                                                                         //
#include "iarduino_I2C_Relay.h"                                                                             //   Подключаем библиотеку для работы с реле и силовыми ключами.
iarduino_I2C_Relay relay;                                                                                   //   Объявляем объект relay для работы с функциями и методами библиотеки iarduino_I2C_Relay.
                                                                                                            //   Если при объявлении объекта указать адрес, например, relay(0xBB), то пример будет работать с тем модулем, адрес которого был указан.
int main(){                                                                                                 //
    delay(500);                     std::cout << "На шине I2C ";                                            //
    if( relay.begin() ){            std::cout << "найден модуль с адресом 0x";                              //   Инициируем работу с модулем реле или силовыми ключами.
                                    std::cout << std::hex << int(relay.getAddress());                       //   Выводим текущий адрес модуля.
                                    std::cout <<", который является ";                                     	//
        switch( relay.getModel() ){                                                                         //   Сравниваем модель модуля с константами:
            case DEF_MODEL_2RM:     std::cout << "электромеханическим реле на 2-канала";           break;   //
            case DEF_MODEL_4RT:     std::cout << "твердотельным реле на 4-канала";                 break;   //
            case DEF_MODEL_4NC:     std::cout << "силовым ключом на 4 N-канала с измерением тока"; break;   //
            case DEF_MODEL_4PC:     std::cout << "силовым ключом на 4 P-канала с измерением тока"; break;   //
            case DEF_MODEL_4NP:     std::cout << "силовым ключом на 4 N-канала до 10A";            break;   //
            case DEF_MODEL_4PP:     std::cout << "силовым ключом на 4 P-канала до 10A";            break;   //
            default:                std::cout << "неизвестным силовым ключом или реле";                     //
        }                           std::cout << ", версия прошивки модуля: ";                              //
                                    std::cout << int(relay.getVersion());                                   //
                                    std::cout << ".0." ;                                                    //
    }else{                          std::cout << "нет ни силовых ключей, ни реле!" ;                        //   Если метод relay.begin() вернул false, значит библиотеке не удалось найти модуль реле или силовых ключей.
    }                               std::cout << "\n";                                                    	//
}                                                                                                           //
