Какой тип машины вы спрашиваете? Машина, которая измеряет клин и округлость линз.
Я уже написал программное обеспечение для машины, и оно находится в производстве, но оно хрупкое и склонно к зависаниям, когда они не делают вещи в правильном порядке. Я пытаюсь найти лучший способ его построения, чтобы он был стабильным и обслуживаемым.
Вот быстрый двадцать секундный спуск. Есть два режима, настройка и запуск. В режиме настройки оператор может вручную перемещать любой из 6 различных двигателей с помощью одного из 6 различных тумблеров на панели управления. Они загружают все, затем переключают его в режим запуска, загружают линзу и нажимают кнопку go. Станок автоматически введет три индикатора, найдет край линзы, а затем повернет шпиндель и измеряет все расстояние вокруг клина.
Я закончил с очень плохой непроектностью наличия класса, который вызвал событие, которое сообщает, когда переключатель изменил состояние, какой он был переключателем и каково его новое состояние. Затем я делаю много «если» и прочее, чтобы определить, на что способна машина. Как вы можете себе представить, это очень и очень плохо.
У кого-нибудь есть хорошие идеи о том, как это структурировать? У меня есть некоторые из моих собственных, но я хочу услышать некоторые из тех, кто может быть немного более опытным в разработке приложений такого типа.