Задачи для начинающих
каков алгоритм работы?
Задача то ваша была, я написал как понял
https://foren.germany.ru/showmessage.pl?Number=37617857&Bo...
а что такое "стандартный режим" ?
я подразумевал что машинам зелёный по умолчанию, и только если пешеход кнопку нажал, то на некоторое время машинам включается красный (ну и желтый конечно)
конечно можно бес проблем "зелёный по умолчанию" убрать и переключать как по кнопке, так и по таймеру. Но тогда странно будет, если пешеходов нету, а машинам красный.
а что такое "стандартный режим" ?
то что видим каждый день RYGYR
Но тогда странно будет, если пешеходов нету, а машинам красный.
У меня на перекрестке именно так и кнопа есть.
Я так предполагал, что если ничего не сказано против этого так оно и есть.
Но в итоге мы делали разные задачи, хорошо хоть выяснили наконец. В общем, стандартное общение с заказчиком
ну вот теперь машины будут ездить не более 10 секунд (от балды цифра), даже если пешеходов нету.
Всё равно как то странно получается, то красный и зелёный не горят, то 10 секунд на желтый.
+------+-----+-----+ |Pdestr|Auto |Delay| | R G |R Y G| [s] | |------+-----+-----| | * | *|0.047| | | * |10.016| | * |* |2.016| | * | * |5.015| | * | *|1.016| | | * |10.015| | * |* |2.016| | * | * |5.016|
да на скорую руку сделано. не проверено.
неужто самому трудно проверить и подправить?
вот это железно будет работать:
но задержки, надеюсь, сможешь нужные поставить?!
чтоб точнее времена совпадали, надо почаще дергать. раз 10 в секунду - ок.
погрешность будет одна десятая секунды.
..........
итого должно быть так, если нету пешегоходов
- зеленый 30 сек (пешеходам красный)
- желтый 2 сек
- красный 5 сек (пешеходам зеленый)
- желтый 1 сек (пешеходам красный)
- и сначала.
неужто самому трудно проверить и подправить?
Ну как бы это сказать....
Стиль работы в команде предполагает, что каждый участник выполняет свою работу правильно и до конца. Если за каждым всё тестировать и переделывать, то ...
Пока, что видны только недостатки языков визуального программирования в области отладки. Что даже достаточно опытный программист, не может сразу предоставить работоспособный код.
Пысы: мне в принципе хватило того, что бы добавить туды табличку для вывода результатов.
Что полезно железякам - не полезно винде
Увы, ничего не могу даже проверить. Лампочка зеленого для авто постоянно мерцает. Auto Green False Auto Green Trueэто чтото у тебя не так. тут уж я зуб даю. ибо у себя проверил.
выложи как ты там дергаешь. что то не так.
надо сделать экземпляр Ампеля и его Process дергать по таймеру (10 раз в сек например)
Пока, что видны только недостатки языков визуального программирования в области отладки. Что даже достаточно опытный программист, не может сразу предоставить работоспособный код.да если без отладки релиз делать, то и с текстовым языком проблемы будут тем более, чем с визуальным.
тут уж я зуб даю.
Считай повезло, что я не зубной врач
Мерцает абсолютно всё, судя по коду.
R = Y = G = false; if (B1_Pulse) ... /*машины едут, пешеходы стоят*/ case 1: /*S1*/ { G = true;
выложи как ты там дергаешь.
Уже всё выкладывал
Сейчас, правда немного по другому
private static void Main(string[] args) { TrafficLight5 trafficLight = new TrafficLight5(); InitTraceState(); while (true) { trafficLight.RunStep(); if (trafficLight.IsAnyChanges) { TraceState(trafficLight); } } }
Мерцает абсолютно всё, судя по коду.код правильный. выходы надо читать после вызова Process, а то что там внутри происходит это вызывателя не касается.
Поэтому переопределение выходов - это твоя ошибка.
Я же не сделал выходы виртуальными, а ты это в моем коде подправил.
......
пардон не верно сказал про "виртуальными".
но ты сменил переменные на свойства, и считаешь изменением каждую запись в свойство (пусть даже другого значения), а это неверно.
читать надо не то что происходит внутри Процесс, а то что есть после Процесс.
выходы надо читать после вызова Process
Тогда я не понимаю как работает этот контроллер
По идее должно быть так:
У меня есть цифровой выход, к нему подключена релюшка/тиристор. Установили "1" - реле включилось зажгло лампочку, установили 0 реле отключилось.
Выход "R" - цифровой выход к красному сигналу авто.
Что там и как крутится внутри волновать не должно.
Не могу я выходы сразу читать, надо городить еще что то чтобы "выбросить ненужное".
надо где то так:
private static void Main(string<> args)
{
Ampel trafficLight = new Ampel();
while (true)
{
trafficLight.Process();
// Trace outputs ...
Sleep(100);
}
}
и R,G,Y надо оставить переменными, а не свойствами.
Что там и как крутится внутри волновать не должно.правильно. Но ты поменял внутреннюю часть моего кода: изменил выходные переменные на свойства, и вставил туда свой код.
Это неправильно.
Ты можешь только читать выходы и больше ничего.