ВПК ПОТОК
если на ардуиновском фреймворке делаешь, например
Хочу использовать ESP32 прошивать через IDO ARDUINO
romanetz
Ну чё б и нет)
ВПК ПОТОК
Ну чё б и нет)
Я так понимаю для работы с массивами могу использовать просто их имена без указателей, мне нужно передать в функцию массив, чтобы сравнить его какая пришла команда.
romanetz
Имя массива и есть укзатель на его нулевой элемент
romanetz
В некоторых хитросделанных случаях можно его передвинуть, например, чтобы массив с другого значения индексироватт
ВПК ПОТОК
Вот только вопрос обращаться к массиву на прямую, или передавать его во внутрь функции?
romanetz
Передавая массив по указателю, по сути, и обращаешься к нему напрямую
ВПК ПОТОК
Очень красиво, и для не опытного просто жутко
SetPf
Очень красиво, и для не опытного просто жутко
У вас объявляется тип (ну не бейте) - союз com_command, который можно использовать как массив из 4х байт и как 32битное слово. Дальше определяются 2 таких союза, один через заполнение массива, другой просто 32битным числом (там 16 битное вписано) Потом они просто по значению передаются в функцию.
SetPf
Обычно вся возьня с протоколами делается через союзы. Это попросту удобно и читаемо.
SetPf
Если не слышали про союзы - советую изучить, это простая и короткая тема, в таких случаях очень полезна.
ВПК ПОТОК
Если не слышали про союзы - советую изучить, это простая и короткая тема, в таких случаях очень полезна.
Союзы это я так понял через точку подключение? такое часто использовал для обращения к методам библиотек.
romanetz
(union)
SetPf
Есть же приведение типов через указатели, нафиг там союз
Что бы удобнее этой штукой перекидываться было. Можно и так. Я просто хотел показать что массив из 4х байт можно использовать как 32б переменную. Это все от задач же зависит. Кидаться указателем на 32битку может выйти дороже чем целиком по значению.
romanetz
Кстати, ещё есть метод, хеши высчитать и сравнивать
romanetz
Чем побайтно
SetPf
Союзы это я так понял через точку подключение? такое часто использовал для обращения к методам библиотек.
Нет, точка это оператор обращения к членам. (структуры, союза, объекта) Союз это тип данных, члены которого имеют одно значение, но представлены разными типами данных. Фактически они будут иметь один адрес в памяти. Вам лучше почитать и примеры посмотреть, я так себе обьясняльщик.
romanetz
Для длинных блоков будет быстрее
SetPf
Кстати, ещё есть метод, хеши высчитать и сравнивать
Я сначала хотел, а потом увидел что 4 байта. Если там больше, то иначе то и не стоит. =\
romanetz
+
SetPf
Можно еще древо графов построить, если данные с которыми будут сравнивать не изменяются.
Dr Zlo
более того, можно общаться с отдельными битами
Dr Zlo
typedef struct{ uint8_t shutdown:1; uint8_t thermal:1; uint8_t reserved:2; uint8_t mode:2; uint8_t amp_right_en:1; uint8_t amp_left_en:1; }__attribute__((packed)) TPA6130A2_Control_Reg;
Dr Zlo
TPA6130A2_Control_Reg control_data = {}; control_data.amp_left_en = 1; control_data.amp_right_en = 1; control_data.mode = MODE_STEREO; control_data.shutdown = 0; HAL_I2C_Mem_Write(i2c, TPA6130A2_ADDR, CONTROL_REG, I2C_MEMADD_SIZE_8BIT, (uint8_t*) &control_data, 1, HAL_MAX_DELAY);
Ivansuper
Ребят, вопрос -- я что-то явно упускаю, но как у idf.py monitor выставить скорость?
Ivansuper
Найдено
Dr Zlo
Это типо кусок затенения регистров усилка в ОЗУ микроконтроллера?
ну тут никакого затенения нет, просто работа с каждым битом из байта раздельно
Dr Zlo
сама структура TPA6130A2_Control_Reg это один байт
Dr Zlo
SetPf
Господа кто делал вебморды. Как вы справляетесь со всякой интерфейсной рилтаймовой таймерной фигней. 1) Пересылаете обновления? 2) Считаете на клиенте?
SetPf
3) Что нибудь еще?
SetPf
https://ru.wikipedia.org/wiki/AJAX
Не отвечает на вопрос =\
SetPf
Пересылать обновления - это смирится с тем, что время будет скакать (либо боротся с этим) Считать на клиенте, это в сложной ситуация реализовывать часть логики на клиенте, фактически ее дублируя.
SetPf
То что это через аякс или вебсокеты будет и там и там - ясен фиг.
SetPf
а почему время будет скакать?
Пинг скакнет на мобиле, таймер обновится через секунду.
Andy
Пересылать обновления - это смирится с тем, что время будет скакать (либо боротся с этим) Считать на клиенте, это в сложной ситуация реализовывать часть логики на клиенте, фактически ее дублируя.
"смирится с тем, что время будет скакать (либо боротся с этим)" - не увидел этой фразы в исходном вопросе. Поэтому сразу было бы хорошо озвучить все требования к UI
Dr Zlo
Пинг скакнет на мобиле, таймер обновится через секунду.
твой аякс при приеме пакета знает сколько он шел от сервера, при чем тут пинг?)
Dr Zlo
https://stackoverflow.com/questions/1638337/the-best-way-to-synchronize-client-side-javascript-clock-with-server-date/15785110 вот тут разобран твой вопрос
SetPf
твой аякс при приеме пакета знает сколько он шел от сервера, при чем тут пинг?)
Как это отразится на том, что пакет с обновленным показанием таймера пришел на 3 секунды позже?
romanetz
ты знаешь, когда пинги по три секунды - надо связь менять )))
Dr Zlo
Как это отразится на том, что пакет с обновленным показанием таймера пришел на 3 секунды позже?
ты прибавишь к нему ResponseTime и получишь текущее время на сервере, в простом случае
romanetz
три секунды - это 2ж херовый
romanetz
++ на прямую оптику до сервера
3/4ж вполне достаточно
Dr Zlo
ведь так важно что контроллер лампочки откликнулся через три секунды
Andy
Задача то на UI какая? Выводить время с точностью до 10 mc?
SetPf
Задача то на UI какая? Выводить время с точностью до 10 mc?
Красиво отображать тикающие на серваке таймеры.
Andy
чтобы время не скакало
Опять же непонятно: типа что бы интервалы смены секунд на UI были строго 1 секунда? С какой точностью?
romanetz
а что с ними не так, с таймерами? по стране пинг 200-300 мсек на фиксе
romanetz
максимум )
Dr Zlo
Как это отразится на том, что пакет с обновленным показанием таймера пришел на 3 секунды позже?
а, ты про случай что время на странице будет не по 1 секунде идти, а по непонятному зависящему от задержки соединения числу?
romanetz
ну так секундные интервалы
Dr Zlo
тут никак не сделать логику в одном месте
Dr Zlo
я бы просто обошел это мелким индикатором связи с сервером
Ruslan
модуль LAN8720 вроде заработал, но IP адрес не получает
Andy
С точностью что бы не блевотно смотреть было. Нет... серьезно.
"не блевотно смотреть" - нет такого измерителя вермени, есть миллисекунды, микросекунды и пр. Если допустима задержка 200-300 mc. то можно брать время с чипа, если нужно точнее в любых условиях, то только локальные таймер + синхронизация с чипом по типу SNTP
romanetz
http://oscada.org:10002/WebVision/ses_AGLKS/ вон даже тренды обновляют с инетрвалом в секунду
SetPf
"не блевотно смотреть" - нет такого измерителя вермени, есть миллисекунды, микросекунды и пр. Если допустима задержка 200-300 mc. то можно брать время с чипа, если нужно точнее в любых условиях, то только локальные таймер + синхронизация с чипом по типу SNTP
Эммм в UI есть? В плане че вы от меня хотите, ссылки на научную статью с рандомизированым исследованием с какой погрешности люди начинают замечать не плавное изменение значений?
romanetz
полсекунды обычно считается нормальная реакция на действия опытным путём для асутпшных задач
SetPf
тут никак не сделать логику в одном месте
Ну можно на клиенте считать, но придется еще кучу логики переносить туда-же, что бы предсказывал поведение относительно отсчета. А не хочется...
Dr Zlo
я бы сделал просто индикатор
SetPf
полсекунды обычно считается нормальная реакция на действия опытным путём для асутпшных задач
Блин. Да тут не время реакции же проблема. А что тетенька будет смотреть в свой айфон какая, а там цифра дергается =)
SetPf
я бы сделал просто индикатор
Ну я вот тоже чет подумал, что может ну нахрен таймеры, полосочки-бары какие.
Andy
Эммм в UI есть? В плане че вы от меня хотите, ссылки на научную статью с рандомизированым исследованием с какой погрешности люди начинают замечать не плавное изменение значений?
Если нет жестких требований то начать со статьи из закрепленного сообщения. Дальше уже будешь в теме и сможешь сформулировать что конкретно надо.
romanetz
что значит "цифа дёргаётся"? цифра чего?
romanetz
я вот хз, сервер mqtt и железка, RTT суммарный 150 мсек до неё, всё отлично показывает -проблема не высосана из пальца?
Andy
Блин. Да тут не время реакции же проблема. А что тетенька будет смотреть в свой айфон какая, а там цифра дергается =)
Пусть тетенька хоть на что-то посмотрит, может ей твои миллисекунды по барабану, а может наоборот - нужно вообще прямо на изделии табло ставить :)