lsync
index
/home/pi/LITE2/190814_0200/lsync.py

Синхронизатор состояния оборудования и показаний датчиков варианта LITE и 
БД Redis
v.0.2.0.0
-------------------------------------------------------------------------------
История изменений - в конце файла
OldBean, 12.08.2019

 
Modules
       
fcntl
inspect
io
math
redis
SMBus
sys
time

 
Classes
       
builtins.object
BMP180
BMP280
I2C
Hub
PDM
PWM
RMS
Relay
MS5611

 
class BMP180(builtins.object)
    Класс датчика атмосферного давления BMP180
 
  Methods defined here:
__init__(self, addr)
__init__(self, addr)
Конструктор. addr - адрес утройства на шине i2c.
conv(self)
conv()
Запуск преобразования, считывание сырых данных с датчика,
вычисление температуры и давления
update(self)

Data descriptors defined here:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)
val

Data and other attributes defined here:
fc = 85

 
class BMP280(builtins.object)
    Класс датчика атмосферного давления BMP280
 
  Methods defined here:
__init__(self, addr)
__init__(self, addr)
Конструктор. addr - адрес утройства на шине i2c.
conv(self)
conv()
Запуск преобразования, считывание сырых данных с датчика,
вычисление температуры и давления
update(self)

Data descriptors defined here:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)
val

Data and other attributes defined here:
fc = 88

 
class Hub(I2C)
    Класс 8-канального хаба (моста) между шиной i2c и 8 шинами 1-Wire. На
каждой шине 1-Wire должно быть только одно устройство
 
 
Method resolution order:
Hub
I2C
builtins.object

Methods defined here:
__init__(self, addr)
__init__(self, addr)
Конструктор. addr - адрес на шине i2c
conv(self)
rc(self)
rc()
Чтение калибровочный данных и сохранение их в calibr
update(self)
wc(self, ch, coef=1.0, offset=0, ui=0)
Запись калибровочных данных в EEPROM
coef - калибровочный коэффициент для получения физ. величины из кода
offset - смещение кода
ui - индекс единицы измерения физической величины

Data and other attributes defined here:
fc = 165

Methods inherited from I2C:
rd(self, nb, nt=100, slp=0.01)
rd(nb, nt = 100, slp = 0.01)
Чтение блока данных с проверкой готовности TWI
  nb - количество считываемых байтов
  nt - максимальное количество попыток записи
  slp - задержка между попытками в сек
wd(self, buf, nt=100, slp=0.01)
wd(buf, nt = 100, slp = 0.01)
Запись блока данных в устройство с проверкой готовности TWI
  buf - строка байтов
  nt - максимальное количество попыток записи
  slp - задержка между попытками в сек

Data descriptors inherited from I2C:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)

 
class I2C(builtins.object)
    Класс для работы с шиной i2c
 
  Methods defined here:
__init__(self, addr)
__init__(self, addr)
Конструктор. addr - адрес на шине i2c
rd(self, nb, nt=100, slp=0.01)
rd(nb, nt = 100, slp = 0.01)
Чтение блока данных с проверкой готовности TWI
  nb - количество считываемых байтов
  nt - максимальное количество попыток записи
  slp - задержка между попытками в сек
wd(self, buf, nt=100, slp=0.01)
wd(buf, nt = 100, slp = 0.01)
Запись блока данных в устройство с проверкой готовности TWI
  buf - строка байтов
  nt - максимальное количество попыток записи
  slp - задержка между попытками в сек

Data descriptors defined here:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)

Data and other attributes defined here:
fc = 0

 
class MS5611(builtins.object)
    Класс датчика атмосферного давления MS5611
 
  Methods defined here:
__init__(self, addr)
__init__(self, addr)
Конструктор. addr - адрес утройства на шине i2c.
conv(self)
conv()
Запуск преобразования. OSR = 1024, считывание сырых данных с датчика,
вычисление температуры и давления
update(self)

Data descriptors defined here:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)
val

Data and other attributes defined here:
fc = 89

 
class PDM(I2C)
    Класс силового модуля PDM
 
 
Method resolution order:
PDM
I2C
builtins.object

Methods defined here:
__init__(self, addr)
Конструктор. addr - адрес на шине i2c
off(self)
on()
Установка минимального уровня модуляции (0%) - выключение
on(self)
on()
Установка максимального уровня модуляции (100%)
rc(self)
Чтение калибровочный данных и сохранение их в calibr
wc(self, coef=1.0, offset=0, ui=0)
Запись калибровочных данных в EEPROM
coef - калибровочный коэффициент для получения физ. величины из кода
offset - смещение кода
ui - индекс единицы измерения физической величины

Data descriptors defined here:
code
Свойство code - уровень PDM в %
val
Свойство val - значение физической величины в единицах измерения, указанных
в калибровке

Data and other attributes defined here:
fc = 163

Methods inherited from I2C:
rd(self, nb, nt=100, slp=0.01)
rd(nb, nt = 100, slp = 0.01)
Чтение блока данных с проверкой готовности TWI
  nb - количество считываемых байтов
  nt - максимальное количество попыток записи
  slp - задержка между попытками в сек
wd(self, buf, nt=100, slp=0.01)
wd(buf, nt = 100, slp = 0.01)
Запись блока данных в устройство с проверкой готовности TWI
  buf - строка байтов
  nt - максимальное количество попыток записи
  slp - задержка между попытками в сек

Data descriptors inherited from I2C:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)

 
class PWM(I2C)
    Класс силового модуля PWM
 
 
Method resolution order:
PWM
I2C
builtins.object

Methods defined here:
__init__(self, addr)
Конструктор. addr - адрес на шине i2c
off(self)
off()
Установка минимального уровня модуляции (0%, выключение)
on(self)
on()
Установка максимального уровня модуляции (100.0%)
rc(self)
rc()
Чтение калибровочный данных и сохранение их в calibr
resetQ(self)
resetQ()
Сброс интегратора
wc(self, coef=1.0, offset=0, ui=0)
wc(self, coef = 1.0, offset = 0, ui = 0)
Запись калибровочных данных в EEPROM
  coef - калибровочный коэффициент для получения физ. величины из кода
  offset - смещение кода
  ui - индекс единицы измерения физической величины

Data descriptors defined here:
Q
Свойство Q - интеграл физической величины, регулируемой контроллером.
В случае клапана отбора - это полный расход через клапан с момента
последнего сброса интегратора (resetQ())
code
Свойство code - уровень PWM в десятых долях %
val
Свойство val - значение физической величины в единицах измерения, указанных
в калибровке

Data and other attributes defined here:
fc = 164

Methods inherited from I2C:
rd(self, nb, nt=100, slp=0.01)
rd(nb, nt = 100, slp = 0.01)
Чтение блока данных с проверкой готовности TWI
  nb - количество считываемых байтов
  nt - максимальное количество попыток записи
  slp - задержка между попытками в сек
wd(self, buf, nt=100, slp=0.01)
wd(buf, nt = 100, slp = 0.01)
Запись блока данных в устройство с проверкой готовности TWI
  buf - строка байтов
  nt - максимальное количество попыток записи
  slp - задержка между попытками в сек

Data descriptors inherited from I2C:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)

 
class RMS(I2C)
    Класс-обертка датчика RMS
 
 
Method resolution order:
RMS
I2C
builtins.object

Methods defined here:
__init__(self, addr)
__init__(self, addr)
Конструктор. addr - адрес на шине i2c
conv(self)
conv()
Запуск цикла преобразования датчика
rc(self)
rc()
Чтение калибровочных данных и сохранение их в списке calibr
update(self)
update()
Чтение сырых данных (кода) с устройства и вычисление RMS напряжения
wc(self, coef=1.0, offset=0, ui=0)
wc(self, coef = 1.0, offset = 0, ui = 0)
Запись калибровочных данных в EEPROM
  coef - калибровочный коэффициент для получения физ. величины из кода
  offset - смещение кода АЦП
  ui - индекс единицы измерения физической величины в списке units

Data and other attributes defined here:
fc = 161

Methods inherited from I2C:
rd(self, nb, nt=100, slp=0.01)
rd(nb, nt = 100, slp = 0.01)
Чтение блока данных с проверкой готовности TWI
  nb - количество считываемых байтов
  nt - максимальное количество попыток записи
  slp - задержка между попытками в сек
wd(self, buf, nt=100, slp=0.01)
wd(buf, nt = 100, slp = 0.01)
Запись блока данных в устройство с проверкой готовности TWI
  buf - строка байтов
  nt - максимальное количество попыток записи
  slp - задержка между попытками в сек

Data descriptors inherited from I2C:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)

 
class Relay(I2C)
    Класс силового модуля релейного типа
 
 
Method resolution order:
Relay
I2C
builtins.object

Methods defined here:
__init__(self, addr)
__init__(self, addr)
Конструктор. addr - адрес на шине i2c
off(self)
on(self)

Data descriptors defined here:
code
val

Data and other attributes defined here:
fc = 162

Methods inherited from I2C:
rd(self, nb, nt=100, slp=0.01)
rd(nb, nt = 100, slp = 0.01)
Чтение блока данных с проверкой готовности TWI
  nb - количество считываемых байтов
  nt - максимальное количество попыток записи
  slp - задержка между попытками в сек
wd(self, buf, nt=100, slp=0.01)
wd(buf, nt = 100, slp = 0.01)
Запись блока данных в устройство с проверкой готовности TWI
  buf - строка байтов
  nt - максимальное количество попыток записи
  slp - задержка между попытками в сек

Data descriptors inherited from I2C:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)

 
Functions
       
deser(buf)
deser(buf)
Вспомогательная функция для распаковки калибровочных данных. Результат
возвращается в виде списка [coef, offset, ui], где coef - масштабирующий
коэффициент, offset - смещение и ui - индекс единицы измерения
rpushlpop(key, val, flag)
rpushlpop(key, val, flag)
Реализация кольцевых списков в БД redis.
key - ключ БД, val - вставляемое значение, flag - индикатор типа списка
(True - кольцевой, False - обычный)
ser(coef, offset, ui)
ser(coef, offset, ui)
Вспомогательная функция для упаковки (сериализации) калибровочных данных (в
6 байтов) для хранения в БД. ТОчно в таком же виде эти данные хранятся в
EEPROM устройств

 
Data
        EE_SIZE = 6
I2C_SLAVE = 1795
Pi = 3
Qi = 2
SCR_SIZE = 9
Ti = 6
Ui = 1
Zci = 1
Zoi = 8
addr = 119
bus = <SMBus object>
ch = 7
chfc = 255
cls = {0: <class 'lsync.I2C'>, 85: <class 'lsync.BMP180'>, 88: <class 'lsync.BMP280'>, 89: <class 'lsync.MS5611'>, 161: <class 'lsync.RMS'>, 162: <class 'lsync.Relay'>, 163: <class 'lsync.PDM'>, 164: <class 'lsync.PWM'>, 165: <class 'lsync.Hub'>}
cname = 'units'
cobj = ['', 'В', 'Вт', 'мл/час', '°C', 'мм.рт.ст.', 'мл', 'cek', 'мин', 'час']
codes = {0: 'Нормально замкнутый контакт', 6: 'Отладочный макет', 40: 'Датчик температуры DS18B20', 85: 'Датчик давления BMP180', 88: 'Датчик давления BMP280', 89: 'Датчик давления MS5611', 161: 'Датчик RMS', 162: 'Твердотельное реле', 163: 'PDM-контроллер', 164: 'PWM-контроллер', ...}
fc = 255
i = 8
key = 'P2'
o = <lsync.BMP180 object>
obj = [<lsync.RMS object>, <lsync.Relay object>, <lsync.PDM object>, <lsync.PWM object>, <lsync.Hub object>, <lsync.PWM object>, <lsync.Hub object>, <lsync.BMP280 object>, <lsync.BMP180 object>]
qi = 2
ri = 1
su = {'P0': [<lsync.Hub object>, 5, [0.0734, 38, 5]], 'P1': [<lsync.BMP280 object>, -1, [0.00750061683, 0, 5]], 'P2': [<lsync.BMP180 object>, -1, [0.00750061683, 0, 5]], 'Q0': [<lsync.PWM object>, -1, [1.0, 0, 6]], 'Q1': [<lsync.PWM object>, -1, [1.0, 0, 6]], 'T0': [<lsync.Hub object>, 0, [0.0625, 0, 4]], 'T1': [<lsync.Hub object>, 1, [0.0625, 0, 4]], 'T2': [<lsync.Hub object>, 2, [0.0625, 0, 4]], 'T3': [<lsync.Hub object>, 3, [0.0625, 0, 4]], 'T4': [<lsync.Hub object>, 4, [0.0625, 0, 4]], ...}
units = ['', 'В', 'Вт', 'мл/час', '°C', 'мм.рт.ст.', 'мл', 'cek', 'мин', 'час']
wi = 1