Начну с конца.
Что такое индекс единицы измеренияgol_avto, 19 Дек. 19, 19:53
Индекс единицы измерения это и есть индекс (номер) единицы измерения в списке единиц измерения. Найти этот список можно в поле 'units' в базе данных или в начале модуля lite.py:
...
'''Список единиц измерения используемых физических величин'''
units = ['', 'В', 'Вт', 'мл/час', '°C', 'мм.рт.ст.', 'мл', 'cek', 'мин', 'час']
...
Элементы списков в питоне нумеруются с нуля. Так что индекс "пустой" единицы - 0, индекс единицы напряжения (вольт) - 1, индекс мощности (ватт) - 2 и т.д. Кстати, об этом я Вам уже говорил.
Это что получается, если я подгружу пользовательский скрипт, то калибровку поправить не смогу без очистки базы? А если мне надо будет?
Это неправильно ИМХОgol_avto, 19 Дек. 19, 19:53
Нет не так. Если не будете подгружать пользовательские скрипты, не соответствующие Вашему оборудования, то калибруйте на здоровье. Сколько хотите и когда хотите. При условии, что загружены корректные пользовательские скрипты и система в данный момент функционирует в режиме 0 (мониторинг). Об этом поговорим, когда будем разбираться со скриптами.
Полная очистка базы (ключ -r) используется очень редко. Я предложил Вам воспользоваться ею исключительно из соображений простоты. Если Вы, например, "скормили" системе плохой пользовательский скрипт (синтаксически правильный, но не соответствующий Вашему оборудованию), она его, естественно, заглотит, но не может переварить (у нее "заболит животик":). В этом случае очистить желудочек можно просто удалив из БД поле с ключом 'uscript', где как раз и хранится некачественный скрипт. Сделать это можно точно так же, как Вы производите калибровку, только вместо команды cset(...) дать команду rdb.delete('uscript'). После этого перезагрузите синхронизатор. И все пройдет...
После очистки базы Р0 и Р1 поменялись местами. Это как это? И кто их поменял, я нет?gol_avto, 19 Дек. 19, 19:53
Имена элементов оборудования, обнаруженные системой, хранятся в базе данных. Если база очищена (например, с помощью параметра -r), то система заново именует устройства в порядке увеличения их адресов на шине i2c и номеров каналов (если встретился хаб). Эти имена вместе с hard-ключом сохраняются в БД и используются при последующих запусках синхронизатора (естественно, если запускаете без параметра -r). Если Вы подключили новое устройство, то система добавляет их в список, увеличивая номер после буквы, если однотипные устройства уже встречались. Видимо, когда Вы запускали синхронизатор первый раз, в системе был лишь один датчик давления (BMP). Система его поименовала как P0. Затем Вы, видимо, воткнули еще один датчик давления. Система его распознала и именовала как P1. И так далее. После того, как Вы, при помощи ключа -r, сбросили БД, а оба датчика остались подключенными, система их поименовала так, как они ей встретились при сканировании "железа". Датчик BMP оказался в конце, т.к. его i2c-адрес больше (0x77).
Если Вы хотите создать свою нумерацию имен устройств, отличающуюся от их адресации на шине i2c и номеров каналов хабов, то просто подключайте их к системе в нужном порядке, каждый раз запуская и останавливая синхронизатор (первый раз, естественно с ключом -r, а потом уже без).
Это самый простой (но максимально универсальный!) способ именования устройств, которые мне удалось придумать. Если знаете другой - скажите. Я подумаю. Можно, конечно, было сделать и отдельный диалог для именования... Но особого смысла в этом нет. Т.к. эта операция (впрочем, как и калибровка) при штатной эксплуатации системы очень редкая.
Вот что значит отсутствие пошаговой подробной инструкции по проведению калибровки.gol_avto, 19 Дек. 19, 19:53
Здесь я вынужден сделать некоторые пояснения. Все что я пишу здесь на форуме не является продвижением какого-либо коммерческого продукта. Я эту систему делаю для себя и в таком качестве она меня вполне устраивает. Гибкая, позволяющая "в два щелчка" автоматизировать любую (компактную) установку. Я подробно описываю свою систему здесь на форуме исключительно из следующих соображений:
1. При первоначальном изучении тонкостей дистилляции и ректификации этот форум мне сильно помог. Поэтому мои посты - своего рода "спасибо" данному форуму.
2. Какие-то частные решения могут быть полезны кому-то из коллег - пусть пользуются на здоровье.
3. "Инструкция" для собственного употребления: я часто пользуюсь своими же постами и инструкциями, которые мне просто не хочется держать в памяти.
4. Ну и профессиональная привычка: у нас работа считается законченной только тогда, когда она опубликована. Поскольку специальных журналов, издаваемых для самогонщиков, у нас нет, то данный форум - вполне подходящее "издательство" :) Ну привычка такая...
Начиная с какого-то периода я начал делать некоторые шаги по упрощению пользования системой коллегам-непрограммистам, но мои временн'ые ресурсы не безграчиничны. Что могу, то могу...
Ну и, наконец, я Вас предупреждал, что без базового знания питона пользоваться системой будет сложно. Вы не восприняли мои слова всерьез. Поэтому-то мы с Вами сейчас и проходим этот период "мучительных мучений". Так что наберитесь терпения и силы воли чтобы пройти дорогу до конца. Надеюсь, в конце пути Вы немножко освоите питон и убедитесь насколько легко и просто пользоваться этой системой.
Вот именно по этим соображениям я Вам выше и писал, что процедуру калибровки можно встроить непосредственно в lsync. Тогда вообще калибровку (по крайней мере запись калибровочной информации) через базу необходимости делать не будет, ведь lsync умеет общаться с железом напрямую, а для остальных скриптов достаточно будет только чтения калибровочных данных.ekochnev, 19 Дек. 19, 19:49
По большому счету, конечно Вы правы. Мне просто не хотелось на стадии "исканий" утяжелять синхронизатор. Да и операция калибровки редкая. Почти разовая. Но попробую в следующем релизе синхронизатора что-нибудь придумать. Не хочется связываться с GUI (разве что в виде отдельной утилиты). А curses, по понятным причинам, не очень богат виджетами. Поэтому придется либо искать, либо писать самому несколько виджетов. Ну, например, выпадающие списки с единицами измерений и т.п. Особой внутренней мотивации для этого практически нет. И Вам, и мне, и другим коллегам-программистам проще набрать команду в консоли. Но из соображений гуманизма, конечно нужно подумать и о наших коллегах-непрограммистах. Можно ли что-нибудь совсем несложное в реализации калибровок непосредственно в синхронизаторе придумать?