Гыыы, а я подумал, что ты в сибири гранат выращиваешь :0)
Я тут как то раз (лет 10 назад) купил орешки кедровые. Поел их и неделю печень отваливалась и горечь во тру была. Думал все, приплыл, чуть пить не бросил... Так что я теперь ни чищенные ни не чищенные орешки эти не ем :) Жить хочется !
И че она прям вот такая темная становится после орешков ? Или там еще чего есть ? Сколько времени наставивал ?
Незнаю. Помоему писать "универсальную клавиатуру" как то незачем, что ли...
Вооот! Заметь, я выше писал про молоток. А если нужен HAL - то это великолепно вытаскивается из Клапового класса наружу одним лёгким движением, да чо уж там - в Wiring для пина уже есть HAL, и имя ему - digitalRead.
И че она прям вот такая темная становится после орешков ? Или там еще чего есть ? Сколько времени наставивал ?
У меня долго не настаивается :) Неделю максимум. Ничего, кроме спирта и орехов там нет. Спирт мне милые кладовщики продают по 600р за 5 литров. По хорошему, надо месяц настаивать, за месяц спирт растворяет ядра внутри скорлупы и переносит в раствор, от орехов остаются целые, но пустые оболочки, тогда вкус ядренее получается. :)
Щас Клапа придёт, начнет своей спамокнопкой крутить да размахивать. Всех потрёт.
Как вариант: отдельная структура настроек, передающаяся указателем в конструктор или метод: сколько разных настроек захотели, столько и структур, не надо будет держать в каждом классе настройки. Но тут надо смотреть по расходу памяти, т.к. указатель - тоже два байта, как ни крути.
сейчас так и есть - классом-оболочкой в класс-обработчик кнопки передаётся структура: настройки, время, аппаратное состояние кнопки.
Иначе, такой цвет будет сразу же, от грязных орехов. :)
И это. Если в водку бросать, после мытья - орехи надо подсушить на полотенчике, если в спирт - всё равно, можно не сушить, всё равно разбавлять потом. :)
Иначе, такой цвет будет сразу же, от грязных орехов. :)
И это. Если в водку бросать, после мытья - орехи надо подсушить на полотенчике, если в спирт - всё равно, можно не сушить, всё равно разбавлять потом. :)
а, если бросить не орехи, а горсть спелых вишен без косточек?
У меня растёт, канеш, вишня в даче, да только заморозки на черёмуху приходятся как раз на её цветение. В итоге - цветы опадают не завязавшись. И так последние 12 лет. Так что вишни у мня нет, не знаю как с ней. А орехов - полно. Хоть кота корми.
а, если бросить не орехи, а горсть спелых вишен без косточек?
настаивать можно на чем угодно, жена настаивает на ягодах - помягче получается, я на классических рецептах - перегородки грецких орехов, дуб, калган, хрен и пр.
У меня растёт, канеш, вишня в даче, да только заморозки на черёмуху приходятся как раз на её цветение. В итоге - цветы опадают не завязавшись. И так последние 12 лет. Так что вишни у мня нет, не знаю как с ней. А орехов - полно. Хоть кота корми.
ясно - проклятые земли: на деревьях шишки, в шишках орехи. О_О
По поводу первого моего замечания.
Вообще то профессионал должен понимать, что основное назначение enum - это не создание алиасов для констант (с чем чудесно справляются define), а попытка обеспечить строгую (ну насколько об этом можно говорить применительно к С) типизацию для языка, в котором она сознательно нарушена. Поэтому попытка смешивать в одном перечислении "физические события" и "логические события" не может быть отнесена к лучшим сторонам архитектуры программы, а использование присваивания целым переменным констант из перечисления вообще находится по ту сторону границы между добром и злом.
По поводу второго замечания - есть множество великолепной литературы, посвященной использованию С++ для микроконтроллеров (в большинстве своем она англоязычная, но это не может служить серьезным препятствием для профессионала), и это одно из основных правил - если Вы не собираетесь использовать особенности виртуальных функций (в любой книге по собственно С++ они обязательно указаны), то не следует методы делать виртуальными, поскольку это создает "overhead".
Синтаксис enum действительно позволяет использовать его как тип, так и для набора логически связаных констант. Здесь явно второй случай. И он имеет свои преимущества при развитии архитектуры т.к. позволяет использовать механизм передачи для обработки высокооуровневых сообщений, не предусмотренных изначально в рамках enum без вмешательства в нижние уровни. Например встроенный в иерархию класс может трактовать некоторое сочитание событий клавиатуры как особое действие - например отключение питания, ресет модема и пр. Он просто отправит соответствующее сообщение, а приемник среагирует на него не подозревая о источнике: может кнопка такая, может комбинация, может даблклик на одной кнопке при зажатой другой. Думаю такое намного ценней чем voidKeyEvent(type_eventevnt вместо voidKeyEvent(byteevnt, для строгой типизации. А код оба варианта дадут байт в байт идентичный. А уж разделять "физические события" и "логические события", которые генерятся и распостраняются единым механизмом - вобще плохая идея. В той же винде надеюсь представляете насколько разные события сыпятся в приложение.
Я тоже не применял виртуальные методы в ранних версиях ардуины. Там был очевидный оверхед. Полечили уже давно. Вы действительно не понимаете почему например KeyEvent должна быть именно виртуальна? Печально. Учите ООП - поймете.
GarryC пишет:
Правда, Ваше "тыканье"..
Не стоит обижатся, на форуме Вы пока не зарекомендовали себя настолько чтобы заниматся критиканством без пояснений.
Но в то же время, Кларауций, не могу не отметить, что Ваш код требует определенного рефакторинга в плане разделения уровней обработки - но это на мой взгляд, ведь я могу и ошибаться.
я не плачу за то, что бы Логик доказал свою правоту. О_О
Отлично, главное с правотой разобрались. А охота те дальше по 9 байт на кнопку пользовать - твои проблемы.
Незнаю. Помоему писать "универсальную клавиатуру" как то незачем, что ли... А уж если делать это для сообщества, то красивее использовать калбэки, все же событийную логику никто не отменял, уж если мы с объектами дружим, так пусть они и ведут себя как объекты.
У меня тоже долго небыло необходимости. Для 1-2 кнопок точно нет. А если больше да с лонгкликами, даблкликами и комбинациями, то код болучается не на час писать. Калбэкии против виртуальных методов - при росте числа тоже виртуальные начинают проще смотрется.
Я не очень понял следующий посыл
"Я тоже не применял виртуальные методы в ранних версиях ардуины. Там был очевидный оверхед. Полечили уже давно. Вы действительно не понимаете почему например KeyEvent должна быть именно виртуальна? Печально. Учите ООП - поймете."
Во-первых, я не понимаю, как можно убрать оверхед виртуальных методов именно потому, что они виртуальны и требуют таблицы виртуальных методов? Не исключено, что при совместной компиляции можно определить, что используются только статически определенные методы класса и превратить их на уровне кода в вызов статических методов, но если библиотека скомпилирована отдельно, то это становится просто невозможным.
А во-вторых, я так и не понял, почему данный метод должен быть виртуальным, если можно сыылку на любую книгу по С++ или ООП, где сказано именно про эту функцию, либо аналогичную по назначению. Виртуальные методы нужны именно тогда, когда нужны виртуальные методы, мне так казалось.
Ну а по поводу обращения - не то, чтобы Вы меня очень сильно обидели, просто есть такое правило "Никогда не считай своего собеседника глупее себя, пока он это не докажет. И даже после этого ты можешь ошибаться."
Про перечисления - к сожаления, они не слишком хороши, лично мне очень не хватает расширяемых перечислений (иерархических), что позволило бы действительно эффективно использовать данный механизм, но разработчики С моим мнением не интересовались.
Когда, давным давно, я работал под TurboVision, там события все-таки были сгруппированы и набор параметров менялся при изменении типа сообщения, что давало хоть какую-то защиту, хотя, конечно, очень слабую.
За прошедшие 3 года ситуация исправлена. 2 Байта ОЗУ на один виртуальный при 3-х функциях - проблема? А как назвать 900байт ОЗУ в велосипеде? Наверно апокалипсис.
GarryC пишет:
если библиотека скомпилирована отдельно, то это становится просто невозможным.
Ага. Именно эта мысль у меня стала последней каплей заставившей делать виртуально. Но если уж начать рассуждать строго, то в классе выполняющем поиск изменений в состоянии кнопок путем сканирования и анализом возвратов сами стробы и возвраты присутствуют в виде абстрактных номеров, типа "активируем строб 3", "изменение на возвратах 2 и 7". А уж каким пинам и где находящимся эти абстрактные стробы соответствуют - не дело этого класса. От физической клавиатуры он абстрагирован. А значить виртуальный метод ему!
GarryC пишет:
Ну а по поводу обращения ...
Оно то так, но вы видели как, например, пишет некой угребище в шляпе без лица. Так отож, с волками жить вобщем...
GarryC пишет:
Когда, давным давно, я работал под TurboVision, там события все-таки были сгруппированы и набор параметров менялся
При наличии параметров в событии это целиком оправдано и верно. Тогда сообщение привел к соответствующему типу и пользуй параметры. Все верно. А нет параметров - ну значить все сообщения одного типа, без параметров.
А как назвать 900байт ОЗУ в велосипеде? Наверно апокалипсис.
это называется:"попоболь у Логика". О_о
Клапауций 555 пишет:
Логик, недоволен расходом оперативки - я с ним согласен.
;)
Хотя ты несовсем точен. Я недоволен гавняным качеством либ под ардуину. И не абстрактно так недоволен, а конкретно недоволен тем, что за какую не возьмись - чтоб работало переписывать приходится. И переписывать мне. А чего либы такие кривые? А потому что их пишут такие безмозглые как ты, которым половину памяти похерит - не проблема чтоб опубликовать.
От физической клавиатуры он абстрагирован. А значить виртуальный метод ему!
Не, товарищи, это явно клиника. Вот эту цитату надо на лоб недоучке прибить, причём распечатать её зеркально, чтобы, смотрясь в зеркало (оно ж любуется собой каждые 5 минут, не меньше) года через два-три тело поняло (быстрее навряд ли дойдёт) - какую хню оно морозит и, главное, прововедует.
Ну дичь, реально - дичь. Абстрагируем один уровень представления от другого - виртуальный метод ему! Логик, ты, извиняюсь, когда ссышь - не всегда ширинку, наверное, расстёгиваешь, иногда тебе достаточно представить, что она расстёгнута - так, что ли?
Но от тебя, безусловно, есть одна маахонькая, но польза - я хоть посмеялся от души.
Не обижайте Логика - чистый теоретик, с крутым (во всяком случае в сравнением со мной) знанием программирования. Пусть пишет свои библиотеки, и радуется.
Не обижайте Логика - чистый теоретик, с крутым (во всяком случае в сравнением со мной) знанием программирования. Пусть пишет свои библиотеки, и радуется.
Та я и пишу всю сознательную жизнь. А радоватся Клапауций 555 мешает. То ноет "ну возми велосипед". Когда обясняеш, чего он нафиг сдался и носом тыкнеш в говнокод его - обижается и орет "иначе никак". А как напишеш свое, которое очень даже иначе - то клянчит код, но обязательно почемуто бесплатно. Наверно денег нет. Хороше было когда он в бане парился.
у тебя одновременно обрабатывается 100 кнопок, но одновременно возможно нажать 4-ре из ста.
Маладца! Уже прозреваеш. Идем дальше, если нужно чтоб была возможность не 4-ре а пять - пишем в KEY_TIME_MAX какую цифру - прально 5! Задача на закрепление сколько нужно записать в KEY_TIME_MAX, чтоб можна было нажать одновременно столько кнопок сколько пальцев у тя, включая хер? Информация к размышлению: каждый новый палец, включая хер, требует 2 байта ОЗУ. Контрольный вопрос: почему в коде таки записано 4. Ответ для самопроверки: потому что так надо, больше пальцев для одновременного нажатия кнопок не предполагается использовать в задаче для которой этот код, а ОЗУ жалко.
Вот из всего опыта последнее, на чём можно экономить ОЗУ - это обработка несчастных несколька кнопок. Логик такой логик, шопипец - выжмет досуха, до последнего байтика, любой МК, да так, что приходится нищебродствовать и экономить на кнопках :)
Диагноз телу давно известен - быдлоговнокодер с непомерно раздутыми амбициями.
потому что так надо, больше пальцев для одновременного нажатия кнопок не предполагается использовать
Логик, если тебя приковали к батарее и заставляют сюда чушь писать - ты просто моргни.
я отнесусь с пониманием к тому, что ты сейчас исполняешь...
Краткий миг просветления завершен, снова юродствует.
Последний раз попробую. Вот есть лифт, в нем кнопки этажей, они предполагают нажатие одновременно одной кнопки. Ну так сделали. И всех устраивает. А что будет если сразу 2 нажать? А ХЗ. Ниче хорошего, нерасчитано оно. Перед тобой клавиатура, тоже кнопки на ней, но она сложней, на ней некоторые кнопки можна одновременно нажать и получить адекватный результат. Например нажать две или даже три, сам мож убедится жми Ctrl+ALT+DEL. А некоторые нельзя. Тоже так сделали. Специально постарались. И всех устраивает. Можна конечно и больше пальцев тыкнуть в её кнопки, но ниче толкового не получиш, пробуй, опытным путем шоле поймеш. А код мной писаный для максимум 4-х одновременно нажатых кнопок, ну надо было так человекам.
ПС. Теперь я знаю что испытывает учитель в школе для умственно отсталых, когда даун, олигофрен и шизик удачно слились в одной личности.
Ну даффай, наберись смелости, скажи "кнопки с фиксацией", а я тебе сразу скажу "а нахера ты для кнопок с фиксацией даблклики с лонгкликами нарезервировал".
А с датчиками типа сухой контакт - своя малина, там некоторые и чаще мсек опрашивать надо. И опять же даблклики нафига.
Это тупик, Клапауций 555. Снова в неосознанку ныкайся.
Гыыы, а я подумал, что ты в сибири гранат выращиваешь :0)
Я тут как то раз (лет 10 назад) купил орешки кедровые. Поел их и неделю печень отваливалась и горечь во тру была. Думал все, приплыл, чуть пить не бросил... Так что я теперь ни чищенные ни не чищенные орешки эти не ем :) Жить хочется !
И че она прям вот такая темная становится после орешков ? Или там еще чего есть ? Сколько времени наставивал ?
Незнаю. Помоему писать "универсальную клавиатуру" как то незачем, что ли...
Вооот! Заметь, я выше писал про молоток. А если нужен HAL - то это великолепно вытаскивается из Клапового класса наружу одним лёгким движением, да чо уж там - в Wiring для пина уже есть HAL, и имя ему - digitalRead.
Я смотрел ту , которая в начале твоей темы.
то, вообще нулевая версия - сейчас всё намного более луче и развесистей.
И че она прям вот такая темная становится после орешков ? Или там еще чего есть ? Сколько времени наставивал ?
У меня долго не настаивается :) Неделю максимум. Ничего, кроме спирта и орехов там нет. Спирт мне милые кладовщики продают по 600р за 5 литров. По хорошему, надо месяц настаивать, за месяц спирт растворяет ядра внутри скорлупы и переносит в раствор, от орехов остаются целые, но пустые оболочки, тогда вкус ядренее получается. :)
Щас Клапа придёт, начнет своей спамокнопкой крутить да размахивать. Всех потрёт.
Пойду валерианки выпью.... :(
Лучше фирменного среццтва от DetSimen.
Моё, с кедровыми арешками, адназначна лучше валерянки.
а я делаю на шелухе от кедровых орешков, говорят лучше чем на целых орешках.
у нас тут в ЦФО кедры не растут, а орешки хрен купишь нормальные, не Китайские , за адекватные деньги :(
а я делаю на шелухе от кедровых орешков, говорят лучше чем на целых орешках.
Ну а в Сибирях, на шелухе настаивать стыдно. Не пьёца тогда, не радуют даже маринованные опята и ёжики.
Как вариант: отдельная структура настроек, передающаяся указателем в конструктор или метод: сколько разных настроек захотели, столько и структур, не надо будет держать в каждом классе настройки. Но тут надо смотреть по расходу памяти, т.к. указатель - тоже два байта, как ни крути.
сейчас так и есть - классом-оболочкой в класс-обработчик кнопки передаётся структура: настройки, время, аппаратное состояние кнопки.
А , ну спита у меня нет. А тещин самтрест супер и без настоя, его тесть уголным фильтром чистит. И крепость правильная 45, слеза !
Щас Клапа придёт, начнет своей спамокнопкой крутить да размахивать. Всех потрёт.
пока меня ваш алкоголизм не напрягает, поэтому - не буду.
А , ну спита у меня нет.
На водке тоже можно. Поставь на месяц, попробуй. Орехов 2 жмени (скока в кулак входит) на поллитра. Перед засыпкой орехи - мыть.
Перед засыпкой орехи - мыть.
от чего мыть?
от ореховой пыли
от ореховой пыли
ок.
Иначе, такой цвет будет сразу же, от грязных орехов. :)
И это. Если в водку бросать, после мытья - орехи надо подсушить на полотенчике, если в спирт - всё равно, можно не сушить, всё равно разбавлять потом. :)
Иначе, такой цвет будет сразу же, от грязных орехов. :)
И это. Если в водку бросать, после мытья - орехи надо подсушить на полотенчике, если в спирт - всё равно, можно не сушить, всё равно разбавлять потом. :)
а, если бросить не орехи, а горсть спелых вишен без косточек?
на орехах - чушь какая-то.
У меня растёт, канеш, вишня в даче, да только заморозки на черёмуху приходятся как раз на её цветение. В итоге - цветы опадают не завязавшись. И так последние 12 лет. Так что вишни у мня нет, не знаю как с ней. А орехов - полно. Хоть кота корми.
Кот их ест ?
А спирт пьет ?
Кот их ест ?
А спирт пьет ?
Кот, скотина, ест только мышей и лососевый фарш. Иногда, по настроению - печень.
Пьёт валерьянку, добывая корни из места, где она когда-то росла.
а, если бросить не орехи, а горсть спелых вишен без косточек?
настаивать можно на чем угодно, жена настаивает на ягодах - помягче получается, я на классических рецептах - перегородки грецких орехов, дуб, калган, хрен и пр.
У меня растёт, канеш, вишня в даче, да только заморозки на черёмуху приходятся как раз на её цветение. В итоге - цветы опадают не завязавшись. И так последние 12 лет. Так что вишни у мня нет, не знаю как с ней. А орехов - полно. Хоть кота корми.
ясно - проклятые земли: на деревьях шишки, в шишках орехи. О_О
а, спирт откуда у вас берётся?
а, спирт откуда у вас берётся?
видимо, со склада. Дальнейшую цепь я не отслеживал. :)
По поводу первого моего замечания.
Вообще то профессионал должен понимать, что основное назначение enum - это не создание алиасов для констант (с чем чудесно справляются define), а попытка обеспечить строгую (ну насколько об этом можно говорить применительно к С) типизацию для языка, в котором она сознательно нарушена. Поэтому попытка смешивать в одном перечислении "физические события" и "логические события" не может быть отнесена к лучшим сторонам архитектуры программы, а использование присваивания целым переменным констант из перечисления вообще находится по ту сторону границы между добром и злом.
По поводу второго замечания - есть множество великолепной литературы, посвященной использованию С++ для микроконтроллеров (в большинстве своем она англоязычная, но это не может служить серьезным препятствием для профессионала), и это одно из основных правил - если Вы не собираетесь использовать особенности виртуальных функций (в любой книге по собственно С++ они обязательно указаны), то не следует методы делать виртуальными, поскольку это создает "overhead".
Синтаксис enum действительно позволяет использовать его как тип, так и для набора логически связаных констант. Здесь явно второй случай. И он имеет свои преимущества при развитии архитектуры т.к. позволяет использовать механизм передачи для обработки высокооуровневых сообщений, не предусмотренных изначально в рамках enum без вмешательства в нижние уровни. Например встроенный в иерархию класс может трактовать некоторое сочитание событий клавиатуры как особое действие - например отключение питания, ресет модема и пр. Он просто отправит соответствующее сообщение, а приемник среагирует на него не подозревая о источнике: может кнопка такая, может комбинация, может даблклик на одной кнопке при зажатой другой. Думаю такое намного ценней чем
void
KeyEvent(type_event
evnt
вместоvoid
KeyEvent(
byte
evnt
, для строгой типизации. А код оба варианта дадут байт в байт идентичный. А уж разделять "физические события" и "логические события", которые генерятся и распостраняются единым механизмом - вобще плохая идея. В той же винде надеюсь представляете насколько разные события сыпятся в приложение.Я тоже не применял виртуальные методы в ранних версиях ардуины. Там был очевидный оверхед. Полечили уже давно. Вы действительно не понимаете почему например
KeyEvent
должна быть именно виртуальна? Печально. Учите ООП - поймете.Правда, Ваше "тыканье"..
Не стоит обижатся, на форуме Вы пока не зарекомендовали себя настолько чтобы заниматся критиканством без пояснений.
Но в то же время, Кларауций, не могу не отметить, что Ваш код требует определенного рефакторинга в плане разделения уровней обработки - но это на мой взгляд, ведь я могу и ошибаться.
я не плачу за то, что бы Логик доказал свою правоту. О_О
Отлично, главное с правотой разобрались. А охота те дальше по 9 байт на кнопку пользовать - твои проблемы.
Отлично, главное с правотой разобрались.
О_О ты готов заплатить за закрытие темы? :D
А охота те дальше по 9 байт на кнопку пользовать - твои проблемы.
а, что - есть альтернатива?
Незнаю. Помоему писать "универсальную клавиатуру" как то незачем, что ли... А уж если делать это для сообщества, то красивее использовать калбэки, все же событийную логику никто не отменял, уж если мы с объектами дружим, так пусть они и ведут себя как объекты.
У меня тоже долго небыло необходимости. Для 1-2 кнопок точно нет. А если больше да с лонгкликами, даблкликами и комбинациями, то код болучается не на час писать. Калбэкии против виртуальных методов - при росте числа тоже виртуальные начинают проще смотрется.
а я делаю на шелухе от кедровых орешков, говорят лучше чем на целых орешках.
Ну а в Сибирях, на шелухе настаивать стыдно. Не пьёца тогда, не радуют даже маринованные опята и ёжики.
а ёжиков то за что мариновать, кричат ведь по дикому, аки кошки
Для Logik---
Я не очень понял следующий посыл
"Я тоже не применял виртуальные методы в ранних версиях ардуины. Там был очевидный оверхед. Полечили уже давно. Вы действительно не понимаете почему например
KeyEvent
должна быть именно виртуальна? Печально. Учите ООП - поймете."Во-первых, я не понимаю, как можно убрать оверхед виртуальных методов именно потому, что они виртуальны и требуют таблицы виртуальных методов? Не исключено, что при совместной компиляции можно определить, что используются только статически определенные методы класса и превратить их на уровне кода в вызов статических методов, но если библиотека скомпилирована отдельно, то это становится просто невозможным.
А во-вторых, я так и не понял, почему данный метод должен быть виртуальным, если можно сыылку на любую книгу по С++ или ООП, где сказано именно про эту функцию, либо аналогичную по назначению. Виртуальные методы нужны именно тогда, когда нужны виртуальные методы, мне так казалось.
Ну а по поводу обращения - не то, чтобы Вы меня очень сильно обидели, просто есть такое правило "Никогда не считай своего собеседника глупее себя, пока он это не докажет. И даже после этого ты можешь ошибаться."
Про перечисления - к сожаления, они не слишком хороши, лично мне очень не хватает расширяемых перечислений (иерархических), что позволило бы действительно эффективно использовать данный механизм, но разработчики С моим мнением не интересовались.
Когда, давным давно, я работал под TurboVision, там события все-таки были сгруппированы и набор параметров менялся при изменении типа сообщения, что давало хоть какую-то защиту, хотя, конечно, очень слабую.
Для Logik---
Я не очень понял следующий посыл...
понял что не поняли. читать здесь.
https://habrahabr.ru/company/amperka/blog/264041/
За прошедшие 3 года ситуация исправлена. 2 Байта ОЗУ на один виртуальный при 3-х функциях - проблема? А как назвать 900байт ОЗУ в велосипеде? Наверно апокалипсис.
если библиотека скомпилирована отдельно, то это становится просто невозможным.
Ага. Именно эта мысль у меня стала последней каплей заставившей делать виртуально. Но если уж начать рассуждать строго, то в классе выполняющем поиск изменений в состоянии кнопок путем сканирования и анализом возвратов сами стробы и возвраты присутствуют в виде абстрактных номеров, типа "активируем строб 3", "изменение на возвратах 2 и 7". А уж каким пинам и где находящимся эти абстрактные стробы соответствуют - не дело этого класса. От физической клавиатуры он абстрагирован. А значить виртуальный метод ему!
Ну а по поводу обращения ...
Оно то так, но вы видели как, например, пишет некой угребище в шляпе без лица. Так отож, с волками жить вобщем...
Когда, давным давно, я работал под TurboVision, там события все-таки были сгруппированы и набор параметров менялся
При наличии параметров в событии это целиком оправдано и верно. Тогда сообщение привел к соответствующему типу и пользуй параметры. Все верно. А нет параметров - ну значить все сообщения одного типа, без параметров.
А как назвать 900байт ОЗУ в велосипеде? Наверно апокалипсис.
это называется:"попоболь у Логика". О_о
Кот их ест ?
А спирт пьет ?
Кот, скотина, ест только мышей и лососевый фарш. Иногда, по настроению - печень.
Пьёт валерьянку, добывая корни из места, где она когда-то росла.
Валерьянку раз "пьет" - кот сам настаивает, на чем? Как долго терпит? (* надо своему рецептик подкинуть, а то достал уже "мнэ-э, да-й.." *)
А как назвать 900байт ОЗУ в велосипеде? Наверно апокалипсис.
это называется:"попоболь у Логика". О_о
Логик, недоволен расходом оперативки - я с ним согласен.
От физической клавиатуры он абстрагирован. А значить виртуальный метод ему!
Не, товарищи, это явно клиника. Вот эту цитату надо на лоб недоучке прибить, причём распечатать её зеркально, чтобы, смотрясь в зеркало (оно ж любуется собой каждые 5 минут, не меньше) года через два-три тело поняло (быстрее навряд ли дойдёт) - какую хню оно морозит и, главное, прововедует.
Ну дичь, реально - дичь. Абстрагируем один уровень представления от другого - виртуальный метод ему! Логик, ты, извиняюсь, когда ссышь - не всегда ширинку, наверное, расстёгиваешь, иногда тебе достаточно представить, что она расстёгнута - так, что ли?
Но от тебя, безусловно, есть одна маахонькая, но польза - я хоть посмеялся от души.
ЧТД - царь, млять. Мож, не либы кривые, а руки пользующего? Судя по архитектурным про@бам, продемонстрированным выше - скорее второе.
потому, что ты-барыга недоволен и вместо опубликовать правильный код, требуешь от меня денег.
скройся в ужосе, чепуха - чем дальше, тем глубже дно пробиваешь. О_О
Не обижайте Логика - чистый теоретик, с крутым (во всяком случае в сравнением со мной) знанием программирования. Пусть пишет свои библиотеки, и радуется.
дык, он же их(библиотеки для Дуино) не пишет, и страдает от того, что я написал. :D
Та я и пишу всю сознательную жизнь. А радоватся Клапауций 555 мешает. То ноет "ну возми велосипед". Когда обясняеш, чего он нафиг сдался и носом тыкнеш в говнокод его - обижается и орет "иначе никак". А как напишеш свое, которое очень даже иначе - то клянчит код, но обязательно почемуто бесплатно. Наверно денег нет. Хороше было когда он в бане парился.
А как напишеш свое, которое очень даже иначе...
иначе - это заменить unsigned long на byte и ограничить количество одновременно обрабатываемых кнопок со 100 до 4-х?
четыре экземпляра класса Click с однобайтным временем занимает 12 байт - пользуйся. :D
Сново путаем "одновременно обрабатываемых" с "одновременно нажатыми"? Фу как тупо.
Сново путаем "одновременно обрабатываемых" с "одновременно нажатыми"? Фу как тупо.
ок! исправляюсь!
у тебя одновременно обрабатывается 100 кнопок, но одновременно возможно нажать 4-ре из ста. О_о
...или наоборот?
одновременно возможно нажать 100, но одновременно обработать 4-ре из ста? о_О
*я же тебя просил - иначе, со дна постучат и заберут тебя в АдЪ.
ок! исправляюсь!
у тебя одновременно обрабатывается 100 кнопок, но одновременно возможно нажать 4-ре из ста.
Маладца! Уже прозреваеш. Идем дальше, если нужно чтоб была возможность не 4-ре а пять - пишем в KEY_TIME_MAX какую цифру - прально 5! Задача на закрепление сколько нужно записать в KEY_TIME_MAX, чтоб можна было нажать одновременно столько кнопок сколько пальцев у тя, включая хер? Информация к размышлению: каждый новый палец, включая хер, требует 2 байта ОЗУ. Контрольный вопрос: почему в коде таки записано 4. Ответ для самопроверки: потому что так надо, больше пальцев для одновременного нажатия кнопок не предполагается использовать в задаче для которой этот код, а ОЗУ жалко.
потому что так надо, больше пальцев для одновременного нажатия кнопок не предполагается использовать
Логик, если тебя приковали к батарее и заставляют сюда чушь писать - ты просто моргни.
я отнесусь с пониманием к тому, что ты сейчас исполняешь...
а ОЗУ жалко.
Вот из всего опыта последнее, на чём можно экономить ОЗУ - это обработка несчастных несколька кнопок. Логик такой логик, шопипец - выжмет досуха, до последнего байтика, любой МК, да так, что приходится нищебродствовать и экономить на кнопках :)
Диагноз телу давно известен - быдлоговнокодер с непомерно раздутыми амбициями.
у меня есть в черновиках код, где экземпляры класса обработчика кнопок утилизируются/генерятся в случае неактивности/активности кнопок.
и, какой смысл освобождать память, если рано или поздно, возникнет ситуация, когда все кнопки активны, а "ОЗУ - жалко у пчёлки".
потому что так надо, больше пальцев для одновременного нажатия кнопок не предполагается использовать
Логик, если тебя приковали к батарее и заставляют сюда чушь писать - ты просто моргни.
я отнесусь с пониманием к тому, что ты сейчас исполняешь...
Краткий миг просветления завершен, снова юродствует.
Последний раз попробую. Вот есть лифт, в нем кнопки этажей, они предполагают нажатие одновременно одной кнопки. Ну так сделали. И всех устраивает. А что будет если сразу 2 нажать? А ХЗ. Ниче хорошего, нерасчитано оно. Перед тобой клавиатура, тоже кнопки на ней, но она сложней, на ней некоторые кнопки можна одновременно нажать и получить адекватный результат. Например нажать две или даже три, сам мож убедится жми Ctrl+ALT+DEL. А некоторые нельзя. Тоже так сделали. Специально постарались. И всех устраивает. Можна конечно и больше пальцев тыкнуть в её кнопки, но ниче толкового не получиш, пробуй, опытным путем шоле поймеш. А код мной писаный для максимум 4-х одновременно нажатых кнопок, ну надо было так человекам.
ПС. Теперь я знаю что испытывает учитель в школе для умственно отсталых, когда даун, олигофрен и шизик удачно слились в одной личности.
обработка несчастных несколька кнопок.
ну, как бы не совсем несколько.
кстати, а кто из читателей этого поста рулит сотней кнопок на дуино и чем рулит?
когда все кнопки активны
Если под словом "активны" имееш ввиду нажаты, то я тя спрошу, и чё, часто бывает? Наверно когда садишся на неё чтоб код писать?
Если под словом "активны" имееш ввиду нажаты, то я тя спрошу, и чё, часто бывает? Наверно когда садишся на неё чтоб код писать?
это не клавиатура - это кнопки.
Перед тобой клавиатура...
снова за рыбу деньги - снова со своей клавиатурой.
кури тему игровых клавиатур с аппаратно реализованным режимом No-Key Rollover и почему 6-Key Rollover народу мало. О_О
Логик, ты не в теме вообще от слова совсем.
скройся в ужосе.