ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
22 ноября
1301083
AlexG (14.04.2023 16:29, просмотров: 2899)
Нужна свежая идея, как подойти к задаче: Есть "панель оператора", через которую опреатор взаимодействует с некоторым набором разнотипных устройств. 

Протокол обмена данными между панелью и устройствами тяжеловат и для панели и для устройств, поэтому запросить необходимые для отображения текущего экрана данные быстро не получается. В панели реализована промужуточная "база" переменных, пользовательский интерфейс работает с быстрой "базой", параллельно специальный фоновый процесс как может подтягивает в базу данные из устройств и пишет в устройства результаты действий оператора. Добавляем к этому пометку используемых на текущем экране переменных, чтобы не тянуть не нужные сейчас, и все бы стало достаточно приличто, если бы не было вычисляемых переменных. Т.е. чтобы некоторую информацию показать, нужно не просто ее прочитать, а вычитать несколько переменных и посчитать. В обратную сторону это тоже работает, оператор что-то сделал и нужно как-то поменять состояние сразу нескольких переменных. Подтягивание таких непосредственно не связанных с пользовательским интерфейсом данных сейчас нерационально занимает пропускную способность канала и бывает, что видимая оператором информация обновляется слишком поздно/редко.


В идеале, хотелось бы иметь возможность на этапе написания прошивки панели указать, что у переменной есть зависимость от нескольких других и можно было бы добавить алгоритм ее вычисления. При этом пометка одной переменной, как требуемой для UI сейчас, приводила бы к пометке всех переменных, которые нужны для ее вычисления. Наверняка у настоящих программистов есть для подобных случая какой-нибудь паттерн?


Из средств достижения желаемого есть C, C++, легковесная RTOS (не Linux и не POSIX).