-
- «идеальная» технология - Скрипач(20.04.2012 22:58, ссылка)
- А вот кстати, откуда пошло автоматное программирование? Давно интересуюсь. - mazur(26.04.2012 09:39)
- Автоматное программирование пошло от старой теории цифровых автоматов(ссылка внутри), когда еще и программирования не было, а автоматы делались на логических элементах. Vladimir Ljaschko(243 знак., 26.04.2012 10:01)
- "...названной автором автоматное программирование...". Аффтар сдохнет от скромности :))))) Ишшо немного самопиара и теория управления будет называться теорией Шалыто. - Codavr(24.04.2012 16:59 - 17:02)
- Есть инфа, что термин был предложен Д.А. Поспеловым. Возможно, с опорой на "автоматное и ситуационное управление", чем, собственно, и занимался последний. - Д.ARMоед(25.04.2012 09:36)
- Хорошо сказал - Vladimir Ljaschko(24.04.2012 22:32)
- Основной признак учёного - тщеславие. Так что всё нормально тут :-) - SciFi(24.04.2012 17:08)
- На самом деле по автоматному программированию намного большая подборка находится на сайте softcraft.ru, в том числе и подборка статей Шалыто. Желающие легко найдут на том сайте и пример построения GUI с обработкой событий на автоматах. И ничего bialix(18 знак., 23.04.2012 13:56, ссылка)
- Я читал эти материалы. Шалыто, Татарчевский и т.д. mazur(299 знак., 21.04.2012 08:44 - 11:16)
- Анахуа? Скрипач(84 знак., 21.04.2012 22:34)
- Хорошо. Пример: Скажем задали в меню режим "Одиночный\цикл". У меня это флаг. Этот режим должен отображаться на дисплее, и, соответственно, этот же флаг использует автомат цикла работы станка. Или опять все не так? - mazur(21.04.2012 23:18)
- Хорошо, отправил модуль меню модулю станка сообщение-запрос на значение счетчика тактов\изделий, температуры. Вот теперь с этого момента подробно пожалуйста. - mazur(24.04.2012 16:04)
- В смысле способ передачи данных? Можно просто наполнить структуру и передать через стек. Или запрашивать числа по одному, причём в запросе указывается, какой параметр хочется прочитать. - SciFi(24.04.2012 16:21)
- mazur не в курсе про принятые в Си соглашения о передаче параметров в функцию (с помощью выделенных регистров и/или стека). И про структуры в Си видимо слышал тоже лишь краем уха. - rezident(24.04.2012 16:44)
- Еще подробнее, пожалуйста. Особенно про стек. - mazur(24.04.2012 16:35)
- Это забота компилятора. Зачем отнимать у него хлеб? Если так сильно хочется знать, то читать можно начинать тут -> - SciFi(24.04.2012 16:41, ссылка)
- Мне нужен проверенный, работающий алгоритм. - mazur(24.04.2012 17:34)
- Если на С Михаил Е.(385 знак., 24.04.2012 19:14)
- Я надеялся передать крупицу знания, а меня тут фейсом об тэйбл. Так не интересно. - SciFi(24.04.2012 17:49)
- +1. Не тупи, посмотри ссылку. Сообщение-запрос не нужно. Нужно вызов подпрограммы (call) из другого модуля. - Скрипач(24.04.2012 18:18)
- Нахрена ему ваши знания о рыбной ловле, наживке и изготовлении удочки? Дайте ему готовую удочку! :) - rezident(24.04.2012 18:17)
- Мне нужен проверенный, работающий алгоритм. - mazur(24.04.2012 17:34)
- Это забота компилятора. Зачем отнимать у него хлеб? Если так сильно хочется знать, то читать можно начинать тут -> - SciFi(24.04.2012 16:41, ссылка)
- В смысле способ передачи данных? Можно просто наполнить структуру и передать через стек. Или запрашивать числа по одному, причём в запросе указывается, какой параметр хочется прочитать. - SciFi(24.04.2012 16:21)
- Да, всё не так. Флаг хранится в модуле станка - это ведь его режим. Модуль дисплея спрашивает у модуля станка его режим для отображения на дисплее. SciFi(700 знак., 21.04.2012 23:29 - 22.04.2012 00:06)
- Это Вы ему сейчас задвигаете про объектно ориентированное программирование? ;-)) - =AlexD=(22.04.2012 10:35)
- Нет. Как раз в объектно-ориентированном программировании никто не будет спрашивать ни у кого о хранимом состоянии. У объектов есть методы, вызывая которые мы заставляем их что-то делать. Вот это истинное объектное программирование. Более того, в bialix(397 знак., 23.04.2012 14:03)
- Смешались в кучу кони, люди. ООП не предполагает фиксации методе программирования пересылкой сообщений. ООП предлагает только синтаксически явную инкаплуляцию данных и методов работы с данными в один программный объект. =AlexD=(306 знак., 24.04.2012 15:25)
- инкапсуляция подразумевает скрытие информации. запрашивать информацию у объекта есть идеологически неправильно (зачем было скрывать с самого начала?). то, что все так программируют на плюсах, как вы говорите, не означает, что идея объектного bialix(140 знак., 24.04.2012 19:00)
- Объект, который никак не обменивается информацией с окружающим миром - это чёрная дыра ;-). Не нужно быть святошей, и натягивать презерватив на глобус. ООП стимулирует лишь сокрытие внутренних структур данных, =AlexD=(139 знак., 24.04.2012 21:18)
- То есть поллить апи состояние кнопки или завести колбэк на изменение состояния это одинаково? - signal(26.04.2012 06:35, )
- Объект, который никак не обменивается информацией с окружающим миром - это чёрная дыра ;-). Не нужно быть святошей, и натягивать презерватив на глобус. ООП стимулирует лишь сокрытие внутренних структур данных, =AlexD=(139 знак., 24.04.2012 21:18)
- инкапсуляция подразумевает скрытие информации. запрашивать информацию у объекта есть идеологически неправильно (зачем было скрывать с самого начала?). то, что все так программируют на плюсах, как вы говорите, не означает, что идея объектного bialix(140 знак., 24.04.2012 19:00)
- Смешались в кучу кони, люди. ООП не предполагает фиксации методе программирования пересылкой сообщений. ООП предлагает только синтаксически явную инкаплуляцию данных и методов работы с данными в один программный объект. =AlexD=(306 знак., 24.04.2012 15:25)
- Нет. Как раз в объектно-ориентированном программировании никто не будет спрашивать ни у кого о хранимом состоянии. У объектов есть методы, вызывая которые мы заставляем их что-то делать. Вот это истинное объектное программирование. Более того, в bialix(397 знак., 23.04.2012 14:03)
- Вот и расскажите, пожалуйста, подробно всю цепочку. Чем будет этот режим в модуле станка (флаг или что)? Как будет запрашивать модуль меню. Что чем как. Как модуль станка будет опрашивать режим и как отправлять. Все, что есть что. - mazur(21.04.2012 23:37)
- "2) Как будет запрашивать модуль меню? Вызов подпрограммы *из модуля станка." mazur(144 знак., 25.04.2012 10:04)
- Ответы Скрипач(682 знак., 21.04.2012 23:45 - 22.04.2012 11:45)
- Локальная переменная... У меня сейчас сделано так. В модуле меню. Набор макросов\подпрограмм. Вывод\изменение флагов\переменных. Чтобы уменьшить объем программы сделал передачей параметров в функцию из памяти программ. - mazur(21.04.2012 23:56 - 22.04.2012 00:36)
- Про объём программы - это, конечно, перл, то есть попросту заблуждение. Кстати, жизнь показывает, что излишний объём программы реальной проблемой бывает крайне редко. Гораздо реальней проблема выдуманного для самого себя геморроя под предлогом SciFi(31 знак., 22.04.2012 12:34)
- "Преждевременная оптимизация — корень всех зол в программировании"(с) (все великие программисты современности) - =AlexD=(22.04.2012 10:33)
- У вас телега стоит впереди лошади. "Чтобы уменьшить объем программы..." Скрипач(323 знак., 22.04.2012 10:23)
- Локальная переменная... У меня сейчас сделано так. В модуле меню. Набор макросов\подпрограмм. Вывод\изменение флагов\переменных. Чтобы уменьшить объем программы сделал передачей параметров в функцию из памяти программ. - mazur(21.04.2012 23:56 - 22.04.2012 00:36)
- Ну, для этого нужен как минимум язык Си. Никогда не пытался понять, как на ассемблере реализовать модульный подход. Наверняка можно, но убого и неудобно. - SciFi(21.04.2012 23:41)
- Это Вы ему сейчас задвигаете про объектно ориентированное программирование? ;-)) - =AlexD=(22.04.2012 10:35)
- Хорошо, отправил модуль меню модулю станка сообщение-запрос на значение счетчика тактов\изделий, температуры. Вот теперь с этого момента подробно пожалуйста. - mazur(24.04.2012 16:04)
- Хорошо. Пример: Скажем задали в меню режим "Одиночный\цикл". У меня это флаг. Этот режим должен отображаться на дисплее, и, соответственно, этот же флаг использует автомат цикла работы станка. Или опять все не так? - mazur(21.04.2012 23:18)
- Кто эти столпы программистской мысли? - SciFi(21.04.2012 16:00)
- Это авторы очень толковой методики проектирования систем управления. - Скрипач(22.04.2012 10:47)
- В смысле? - mazur(21.04.2012 16:33)
- В смысле надо сначала учебник прочитать (K&R), а потом уже научные работы. Кроме того, программирование - это ремесло, а не наука. Следовательно, гораздо полезнее читать профессионалов, а не академиков. - SciFi(21.04.2012 16:50)
- Да какие там академики? В середине 90х они были немногие из тех, кто чего-то ваял. Что-то сподвигло их написать статьи и поделиться опытом. - Vladimir Ljaschko(21.04.2012 16:58)
- В смысле надо сначала учебник прочитать (K&R), а потом уже научные работы. Кроме того, программирование - это ремесло, а не наука. Следовательно, гораздо полезнее читать профессионалов, а не академиков. - SciFi(21.04.2012 16:50)
- Кроме как для документации в одно место складывать не стОит. Vit(688 знак., 21.04.2012 09:29, youtube)
- Хорошие советы для ассемблерщика :-))) - =AlexD=(21.04.2012 10:20)
- накачанного:))) - Vit(21.04.2012 10:34)
- Хорошие советы для ассемблерщика :-))) - =AlexD=(21.04.2012 10:20)
- Анахуа? Скрипач(84 знак., 21.04.2012 22:34)
- Тема
сисексобытий не раскрыта. - Vladimir Ljaschko(21.04.2012 08:21)- А по моему, раскрыта идеально Скрипач(171 знак., 22.04.2012 10:58)
- "Состояния" автоматов ортогональны "событиям". Тема сисек таки не раскрыта, либо кто-то лукавит. - bialix(23.04.2012 13:53)
- ...или кто-то глух и не восприимчив к внешним раздражителям. Скрипач(75 знак., 24.04.2012 22:48)
- "Состояния" автоматов ортогональны "событиям". Тема сисек таки не раскрыта, либо кто-то лукавит. - bialix(23.04.2012 13:53)
- А по моему, раскрыта идеально Скрипач(171 знак., 22.04.2012 10:58)
- А вот кстати, откуда пошло автоматное программирование? Давно интересуюсь. - mazur(26.04.2012 09:39)
- Еще имеет смысл начинать строить уровни. Ввести "планировщик режимов", который управляет "блоками управления", которые управляют "блоками ИМ". - Скрипач(20.04.2012 18:03)
- Странно. Гуглил "события", "программирование события". Ничего толком не понял. Сегодня ввел "очередь событий" - сразу нашел некоторые ответы. Мистика какая-то... - mazur(20.04.2012 16:09)
- Семён Семёныч... - SciFi(20.04.2012 16:25)
- потому что нет такого "программирование события". - bialix(20.04.2012 16:24)
- ..потому что не так гуглил, ищи: "событийно-ориентированное программирование" (Event-driven programming). - blackbit(20.04.2012 16:22)
- Могу порекомендовать следующее. Скрипач(504 знак., 19.04.2012 13:23)
- Это называется KISS. Не согласен, на счёт потерь. Потери на обработку одного события в настоящей событийной системе могут на порядок быть больше (процессорное время, джоули батарейки). Но вот в сумме на единицу времени -- скорей наборот. Главный fk0(167 знак., 19.04.2012 22:11 - 22:24)
- ДА!! KISS! Именно об этом я и хотел сказать. О том что сложные механизмы нужно вводить ТОЛЬКО ТОГДА, когда не справляются простые. Иначе...по ссылке. - Скрипач(20.04.2012 16:53, ссылка)
- иногда введение сложного механизма (библиотека многозадачности) резко (очень резко) упрощает релизацию задачи - Mahagam(20.04.2012 16:56)
- Ключевое слово - "иногда". Точнее, тогда, когда более простые средства не справляются. Почитайте по моей ссылке. Особенно "С++". Скрипач(129 знак., 20.04.2012 17:01)
- иногда введение сложного механизма (библиотека многозадачности) резко (очень резко) упрощает релизацию задачи - Mahagam(20.04.2012 16:56)
- ДА!! KISS! Именно об этом я и хотел сказать. О том что сложные механизмы нужно вводить ТОЛЬКО ТОГДА, когда не справляются простые. Иначе...по ссылке. - Скрипач(20.04.2012 16:53, ссылка)
- Дополню/поправлю. Вовсе не нужно отказываться от естественного понятия "событие". "Событие" это изменение "состояния". Причем значений у "состояния" может быть несколько. rezident(1376 знак., 19.04.2012 18:29 - 18:40)
- Вечно фантазии. С коих пор событие стало "естественным" понятием? Событие - это сообщение, сгенерированное ПО и ничего "естественного" в embedded оно не несет, скорее требует дополнительных ресурсов для своей поддержки. blackbit(76 знак., 20.04.2012 00:40)
- Событие это абстрактное понятие, связанное с изменением состояниях чего-либо в окружающем нас мире. Даже если вы полностью живете в своем собственном виртуальном мире ПО, то вы не можете избежать абстракций. Потому, что таково rezident(75 знак., 20.04.2012 13:37 - 13:40)
- Если кто-то еще не заметил, в этой ветке идет речь о событиях, как о сущности из области разработки ПО. Причем здесь окружающий мир? - blackbit(20.04.2012 16:05)
- Если не доходит с первого раза, то перечитайте предыдущий пост еще раз. - rezident(20.04.2012 16:24, ссылка)
- ..если не доходит с первого раза, рекомендую учить матчасть. - blackbit(20.04.2012 16:47)
- Я не против. Учите. - rezident(20.04.2012 18:36, ссылка, ссылка)
- ..и я не против. Учи -=> blackbit(263 знак., 20.04.2012 19:39, ссылка)
- Я не против. Учите. - rezident(20.04.2012 18:36, ссылка, ссылка)
- ..если не доходит с первого раза, рекомендую учить матчасть. - blackbit(20.04.2012 16:47)
- Если не доходит с первого раза, то перечитайте предыдущий пост еще раз. - rezident(20.04.2012 16:24, ссылка)
- Если кто-то еще не заметил, в этой ветке идет речь о событиях, как о сущности из области разработки ПО. Причем здесь окружающий мир? - blackbit(20.04.2012 16:05)
- с тех пор как в этом мире случаются события, такие как: извержения вулканов, наводнения, цунами, падения метеоритов, пожары, приезд любимой тещи, ребенок принес двойку из школы, вам выдали зарплату, прозвенел звонок будильника, пришла SMS, ваш кот bialix(77 знак., 20.04.2012 11:22)
- Интересно, какое ПО генерирует события в вашей повседневной жизни? Неужели вы стали так зависимы от различных ПО? - Bill(20.04.2012 08:19)
- Событие это абстрактное понятие, связанное с изменением состояниях чего-либо в окружающем нас мире. Даже если вы полностью живете в своем собственном виртуальном мире ПО, то вы не можете избежать абстракций. Потому, что таково rezident(75 знак., 20.04.2012 13:37 - 13:40)
- Я хотел обратить внимание автора-темы на то, что очередь событий далеко не всегда удобна (хотя, где таки удобна, то обычно незаменима). Скрипач(319 знак., 19.04.2012 19:15)
- Несмотря на то, что с выворачиванием логики обработки наизнанку для работы с callback обработчиками событий, я уже наелся говна, ваше высказывание, что сканирование приведет к улучшение читабельности и ускорению кода, звучит бездоказательно и bialix(12 знак., 20.04.2012 11:18)
- Ссылки внутре Скрипач(225 знак., 20.04.2012 17:18)
- Это тот случай (не выворачивание наизнанку), когда простота хуже воровства. Выворачивание наизнанку позволяет перейти к честному (а не прикрученному поверх того же биглупа) event driven programming и избавиться таки от big loop. Другой вопрос, что fk0(230 знак., 19.04.2012 22:20)
- Это если ЦЕЛЬ ТАКАЯ - перейти к event drived :) Я предлагаю ОТКАЗАТЬСЯ от event drived. - Скрипач(20.04.2012 20:23)
- Очередь, очередь ... если быстродействие обеспечивает, зачем очередь? - Vladimir Ljaschko(19.04.2012 22:40)
- очередь нужна хотя бы для того, чтобы разделить границы различных модулей и различной функциональности и упростить тестирование отдельных модулей как "черных" ящиков. - bialix(20.04.2012 11:19)
- Все так условно. Рассмотрим на примере клавиатуры PC. Vladimir Ljaschko(670 знак., 20.04.2012 12:15)
- не перекручивайте. очередь - это очередь. т.е. набор элементов, упорядоченных друг за дружкой по какому-то принципу. например, по принципу FIFO: первый пришел, первый пошел в обработку. принципы упорядочивания могут быть другими. нет ничего bialix(64 знак., 20.04.2012 15:17)
- Стоял, еще в хрущевские годы, за манкой :) Эй, событие, на килограмм. - Vladimir Ljaschko(20.04.2012 15:47)
- не перекручивайте. очередь - это очередь. т.е. набор элементов, упорядоченных друг за дружкой по какому-то принципу. например, по принципу FIFO: первый пришел, первый пошел в обработку. принципы упорядочивания могут быть другими. нет ничего bialix(64 знак., 20.04.2012 15:17)
- Все так условно. Рассмотрим на примере клавиатуры PC. Vladimir Ljaschko(670 знак., 20.04.2012 12:15)
- быстро-быстро давим дребезг контактов:)) - Vit(19.04.2012 22:53)
- :))) - mazur(20.04.2012 22:31)
- Ну да, всё в стиле автора - смешать в кучу и дребезг, и события, и состояния. - Vladimir Ljaschko(20.04.2012 06:30)
- Ничего я не намешивал :) Написано же - цепочка действий. - mazur(20.04.2012 13:53)
- Намешивал-намешивал. Нам виднее :-) Кстати, любая программа - это цепочка действий. Только описывать эту цепочку можно по-разному. - SciFi(20.04.2012 13:56)
- ...а давайте расскажем ТС про функциональное программирование и xHDL ;> - Snaky(20.04.2012 14:18)
- Тяжкий вздох... :) Давайте. - mazur(20.04.2012 14:25)
- Есть много брат Горацио такого,... что НАХЕР НЕ НУЖНО в реальной жизни :) - Скрипач(20.04.2012 17:44)
- Тяжкий вздох... :) Давайте. - mazur(20.04.2012 14:25)
- ...а давайте расскажем ТС про функциональное программирование и xHDL ;> - Snaky(20.04.2012 14:18)
- Намешивал-намешивал. Нам виднее :-) Кстати, любая программа - это цепочка действий. Только описывать эту цепочку можно по-разному. - SciFi(20.04.2012 13:56)
- Ничего я не намешивал :) Написано же - цепочка действий. - mazur(20.04.2012 13:53)
- очередь нужна хотя бы для того, чтобы разделить границы различных модулей и различной функциональности и упростить тестирование отдельных модулей как "черных" ящиков. - bialix(20.04.2012 11:19)
- +2 - Vit(19.04.2012 22:34)
- Несмотря на то, что с выворачиванием логики обработки наизнанку для работы с callback обработчиками событий, я уже наелся говна, ваше высказывание, что сканирование приведет к улучшение читабельности и ускорению кода, звучит бездоказательно и bialix(12 знак., 20.04.2012 11:18)
- Вечно фантазии. С коих пор событие стало "естественным" понятием? Событие - это сообщение, сгенерированное ПО и ничего "естественного" в embedded оно не несет, скорее требует дополнительных ресурсов для своей поддержки. blackbit(76 знак., 20.04.2012 00:40)
- Это детали реализации, разные подходы реализации одного и того же. От переназывания "события" в переменную в массиве памяти, ничего принципиально не меняется, кроме того, что будет сложнее обеспечивать синхронизацию между прерыванием и основным bialix(8 знак., 19.04.2012 14:59)
- Не спорю, можно и битовую переменную назвать событием, но обычно идет речь о другом. Скрипач(307 знак., 19.04.2012 16:20 - 16:25)
- называть событием состояние "нет события" -- это логическое противоречие. событие -- это событие, а состояние -- это состояние. зачем мешать их в кучу? состояние статично, события динамичны - они возникают и исчезают. очередь событий -- это bialix(175 знак., 19.04.2012 17:23)
- если событий нет, то состояние очереди событий - "очередь пуста" :) - Vit(19.04.2012 18:06)
- опять "состояние". - bialix(19.04.2012 20:02)
- именно - Vit(19.04.2012 21:21)
- вот - bialix(20.04.2012 11:14, ссылка)
- там нет очереди - Vit(20.04.2012 11:22)
- ты видишь суслика? нет! а он есть. bialix(65 знак., 20.04.2012 11:24)
- чтобы подразумевать нужны умолчания:) Vit(177 знак., 20.04.2012 11:59, ссылка)
- вот здесь начало дискуссии, где четко сказано, что речь идет про очередь. - bialix(20.04.2012 15:12, ссылка)
- "Очередь состояний" не то же, что очередь событий,- "нечто несуществующее"(С)bialix. Т.е. её нет:) Но без состояний (не менее 2-х) событий не получить, потому как событие это сообщение об изменении состояния (некоторого объекта). Но очередь тоже Vit(55 знак., 21.04.2012 10:00 - 10:13, ссылка)
- вы наверное не внимательно читаете, извините. по ссылке, цитата bialix(313 знак., 23.04.2012 13:27, ссылка)
- читаю как умею - "извините. по ссылке, цитата"(С) - очередь состояний -- это уже нечто несуществующее - Vit(24.04.2012 00:19, ссылка)
- все верно. не бывает очереди состояний, а бывает очередь событий. bialix(441 знак., 24.04.2012 14:26)
- Весна, а Вы так серьёзны. Чаще обращайте внимание на смайлики:) Vit(200 знак., 24.04.2012 15:55, ссылка)
- ок. - bialix(24.04.2012 18:57)
- Весна, а Вы так серьёзны. Чаще обращайте внимание на смайлики:) Vit(200 знак., 24.04.2012 15:55, ссылка)
- все верно. не бывает очереди состояний, а бывает очередь событий. bialix(441 знак., 24.04.2012 14:26)
- читаю как умею - "извините. по ссылке, цитата"(С) - очередь состояний -- это уже нечто несуществующее - Vit(24.04.2012 00:19, ссылка)
- Очередь состояний - это вероятно что-то вроде конвейера :-)) - =AlexD=(21.04.2012 10:22)
- Или сепаратора:) - Vit(21.04.2012 10:27)
- вы наверное не внимательно читаете, извините. по ссылке, цитата bialix(313 знак., 23.04.2012 13:27, ссылка)
- "Очередь состояний" не то же, что очередь событий,- "нечто несуществующее"(С)bialix. Т.е. её нет:) Но без состояний (не менее 2-х) событий не получить, потому как событие это сообщение об изменении состояния (некоторого объекта). Но очередь тоже Vit(55 знак., 21.04.2012 10:00 - 10:13, ссылка)
- вот здесь начало дискуссии, где четко сказано, что речь идет про очередь. - bialix(20.04.2012 15:12, ссылка)
- чтобы подразумевать нужны умолчания:) Vit(177 знак., 20.04.2012 11:59, ссылка)
- ты видишь суслика? нет! а он есть. bialix(65 знак., 20.04.2012 11:24)
- там нет очереди - Vit(20.04.2012 11:22)
- вот - bialix(20.04.2012 11:14, ссылка)
- именно - Vit(19.04.2012 21:21)
- ...или очередной прочитанный элемент имеет значение "нет событий". Скрипач(195 знак., 19.04.2012 19:22)
- строго говоря EV_NO_EVENT событием не является. Вы пытаетесь ввести в заблуждение окружающих и возможно себя. bialix(1312 знак., 20.04.2012 11:12 - 11:14)
- опять детали реализации. - bialix(19.04.2012 20:03)
- ...а я говорю о другом ПОДХОДЕ Скрипач(336 знак., 19.04.2012 21:24 - 21:26)
- извините, но в данном случае я не имею представления о чем вы говорите, глядя на кусок кода, вырванный из контекста. - bialix(20.04.2012 11:13)
- Mazur спросил: "Как сделать введение новых режимов простым". Мой ответ: "отказаться от чистой событийной модели и введение новых режимов (новых состояний автомата) станет простым". - Скрипач(20.04.2012 16:57)
- Но мы-то знаем, что правильный ответ такой: "Отказаться уже от ассемблера, использовать язык Си и методы модульного программирования". - SciFi(20.04.2012 18:14)
- Мы то знаем, что язык Си ничем не поможет. - Vladimir Ljaschko(20.04.2012 18:26)
- ...и знаем что mazur не сдержал обещание от программирования перейти к проектированию. Скрипач(115 знак., 20.04.2012 20:02)
- Мы то знаем, что язык Си ничем не поможет. - Vladimir Ljaschko(20.04.2012 18:26)
- аргументируйте ответ. - bialix(20.04.2012 18:10)
- ... и приведите доказательство аксиомы :) Скрипач(238 знак., 20.04.2012 19:59)
- Но мы-то знаем, что правильный ответ такой: "Отказаться уже от ассемблера, использовать язык Си и методы модульного программирования". - SciFi(20.04.2012 18:14)
- Mazur спросил: "Как сделать введение новых режимов простым". Мой ответ: "отказаться от чистой событийной модели и введение новых режимов (новых состояний автомата) станет простым". - Скрипач(20.04.2012 16:57)
- извините, но в данном случае я не имею представления о чем вы говорите, глядя на кусок кода, вырванный из контекста. - bialix(20.04.2012 11:13)
- ...а я говорю о другом ПОДХОДЕ Скрипач(336 знак., 19.04.2012 21:24 - 21:26)
- опять "состояние". - bialix(19.04.2012 20:02)
- если событий нет, то состояние очереди событий - "очередь пуста" :) - Vit(19.04.2012 18:06)
- называть событием состояние "нет события" -- это логическое противоречие. событие -- это событие, а состояние -- это состояние. зачем мешать их в кучу? состояние статично, события динамичны - они возникают и исчезают. очередь событий -- это bialix(175 знак., 19.04.2012 17:23)
- Не спорю, можно и битовую переменную назвать событием, но обычно идет речь о другом. Скрипач(307 знак., 19.04.2012 16:20 - 16:25)
- Это называется KISS. Не согласен, на счёт потерь. Потери на обработку одного события в настоящей событийной системе могут на порядок быть больше (процессорное время, джоули батарейки). Но вот в сумме на единицу времени -- скорей наборот. Главный fk0(167 знак., 19.04.2012 22:11 - 22:24)
- Извини за критику, но ты излагаешь вопросы так-же как пишешь программы - сплошной поток сознания, с "прибитыми" гвоздями вопросами. Постарайся переформатировать текст - разбить на абзацы, выделить ключевое, отделить изложение от вопросов. - =AlexD=(19.04.2012 11:37)
- Кстати, программирование - это сплав лингвистики и логики, а вовсе не математика. - =AlexD=(19.04.2012 11:41)
- Небольшое методическое отступление. У вас всё смешалось в кучу: фильтрация входов, логика управления, таблицы, начальное состояние. Эта задача допускает решение по частям. Это и называется "модульное программирование". SciFi(97 знак., 19.04.2012 11:14)
- +1, однако в данном случае топикстартер ждет другого ответа. И всё же, топикстартеру: разбейте программу на независимые части: bialix(225 знак., 19.04.2012 11:31)
- Суть моего вопроса ваш список. Вот этот список подробно, пожалуйста. На некоторых примерах (словами). Что есть что, что делаем. - mazur(19.04.2012 12:58)
- напишите bialix(71 знак., 19.04.2012 17:28)
- Как-то так: SciFi(357 знак., 19.04.2012 15:06)
- с какого места подробнее? как строить автоматы? я не понимаю вопроса. - bialix(19.04.2012 15:00)
- Суть моего вопроса ваш список. Вот этот список подробно, пожалуйста. На некоторых примерах (словами). Что есть что, что делаем. - mazur(19.04.2012 12:58)
- +1, однако в данном случае топикстартер ждет другого ответа. И всё же, топикстартеру: разбейте программу на независимые части: bialix(225 знак., 19.04.2012 11:31)
- А почему бы при каждом ВЫКЛЮЧЕНИИ не сохранять все текущие состояния в ЕЕПРОМ, и при следующем включении их восстанавливать? - MBedder(19.04.2012 11:13)
- будьте любезны разделять абзацы в длинном посте пустыми строками. так легче воспринимается с экрана. bialix(47 знак., 19.04.2012 11:03)
- Считали входы. Дальше? Народ, я понимаю, что требуется потратить немного времени. Ну нет материалов, где есть подробные ответы на мои вопросы. Нет, нигде. Третий год по капле, по чайной ложке. Везде на форумах одно и тоже. Мне один раз ответы на mazur(121 знак., 19.04.2012 10:45)
- А зачем тебе события? Начни от автоматов Скрипач(554 знак., 20.04.2012 20:48 - 21:08)
- Для входов имеет смысл завести свой автомат с такими состояниями: bialix(1154 знак., 19.04.2012 11:26)
- Считываем входы и давим дребезг - поменялось состояние входов? - запускаем действие, соответствующее изменению (считываем другие входы, иные внешние события, может, ждём чего- то, таймаут, дабы избежать ложных срабатываний, запускаем KLIM83(78 знак., 19.04.2012 11:09)
- Как-то так - PlainUser(19.04.2012 11:04, ссылка)
- >>Как узнать, какой режим включен?<< составить словарь (двумерный массив), который определяет соответствие состояния входов и режима. включился, считал входы, определил режим. нет? - Snaky(19.04.2012 05:04)
- Это если на читабельность положить, нет? - Скрипач(20.04.2012 20:26)
- у него один фиг ассемблер. какая уж там читабельность - Snaky(21.04.2012 05:42)
- Первый раз, после включения как считывать, учитывая подавление дребезга? Вот в чем загвоздка была. - mazur(19.04.2012 06:26)
- После включения я обрабатываю только дребезг, обработка событий запрещена. Через какое-то время, когда входы устаканятся, разрешаю обработку событий. - Михаил Е.(19.04.2012 13:31)
- При включении все входы считаются как только что изменившие состояние. - =AlexD=(19.04.2012 06:52)
- Лучше завести третье состояние для входа: при включении питания/сбросе вход считается в неизвестном состоянии. Далее после подавления дребезга -- таки да, вполне правильно считать, что вход изменил состояние из "неизвестного" в ВКЛ или ВЫКЛ. - bialix(19.04.2012 11:01)
- Не стоит умножать сучности. - =AlexD=(19.04.2012 11:18)
- В данном случае это не умножение, а упрощение программы. После включения программа не знает истории изменений внешнего мира. Поэтому "неопределено" это именно корректное отображение данного факта. Что позволяет более точно строить обработку новых bialix(173 знак., 19.04.2012 11:29)
- Ну дребезжит, ну и что? Для программы не имеет никакого значения предистория ДО включения - дребезжит уже час, или только начало. Считать входы изменившимися после включения полезно для отладки и проверки стойкости алгоритма, а так тоже не =AlexD=(13 знак., 19.04.2012 11:34)
- не согласен. если от того, что дребезжит программа воспримет неправильное состояние и потенциально может сделать опасное действие (включить какой-то исполнительный механизм) то "неизвестное" состояние поможет это предотвратить. для отладки bialix(485 знак., 19.04.2012 11:46)
- Под стойкостью алгоритма я понимаю адекватную реакцию на ситуацию, когда при включении состояния входов не соответствуют реальности, по причине переходных процессов, к примеру. Т.е. считая состояния изменившимся мы принудительно запускаем =AlexD=(50 знак., 19.04.2012 11:51)
- Антидребезг- это и есть антидребезг. KLIM83(276 знак., 19.04.2012 11:57)
- Ну и это тоже, я ж не могу описывать все нештатные ситуации :-) - =AlexD=(19.04.2012 12:10)
- в моем понимании "изменившийся вход" это уже четкое событие, что вход изменил состояние из одного в другое и соответственно анти-дребезг уже отработал. в вашем первичном описании было неочевидно, что вы не предлагаете приступать к работе bialix(12 знак., 19.04.2012 11:57)
- Антидребезг- это и есть антидребезг. KLIM83(276 знак., 19.04.2012 11:57)
- Под стойкостью алгоритма я понимаю адекватную реакцию на ситуацию, когда при включении состояния входов не соответствуют реальности, по причине переходных процессов, к примеру. Т.е. считая состояния изменившимся мы принудительно запускаем =AlexD=(50 знак., 19.04.2012 11:51)
- Нужно быть готовым к тому, что при включении "дребезжит уже час". В этом случае вход в неизвестном состоянии до окончания дребезга. - SciFi(19.04.2012 11:41)
- Хмм, пожалуй определённая логика в этом есть, согласен. - =AlexD=(19.04.2012 11:43)
- не согласен. если от того, что дребезжит программа воспримет неправильное состояние и потенциально может сделать опасное действие (включить какой-то исполнительный механизм) то "неизвестное" состояние поможет это предотвратить. для отладки bialix(485 знак., 19.04.2012 11:46)
- Ну дребезжит, ну и что? Для программы не имеет никакого значения предистория ДО включения - дребезжит уже час, или только начало. Считать входы изменившимися после включения полезно для отладки и проверки стойкости алгоритма, а так тоже не =AlexD=(13 знак., 19.04.2012 11:34)
- В данном случае это не умножение, а упрощение программы. После включения программа не знает истории изменений внешнего мира. Поэтому "неопределено" это именно корректное отображение данного факта. Что позволяет более точно строить обработку новых bialix(173 знак., 19.04.2012 11:29)
- Не стоит умножать сучности. - =AlexD=(19.04.2012 11:18)
- Лучше завести третье состояние для входа: при включении питания/сбросе вход считается в неизвестном состоянии. Далее после подавления дребезга -- таки да, вполне правильно считать, что вход изменил состояние из "неизвестного" в ВКЛ или ВЫКЛ. - bialix(19.04.2012 11:01)
- Это если на читабельность положить, нет? - Скрипач(20.04.2012 20:26)
- «идеальная» технология - Скрипач(20.04.2012 22:58, ссылка)