Задачи для начинающих
не нажимая кнопок нельзя. ибо это пешеходный светофор по кнопке
Странно, а я считал, что это светофор с кнопкой запрашивающей приоритет перехода
По крайней мере, именно так описал.
а где описание?, что то я не заметил.
каков алгоритм работы?
каков алгоритм работы?
Задача то ваша была, я написал как понял
https://foren.germany.ru/showmessage.pl?Number=37617857&Bo...
а что такое "стандартный режим" ?
я подразумевал что машинам зелёный по умолчанию, и только если пешеход кнопку нажал, то на некоторое время машинам включается красный (ну и желтый конечно)
конечно можно бес проблем "зелёный по умолчанию" убрать и переключать как по кнопке, так и по таймеру. Но тогда странно будет, если пешеходов нету, а машинам красный.
а что такое "стандартный режим" ?
то что видим каждый день RYGYR
Но тогда странно будет, если пешеходов нету, а машинам красный.
У меня на перекрестке именно так и кнопа есть.
Я так предполагал, что если ничего не сказано против этого так оно и есть.
Но в итоге мы делали разные задачи, хорошо хоть выяснили наконец. В общем, стандартное общение с заказчиком
Всё равно как то странно получается, то красный и зелёный не горят, то 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
Увы, ничего не могу даже проверить. Лампочка зеленого для авто постоянно мерцает. 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 надо оставить переменными, а не свойствами.
так тут выкладывается не продукт, а идея.
ну идею то тоже надо как то проверить.
А то вот выложили набор красивых классов, а он оказывается на обычном компе работать не будет.
В этом случае тоже выясняются всё новые и новые подробности.
Что там и как крутится внутри волновать не должно.правильно. Но ты поменял внутреннюю часть моего кода: изменил выходные переменные на свойства, и вставил туда свой код.
Это неправильно.
Ты можешь только читать выходы и больше ничего.