#encoding=utf-8
# Данный пример меняет адрес модуля на указанный в переменной «i».      		#  	
from pyiArduinoI2Crelay import *                                     		#	Подключаем библиотеку для работы с реле и силовыми ключами.
																				#
i = 0x09                                                               			#	Назначаемый модулю новый адрес (0x07 < адрес < 0x7F).
																				#
choices = {																		#	Структура для сравнения методом get()
	DEF_MODEL_2RM: "электромеханическим реле на 2-канала",						#
	DEF_MODEL_4RT: "твердотельным реле на 4-канала",							#
	DEF_MODEL_4NC: "силовым ключом на 4 N-канала с измерением тока",			#
	DEF_MODEL_4PC: "силовым ключом на 4 P-канала с измерением тока",			#
	DEF_MODEL_4NP: "силовым ключом на 4 N-канала до 10A",						#
	DEF_MODEL_4PP: "силовым ключом на 4 P-канала до 10A"						#
}																				#
																				#
relay = pyiArduinoI2Crelay()													#	Объявляем объект relay для работы с функциями и методами библиотеки iarduino_I2C_Relay.
print("На шине I2C ", end='')													#
if relay.begin():																#	Инициируем работу с модулем реле или силовыми ключами.
	address = relay.getAddress()												#	Если при объявлении объекта указать адрес, например, relay(0xBB), то пример будет работать с тем модулем, адрес которого был указан.
	model = relay.getModel()													#
	model = choices.get(model, "неизвестным силовым ключом или реле")			# 	Cравниваем модель модуля с константами, если ни одна не совпала - выводим строку по усолчанию
	print("найден модуль с адресом %s, который является %s" % (address, model))	#	Выводим текущий адрес модуля.
	if relay.changeAddress(i):													#	Меняем адрес модуля на указанный в переменной i.
		print("Адрес модуля изменён на %s" % (relay.getAddress()))				#	Выводим текущий адрес модуля.
	else:																		#	Если метод relay.changeAddress() вернул false, значит библиотеке не удалось сменить адрес модуля.
		print("Адрес модуля изменить не удалось!")								#
else:																			#	Если метод relay.begin() вернул false, значит библиотеке не удалось найти модуль реле или силовых ключей.
	print("нет ни силовых ключей, ни реле!")									#
