|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
28.06.2016, 11:44 | #1 |
Заблокирован
Регистрация: 06.02.2011
Сообщений: 1,999
|
Как сложную релейную схему преобразовать в мир ООП
Добрый день !
Если на форуме есть программисты железнодорожники , то поймут о чем речь. В общем нужно релейную систему управления движения поездов на станции преобразовать в технологию ООП. В этой системе есть функционально законченные релейные блоки, которые за что-то отвечают. Стрелки, светофоры, участки. Проблемы описать каждый блок в виде класса, труда не составляет. Основная проблема заключается в разработке взаимодействия обьектов этих классов с точки зрения ООП. При определенном маршруте взаимодействуют, определенные обьекты. Может кто подкинет разумные идейки , как это можно правильно реализовать. Нюансов очень много, поэтому задача не совсем простая. |
28.06.2016, 12:11 | #2 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,527
|
Маршрут ЕСТЬ объект
ЗНАЮЩИЙ о ВСЕХ своих "элементарных" (и не очень) объектах и О ПРАВИЛЬНОМ их состоянии для своей готовности. значит он может УЗНАТЬ их состояние, ПРИНЯТЬ решение о возможности/невозможности продолжения работы и ПОВЛИЯТЬ на это состояние в соответствии со СВОИМИ требованиями. Объекты В СВОЮ очередь могут ОТКАЗАТЬСЯ принимать состояние указанное маршрутом, если ОНО(новое состояние) почему либо неприемлемо и могут (или должны?) УВЕДОМИТЬ об этом МАРШРУТ. готовность маршрута == правильное состояние ВСЕХ его подсистем(объектов)!!! Объект (НЕ МАРШРУТ) имеет право знать в КАКОЙ МАРШРУТ он включен(он ВЕДЬ только один(или НОЛЬ) в любой момент времени) и МОЖЕТ(ОБЯЗАН) уведомить маршрут о ЛЮБОМ КРИТИЧНОМ СВОЕМ изменении (с указанием КТО(какой объект) изменился). Маршрут в свою очередь рассмотрев эти изменения принимает решения об изменении СВОЕГО состояния. по окончании работы маршрут ОБЯЗАН (в случае если объекты хранят данных о маршруте) УВЕДОМИТЬ все объекты о завершении (потребовать(!) удаления своих ссылок, а не удалЯть их самому).
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 28.06.2016 в 12:33. |
28.06.2016, 12:24 | #3 |
Заблокирован
Регистрация: 06.02.2011
Сообщений: 1,999
|
В общем я мыслил так.
Прописую все возможные маршруты на станции в какой-то контейнер. Что является элементами маршрута. 1. стрелки 2. участки. 3. светофоры В свою очередь стрелки входят в конкретные участки. Маршрут ограждается светофором. Светофор открывается на разрешающие показание только когда маршрут готов с проверкой условий безопасности. Хрен его знает как это все увязать. Как работает система вроде знаю. Пускай у меня есть на все обьекты указатели. |
28.06.2016, 12:34 | #4 | ||
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Я бы выбрал агентную модель, когда каждый элемент сам себе объект и в какой-то квант времени опрашивается их состояние. Вообще в AnyLogic есть готовый набор для железнодорожного моделирования. А для своего функционала есть возможность заюзать Ява. У меня курсач как раз по жд был в AnyLogicе.
Цитата:
программисты-проктологи программисты-дворники программисты-летчики Цитата:
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика Последний раз редактировалось Utkin; 28.06.2016 в 12:41. |
||
28.06.2016, 12:43 | #5 |
Заблокирован
Регистрация: 06.02.2011
Сообщений: 1,999
|
да не. надо решить эту проблему без этих прог.
На освоение этой проги уйдет куча времени, чем найдется альтернативное решение. |
28.06.2016, 12:50 | #6 | |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Цитата:
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
|
28.06.2016, 12:54 | #7 |
Заблокирован
Регистрация: 06.02.2011
Сообщений: 1,999
|
Благодарю за краткий обзор этой проги - но это не то.
Надо в голове придумать альтернативное решение |
28.06.2016, 12:58 | #8 | |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Цитата:
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
|
28.06.2016, 13:05 | #9 |
Заблокирован
Регистрация: 06.02.2011
Сообщений: 1,999
|
мне нужна идея в виде человеческого набора слов и все без этих стимуляторов.
по большему счету типов обьектов не так то и много . много только их в количественном виде. понятие маршрут использует определенный набор этих обьектов. маршрутов очень много и к каждому присуши свои особенности. - размыкание - замыкание - контроль - безопасность и т.д. ох и сложная задача |
28.06.2016, 13:17 | #10 | ||
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Цитата:
Вся система срабатывает как сумма показателей каждого объекта (например). То есть если хотя бы один объект говорит "нет" значит система не готова. Давайте один объект возьмем. Например стрелка. У нее 2 состояния - открыто/закрыто (или право/лево, пофиг). Одно состояние разрешает, другое запрещает движение, верно? Вы же не поедите туда куда не надо по маршруту? Цепочка всех этих состояний характеризует в целом как "маршрут готов" или "ехать нельзя". Ну вот создаете класс "диспетчер", его задача отправлять запрос о состоянии объектов. Эти состояния он например сравнивает с текстовым файлом (где например написано - стрелка влево или состояние машиниста "трезв"). Вот он как диспетчер суммирует все показания. Как только есть отклонение, значит ехать нельзя. Цитата:
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика Последний раз редактировалось Utkin; 28.06.2016 в 13:21. |
||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
как нарисовать сложную фигуру кнопки | deniscatch | JavaScript, Ajax | 8 | 15.01.2015 21:42 |
Как сделать сложную замену внутри строки | selform | Microsoft Office Excel | 3 | 02.11.2012 14:24 |
Как создать сложную таблицу в делфи? | Не_шарю_в_делфи | Помощь студентам | 0 | 21.05.2012 16:57 |
Надо составить сложную-сложную формулу | natincom | Microsoft Office Excel | 4 | 29.08.2011 09:03 |