WPF - имитация работы конвейера
Вот мысля появилась заменить чек бокс вкл/выкл на "картинку"
Тогда можно будет и детальку сверху положить и еще состояние других сенсоров добавить.
Что посоветуете в качестве базового элемента? А то я пока "рисовалки" через OnRender делал в выделенном классе.
Я, помнится, уже писал, что существует опасность использовать микроскоп для забивания гвоздей WPF не так, как он был задуман.
Для вашей задачи вам нужно переопределить ControlTemplate для чекбокса в XAML.
На форме фиг его знает сколько разных чекбоксов штук 70 наверное, не имеет никакого смысла вместо одной "птички" ставить одну картинку.
А десяток чекбоксов заменить картинкой уже смысл. Просто симитировать конкретное устройство. Так что конвейер это только начало.
Каждый чекбокс - это состояние конкретного сенсора. Левая дверь открыта, правая дверь открыта, воздух подан и т.п
Я пробовал только проблему описать. Но можно и подробнее.
Есть некая машина, которой управляет прога (не напрямую), прога давно кем то написана. Машина измеряет некие храктеристики металлических листов.
Есть входной лоток, из него "робот" берет лист, перемещает на весы, затем перемещает на конвейер, затем лист заталкивается в измерительную машину, после вытаскивается и попадает на следующее измерение, в итоге лист перемещается в выходной лоток.
На каждом этапе есть сенсоры в состоянии вкл/выкл. Например, пневмоцилинд может быт в исходном состоянии или в выдвинутом состоянии. Для контроля есть два сенсора для исходного положения и для конечного.
Конвейер может быть включен и выключен. Включен - "псиса" есть. выключен - "псисы" нет.
Сенсоров дофига и получить представление о состоянии машины довольно проблематично.
Чекбоксы - только для чтения, результат - лучший обзор состояния. "Руку задвигалку" я уже сделал. Вместо впереди, сзади, сверху, снизу - нарисован прямоугольник с "динамическими" точками в вершинах. Для конвейера нужны две разнесенные полуокружности, соединенные линиями по которым движустя >>>>. По идее, это анимация множества объектов движущихся по определенному пути, как это кинуть на форму думаю, вполне можно найти, мене же хочется иметь контролы, чтобы их можно было комбинировать потом как хошь, потому как "рука" на картинке должна находится внутри конвейера.
т.е. "симулятор" ничего не симулирает? или как он работает? это мог бы быть и список (списки) "on"/"off", а не чекбоксы. извините, туплю, не могу понять концепцию симулятора. что мы с его помощью делаем? я так понимаю, что управляет системой что-то другое. что произойдет, если мы преключим какой-нибудь чекбокс на симуляторе? или мы не можем этого сделать? почему иметь этот симулятор - это хорошо?
Около 70 Chekbox-ов в 4х столбцах
т.е. там нет никакого "конвейера", а просто сгруппированные в таблицу чекбоксы? это просто визуализатор, или с помощью этого симулятора мы можем что-нибудь симулировать (для чего/кого?)
>т.е. "симулятор" ничего не симулирает?
Это я где то написал и не так поняли? Нет для клиента симулятора. Есть два монитора и два окна, одно для работы в автоматическом режиме, другое для работы в ручном режиме.
Я пока рассказывал о ручном режиме. На этом окне кнопки и реадонли чекбоксы. PLC регулярно выдает 10 байт состояния = 80 бит (используются не все) вот это состояние и отражается чекбоксами. Типа дверь открыта/закрыта, цилиндр вверху/внизу, конвейер работает/остановлен и т.п.
Речь идет о визуализации этих 80 бит. Я хочу нарисовать что то типа вида сбоку на устройство и возможно вид сверху для некоторых частей.
Тогда будет сразу видно, где что открыто/закрыто, как передвигаются части во время работы и т.п.
т.е. точнее было бы сказать не имитация, а визуальизация? т.е. имеется некая шина от конвейера к нашему компьютеру, по которой тот с каким-то интервалом передает состояния каких-то сенсоров на реальном конвейере, и мы (вы, конечно вы! : ) хотим визуализировать понагляднее происходящее на конвейере (или симуляторе/имитаторе, который мы можем написать для отладки визуализатора, чтоб не гонять зря реальный конвейер).
в настоящий момент ради простоты эта "визуализация" реализована с помощью чембоксов, которые IsEnabled=false, а хочется "чего-нибудь такого".
правильно?
Где то так, только конвейер это малая часть от общей машины. Он всего лишь помогает подавать листы в измерительное устройство.
>а хочется "чего-нибудь такого".
обзора нет, нельзя бросить взляд на экран и сказать что происходит.
Кстати, симулятор PLC тоже делается что бы можно было отлаживать прогу без машины.
а что-нибудь такое подыскать, которое уже рисовать умеет, только выяснить, имеется ли какой-нибудь интерфейс, позволяющий написать некий адаптер, принимающий данные с шины и конвертирующий в язык этого приложения, а он уж пусть показывает? или самому повозиться охота?