a
    !i                     @   s   d Z ddlZG dd dZdS )u  
Функциональный класс
Предназначение: Функции и показели системы Raspberry Pi 1 model b+
Что умеем:
1. Определение температуры процессора
2. Отключение/включение/определение состояния индикатора загрузки raspi
Использование:
	Допускается переназначение индикатора на другой GPIO и подключение внешнего светодиода к этому GPIO.
	- подключите внешний светодиод последовательно с резистором ~220 Ом, по схеме:
		GPIO17 → резистор 220Ω → анод светодиода (+) → катод светодиода (-) → GND	
	- отредактируйте файл конфигурации:
		sudo nano /boot/config.txt
	- добавьте строку (если у вас уже есть настройки act_led, то закомментируйте их или измените):
		dtparam=act_led_gpio=17
	- если вы хотите полностью отключить встроенный светодиод, то можно также добавить:
		dtparam=act_led_trigger=none
		dtparam=act_led_activelow=off
		p.s. это не обязательно, если вы просто переназначаете GPIO.
	- сохраните и перезагрузите:
		sudo reboot
    Nc                   @   sT   e Zd ZddddZddddZedd	d
ZedddZdeddddZ	dS )RASPIz%/sys/class/thermal/thermal_zone0/tempz/sys/class/leds/led0/triggerz/sys/class/leds/led0/brightness)	temp_pathled_trigger_pathled_brightness_pathN)returnc                 C   s   d S )N )selfr   r   +/var/aqua_controller/devices/raspi/raspi.py__init__&   s    zRASPI.__init__c              
   C   s   zxt j| jd s*td| jd  dt| jd d$}t|  d }W d    n1 sd0    Y  t	|dW S  t
y } ztd|W Y d }~n
d }~0 0 d S )Nr   u	   Файл u    не найденrg     @@   u:   Ошибка определения температуры)ospathexistsDEFAULT_CONFIGFileNotFoundErroropenintreadstripround	ExceptionRuntimeError)r   fZcpu_temper   r   r	   get_cpu_temperature+   s    2zRASPI.get_cpu_temperaturec              
   C   s   zTt | jd d}|  }W d    n1 s40    Y  d|v rLW dS W dS W n2 ty } ztd| W Y d }~n
d }~0 0 d S )Nr   r   z[heartbeat]   r   uM   Ошибка определения состояния индикатора: )r   r   r   r   r   r   )r   r   Ztriggerr   r   r   r	   get_led_loader8   s    *
zRASPI.get_led_loaderr   )stater   c              
   C   s   z|dkr~t | jd d}|d W d    n1 s:0    Y  t | jd d}|d W d    n1 st0    Y  |dkrt | jd d}|d W d    n1 s0    Y  W n2 ty } ztd	| W Y d }~n
d }~0 0 d S )
Nr   r   wZnoner   0r   Z	heartbeatuI   Ошибка установки состояния индикатора: )r   r   writer   r   )r   r   r   r   r   r   r	   set_led_loaderF   s    ((,zRASPI.set_led_loader)r   )
__name__
__module____qualname__r   r
   floatr   r   r   r"   r   r   r   r	   r      s   r   )__doc__r   r   r   r   r   r	   <module>   s   