Действительно функция ожидания ввода или фикция? Никак не усмотрю обещанного.

Comoq
Offline
Зарегистрирован: 08.02.2019

b707 пишет:

ты хочешь ему лекцию прочитать начиная с разницы междц битом и байтом?

если он сути вовсе не понимает

Я не понимаю только то, что спросил, не надо делать поспешных выводов.

b707
Offline
Зарегистрирован: 26.05.2017

Comoq пишет:

так как при приращении перезаписанная i будет время от времени соотвествовать условию i < 3, значит и флаг будет подниматься.

не будет.

А почему - мож кто и коллег сможет обьяснить, я от тупости зверею :)

sadman41
Offline
Зарегистрирован: 19.10.2016

Comoq пишет:

Нет, но она определяет равенство/неравенство массивов отправленного и того что нужно отправить, а из-за инкремента это неравенство иногда будет выполняться, так как при приращении перезаписанная i будет время от времени соотвествовать условию i < 3, значит и флаг будет подниматься.

"Завтра солнце может не взойти, есля я вечером не помою голову" - вот так примерно выглядит для меня ваша фраза.

Comoq
Offline
Зарегистрирован: 08.02.2019

sadman41 пишет:

"Завтра солнце может не взойти, есля я вечером не помою голову" - вот так примерно выглядит для меня ваша фраза.

Хорошо, давайте иначе, здесь на лицо недопонимание, участники не понимают что именно не понимаю я, а я не понимаю их объяснения на то, что я не спрашивал. И всего то, а не тупость, как говорит Ваш коллега. Итак:

1) Переменная i введена для отслеживания изменений, так?

2) Два массива сравниваются по этой переменной, так?

3) Если i массива и так изменится при перезаписи, на кой хрен нам for тогда?

 

sadman41
Offline
Зарегистрирован: 19.10.2016

Comoq пишет:

sadman41 пишет:

Давайте разберемся, что лично вы считаете энергосбережением.

Я лично в этом коде считаю энергосбережением низкопотребляемый промежуток от выключения передатчика после опускания флага, и до его поднятия, иными словами промежуток, когда не осуществляется самое энергозатратное действие - передача.

Ну, ок. Запомним, что что энергосбережение обуславливается как можно более редкими передачами.
Вопрос - как сделать так, чтобы передачи были более редкие? Наверняка - инициировать их, когда изменилось состояние кнопки или слайдера. Следующий вопрос - как определить, что состояние изменилось (вспоминайте секундомер)?

sadman41
Offline
Зарегистрирован: 19.10.2016

Comoq пишет:

3) Если i массива и так изменится при перезаписи, на кой хрен нам for тогда?

Я всё понял. Вы знакомы с представлением массива в оперативной памяти?

b707
Offline
Зарегистрирован: 26.05.2017

Comoq пишет:

Я не понимаю только то, что спросил, не надо делать поспешных выводов.

с моей стороны виднее, поверьте. Ваш уровень - ниже нуля, и начать с того что вы абсолютно не понимаете работу цикла FOR. несмотря на "конспект" и "даже написанный пример"

переменная i в вашем цикле не "иногда менее трех". а всегда i<3, потому что пробегает значения 0, 1 и 2. Однако из этого никак не следует, что флаг будет взводится при каждом проходе

Comoq
Offline
Зарегистрирован: 08.02.2019

b707 пишет:

я от тупости зверею :)

Это происходить исключительно из-за предвзятости мнения обо мне, и откровенном безучастии - помочь то вроде как хотите, но так, без особых трудозатрат. Я не настаиваю, кто таков. Но это только усугубляет ситуацию. Да и нервы не казённые, нет желания помогать - хотя бы не уводите в дебри, и не пинайте, когда салага в этих дебрях начинает спотыкаться, не профессионально это, и уж тем более не педагогично.

b707
Offline
Зарегистрирован: 26.05.2017

sadman41 пишет:

Вы знакомы с представлением массива в оперативной памяти?

конечно да :)

Он же "не понимает только того, что спросил"

все. больше мешать не буду

Comoq
Offline
Зарегистрирован: 08.02.2019

b707 пишет:

переменная i в вашем цикле не "иногда менее трех". а всегда i<3, потому что пробегает значения 0, 1 и 2.

Спасибо, этот момент я знал, но закопавшись в коде забыл, забыл что при строгом неравенстве 3 пробегать не будет. Но допустим если у нас последнее значение отправленного массива - 2, разве при пробегании двойки флаг не будет каждый раз подниматься?

b707
Offline
Зарегистрирован: 26.05.2017

Comoq пишет:

нет желания помогать - хотя бы не уводите в дебри

дорогой, ты несправедлив. Я как раз советую коллегам не пытаться тебе обьяснить дебри, которые ты пока понять не сможешь - например то, почему этот код Гайвера кривой. Тебе пока хотя бы в общую картину въехать...

Comoq
Offline
Зарегистрирован: 08.02.2019

b707 пишет:

sadman41 пишет:

Вы знакомы с представлением массива в оперативной памяти?

конечно да :)

Он же "не понимает только того, что спросил"

все. больше мешать не буду

Только элементарное: массив состоит из элементов, сколько элементов - столько и байт памяти выделяется под массив, каждый элемент на определённом месте массива, без этого я бы не понял как именно идёт передача по этим модулям.

Comoq
Offline
Зарегистрирован: 08.02.2019

b707 пишет:

Comoq пишет:

нет желания помогать - хотя бы не уводите в дебри

дорогой, ты несправедлив. Я как раз советую коллегам не пытаться тебе обьяснить дебри, которые ты пока понять не сможешь - например то, почему этот код Гайвера кривой. Тебе пока хотя бы в общую картину въехать...

Вы меня в лес въезжаете, а не в общую картину, если по Вашему я азов не знаю, сказали бы тему для штудирования (только не надо на книги кидать, на сайте полно конкретных гайдов, можно пнуть в сторону одного из них)

b707
Offline
Зарегистрирован: 26.05.2017

Comoq пишет:

 если у нас последнее значение отправленного массива - 2, разве при пробегании двойки флаг не будет каждый раз подниматься?

вы путаете индекс массива i  и элемент массива transmit_data[i]

"пробегает двойку" у нас переменная i. а сравниваем мы старое и новое значение элементов

Поэтому совпадение i (когда, с кем?) -никак не влияет на flag

Comoq
Offline
Зарегистрирован: 08.02.2019

b707 пишет:

Поэтому совпадение i (когда, с кем?) -никак не влияет на flag

Выходит, оператор FOR вставлен здесь исключительно для постоянного сравнения двух массивов?

b707
Offline
Зарегистрирован: 26.05.2017

Comoq пишет:

только не надо на книги кидать, на сайте полно конкретных гайдов, можно пнуть в сторону одного из них)

а вот и зря - начинать на именно с книжек, страниц этак на 500 - чтоб все было разобрано. А гайды из интернета - это для тех, кто книжку уже прочитал и кому нужно просто подсмотреть какую-то конкретную запятую

sadman41
Offline
Зарегистрирован: 19.10.2016

Comoq пишет:

Только элементарное: массив состоит из элементов, сколько элементов - столько и байт памяти выделяется под массив, каждый элемент на определённом месте массива, без этого я бы не понял как именно идёт передача по этим модулям.

Ну, как грицца, на троечку. Ну, да ладно.

Представляем себе:
- прямоугольный ящик с тремя ячейками, в который кладем шары: оранжевый, белый и коричневый. Это массив N1. 
- прямоугольный ящик с тремя ячейками, в который кладем шары: оранжевый, белый, синий. Это массив N2.

Идём слева направо и сравниваем цвета в ячейках обоих ящиков, cчитая вслух: первая ячейка, вторая...  Изменяются ли при этом цвета шаров в ячейках? Появляются ли вместо шаров цифры '1', '2'... ?

 

b707
Offline
Зарегистрирован: 26.05.2017

Comoq пишет:

Выходит, оператор FOR вставлен здесь исключительно для постоянного сравнения двух массивов?

БИНГО!

А теперь перечитай. что тебе написал наш коллега еще в посте #32

bwn
Offline
Зарегистрирован: 25.08.2014

О, тоже хотел про комод рассказать, Григорий опередил.)))) Ток добавлю, что переменная i, это палец, который загинаешь, чтобы не запутаться, которые по счету отделения в ящичках сравнивать.

Comoq
Offline
Зарегистрирован: 08.02.2019

b707 пишет:

А теперь перечитай. что тебе написал наш коллега еще в посте #32

Не поймите неправильно, но я сейчас о том же подумал, но вы наверно уже давно позабыли, что такое быть новичком, а я расскажу: понять, что коллега имеет в виду под "упростить работу" ахренеть как не просто, имея уровень, как Вы сказали "ниже нуля". И ещё сложнее отождествить "for нужен что бы упростить работу с ..." и "функция for нужна только для...", потому как у малограмотного любителя вариаций продолжения может быть вагон и маленькая тележка, и банально не хватает опыта сопоставить то что нужно. Но в любом случае Всем огромное спасибо. Я разобрался.

Comoq
Offline
Зарегистрирован: 08.02.2019

sadman41 пишет:

Изменяются ли при этом цвета шаров в ячейках? Появляются ли вместо шаров цифры '1', '2'... ?

Все прояснилось, проблема была в том, что я ожидал от For чего то необычного, возможно даже магического, а оказалось, что for воткнули просто за неимением ничего другого.

Я насмотрелся видео гайвера и наслушался его объяснений, согласитесь, первое впечатление поломать достаточно сложно, как он объяснил, так я и понял (свою конструкцию for он назвал чуть ли не гениальной), вот и тупость отсюда возникает, а в нашем случае недопонимание.

Comoq
Offline
Зарегистрирован: 08.02.2019

Благодарю всех за помощь и хочу извиниться, если что не так. Не хотел доставлять неудобств, хотел научиться. Тяжело в учении...как говорится. Тему можно закрывать.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Comoq пишет:
только не надо на книги кидать, на сайте полно конкретных гайдов, можно пнуть в сторону одного из них

У кого-то ещё остались сомнения или вопросы?

Если да, то я пошёл за попкорном :)

b707
Offline
Зарегистрирован: 26.05.2017

Comoq пишет:

свою конструкцию for он назвал чуть ли не гениальной), вот и тупость отсюда возникает, а в нашем случае недопонимание.

подобное использование цикла for - абсолютно стандартный метод перебора элементов массива

Блин, надо бы запатентовать эту идею, пока Гайвер не додумался :)

bwn
Offline
Зарегистрирован: 25.08.2014

Comoq пишет:

Благодарю всех за помощь и хочу извиниться, если что не так. Не хотел доставлять неудобств, хотел научиться. Тяжело в учении...как говорится. Тему можно закрывать.

Возьмите в песочнице Ритчу с Керниганом и изучите (позапускайте и модифицируйте примеры) хотя бы первую треть, для начала, иначе так и будете блукать в потемках.

Comoq
Offline
Зарегистрирован: 08.02.2019

b707 пишет:

подобное использование цикла for - абсолютно стандартный метод перебора элементов массива

Проблема глубже, из объяснения можно понять, что for участвует в поднятии флага.

b707
Offline
Зарегистрирован: 26.05.2017

Comoq пишет:

Все прояснилось, проблема была в том, что я ожидал от For чего то необычного, возможно даже магического, а оказалось, что for воткнули просто за неимением ничего другого.

не ударяйтесь в противоположную крайность. В FOR действительно нет ничего магического, но сюда он воткнут вовсе не от "неимения большего". Ему тут самое место и ничего "большего" тут и не требуется. Как я уже написал ранее - стандартный метод итерации массива

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

ЕвгенийП пишет:

Comoq пишет:
только не надо на книги кидать, на сайте полно конкретных гайдов, можно пнуть в сторону одного из них

У кого-то ещё остались сомнения или вопросы?

Если да, то я пошёл за попкорном :)

Книги - для лохов и ботанов! Конкретные пацаны читают "конкретные гайды"! ;))

Comoq
Offline
Зарегистрирован: 08.02.2019

b707 пишет:

Ему тут самое место

А для чего? Если это и переварить проще и условие выполняется

needToSend = (0x00 != memcmp(latest_data, transmit_data, sizeof(transmit_data))); // сравниваем массивы
 
if (needToSend) {
   // отправляем данные, если они изменились
   radio.powerUp();
   radio.write(&transmit_data, sizeof(transmit_data));
   radio.powerDown();
 
   // синхронизируем массивы
   memcpy(latest_data, transmit_data, sizeof(transmit_data));

 

bwn
Offline
Зарегистрирован: 25.08.2014

Comoq пишет:

 

А для чего? Если это и переварить проще и условие выполняется

needToSend = (0x00 != memcmp(latest_data, transmit_data, sizeof(transmit_data))); // сравниваем массивы
 
if (needToSend) {
   // отправляем данные, если они изменились
   radio.powerUp();
   radio.write(&transmit_data, sizeof(transmit_data));
   radio.powerDown();
 
   // синхронизируем массивы
   memcpy(latest_data, transmit_data, sizeof(transmit_data));

 

И что вы из этого поняли, своими словами?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

bwn пишет:

Возьмите в песочнице Ритчу с Керниганом и изучите 

Ну, человек же по-русски написал

Comoq пишет:
только не надо на книги кидать

Чего ещё непонятного-то?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

bwn пишет:

И что вы из этого поняли, своими словами?

Как чего? "if" учавствует в поднятии флага, memcpy его взад опускает, а memcmp просто написали, потому что больше ничего не было.

b707
Offline
Зарегистрирован: 26.05.2017

bwn пишет:

И что вы из этого поняли, своими словами?

во-во

Comoq, не начинайте заново,  не позорьтесь  - второй такой тупой полемики я не переживу

Пока не прочитайте 500 страниц Ритчи и К - не надо нам ваших откровений.

Comoq
Offline
Зарегистрирован: 08.02.2019

bwn пишет:

И что вы из этого поняли, своими словами?

В этом месте мы создаём конструкцию needToSend, которая собой представляет сравнение двух массивов, и указание на то, что сравнение должно быть нетождественным. Далее в операторе if проверяем, так ли это, если так - отправляем, затем переписываем то что отправили в буфер для дальнейшего сравнения.

b707
Offline
Зарегистрирован: 26.05.2017

троль?

Comoq
Offline
Зарегистрирован: 08.02.2019

b707 пишет:

троль?

Я неверно прочёл Вашу конструкцию?

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

да нет, просто коротнуло человека на ерунде, похоже, бывает.

b707
Offline
Зарегистрирован: 26.05.2017

Comoq пишет:

b707 пишет:

троль?

Я неверно прочёл Вашу конструкцию?

она не моя, а так все верно.

только я отказываюсь верить. что существуют новички, понимающие memcmp и не понимающие обычных массивов. Из чего делаю вывод, что вы - троль и мы потратили на вас время впустую. Хотя готов признаться. что исполненно было виртуозно.

Был бы я модератор - я бы вас забанил. Навсегда

Comoq
Offline
Зарегистрирован: 08.02.2019

wdrakula пишет:

да нет, просто коротнуло человека на ерунде, похоже, бывает.

Я об этом сразу написал, что общее соображение процесса есть, но упёрся в "столб" и вылезти сам не могу, ну зациклило меня, глаз замылился, но ведь никто же не поверил, дерьмом облить проще.

И повторюсь, эта конструкция для меня гораздо проще, нежели гайверский в-самом-нужном-месте for.

Comoq
Offline
Зарегистрирован: 08.02.2019

b707 пишет:

только я отказываюсь верить. что существуют новички, понимающие memcmp и не понимающие обычных массивов. 

Был бы я модератор - я бы вас забанил. Навсегда

Вы правы, memcmp я не знал, до Вашего комментария, но у меня есть высшее образование МГТУ Баумана (не кичусь, оно не оч классное, но всё же технарь и с кодом знаком), и умение быстро гуглить и понимать новое, я быстро прочёл что это за команда и весь код сложился в занимательный пазл. Ещё на том моменте где я буксовал на FOR.

Видимо из-за неспособности отличить троля от адекватного энтузиаста, который случайно впал в ступор, Вы модератором и не являетесь.

Comoq
Offline
Зарегистрирован: 08.02.2019

 

А книгу я почитаю, лишней не будет.

Жаль, что из всех, кто сюда отписался, только bwn (не знаю, в силу отсутствия негативных моментов отношения к другим или же лютой терпимости к неучам) смог без нервов, последовательно выявить где я заблуждался и понять как мне помочь, не высказывая открыто неприязнь. Я, честно говоря, знал, что старожилы это не самый приятный народ, но что форум для них это место отыграться на новичках за обиды реальной жизни - этого я не знал. Вот стоило тратить нервы из-за своего самомнения знатока человеческих душ и заведомо предвзятом мнении (которое в силу заблуждения и нежелания искренне помочь, только усиливалось) обо мне? Я знаю, что не могу Вас учить, мал ещё, но прислушайтесь, человек человеку не волк, будьте терпимее и держите гонор в узде, Выж не гайверы.

 

bwn
Offline
Зарегистрирован: 25.08.2014

b707 пишет:

только я отказываюсь верить. что существуют новички, понимающие memcmp и не понимающие обычных массивов. Из чего делаю вывод, что вы - троль и мы потратили на вас время впустую. Хотя готов признаться. что исполненно было виртуозно.

А я согласен с предыдущим оратором, чудес не бывает. То человек не понимает смысла счетчика в цикле, то вдруг начинает оперировать сложными конструкциями, мотивируя хорошей обучаемостью. Это как туземец, бегающий с луком, не могущий воспроизвести пороховое ружо белого человека, вдруг изобретает бластер. Вывод простой, либо имел высокие технологии и притворялся, либо сп-л у кого-то, но тогда до замены батарейки. У ТС, первый вариант. ИМХО.

sadman41
Offline
Зарегистрирован: 19.10.2016

Какие обиды реальной жизни заставили нас быть собаками шелудивыми?

Comoq
Offline
Зарегистрирован: 08.02.2019

bwn пишет:

У ТС, первый вариант. ИМХО.

Разочаровали. Честно. Если проще считать меня троллем и согласиться с b707 - Ваше право. Не мне Вас судить. Вы мне помогли и я благодарен. Остальное меня не касается.

Comoq
Offline
Зарегистрирован: 08.02.2019

sadman41 пишет:

Какие обиды реальной жизни заставили нас быть собаками шелудивыми?

Откуда мне знать о Ваших проблемах? Уравновешенные люди не позволяют себе срываться на незнакомых людях, и уж тем более заявлять о тупости. Это стереотипное "отыграться на слабом", прям как из книжки по психологии. Не буду дискутировать об этом, не имеет смысла, каждый знает, что я прав, но из-за эго никогда не согласится, нет старожила не схватившего "звезды", отсюда и отношение, но как показал сегодняшний день - иногда можно и ошибочно счесть уровень индивида "ниже нуля", но вы же считаете меня троллем? Поэтому мне проще сказать, что это я во всем не прав, а Вы молодцы, нежели пререкаться до бана.

sadman41
Offline
Зарегистрирован: 19.10.2016

Вы же сделали вывод о том, что именно наши проблемы привели к конфликту. А сейчас получается, что нет никакой основы под этим утверждением - исключительно фантазия. 

Вы бы успокоились, приняли 50 грамм. Я согласен с тем, что ваши посты алогичны. Но мы же добили вопрос, несмотря на то, что вопросы были детские - не так ли?

bwn
Offline
Зарегистрирован: 25.08.2014

Comoq пишет:

Разочаровали. Честно. Если проще считать меня троллем и согласиться с b707 - Ваше право. Не мне Вас судить. Вы мне помогли и я благодарен. Остальное меня не касается.

Повторюсь, не верю в чудеса, или вы поняли не до конца, тогда получится второй вариант, когда батарейка сядет. Я, лично, с закрытыми глазами напишу это сравнение, хоть на for-ах, хоть на if-ах, хоть на while, но вот так лихо оперировать memcmp, memcpu .... не умею.(((( 

Comoq
Offline
Зарегистрирован: 08.02.2019

bwn пишет:

Comoq пишет:

Разочаровали. Честно. Если проще считать меня троллем и согласиться с b707 - Ваше право. Не мне Вас судить. Вы мне помогли и я благодарен. Остальное меня не касается.

Повторюсь, не верю в чудеса, или вы поняли не до конца, тогда получится второй вариант, когда батарейка сядет. Я, лично, с закрытыми глазами напишу это сравнение, хоть на for-ах, хоть на if-ах, хоть на while, но вот так лихо оперировать memcmp, memcpu .... не умею.(((( 

А я и не умею, я просто прочел, самостоятельно я в данный момент врятли напишу такое. Вы по английски читаете? Понимаете? Да то же не сложно, а вот можете не раздумывая выдать сложную конструкцию? Сомневаюсь, так как читать и понимать это одно, а создавать это совсем другое. С чего Вы взяли, что я лихо оперирую??

bwn
Offline
Зарегистрирован: 25.08.2014

Comoq пишет:
С чего Вы взяли, что я лихо оперирую??

Из №79 поста. Заявив, что зубодробительная конструкция проще к пониманию, чем граничный счетчик, созданный на for, адресующий элементы массивов. Которые осталось сравнить в if и принять решение. Мозги конечно у всех по разному заточены, что хорошо одному, может быть неприемлемо другому.

Comoq
Offline
Зарегистрирован: 08.02.2019

bwn пишет:

зубодробительная конструкция 

Вы про функцию "не", команду "сравниваем", два массива, вычисление sizeof и проверку в простейшем if? Я может снова начал "тупить", но что тут зубодробительного? Одна команда memcmp избавляет от прописывания счётчика, не надо думать о том, что сравнение будет происходить по кругу посредством какой то функции, зачем это? Одна команда - одно действие в бесконечном цикле, пару дополнительных условий ("не должно быть равно" и "сравниваем"), не налажать с грамматикой синтаксиса и готово. Где здесь проще через for? Как минимум черз memcmp логичнее, потому что она и есть "сравнение", а не счётчик.