@ru_electronics

Страница 194 из 718
Firelander
12.01.2017
14:25:55
я обычно memcpy юзаю. Строчек меньше

Влад
12.01.2017
14:26:12
боюсь я этого вашего memcpy

kaktys
12.01.2017
14:26:27
Dolphin
12.01.2017
14:26:28
а почему сразу указателем на буфер байт не сделать?

Google
Dolphin
12.01.2017
14:27:01
*char[]

Firelander
12.01.2017
14:27:04
для 4 байт не стоит
вполне так стоит. С учётом того что она словами копирует

с присваиванием я однажды натолкнулся на косяк с выравниванием

Dolphin
12.01.2017
14:28:32
я бы сделал структуру с указателями, и ничего никуда не копировал

только адреса заполнил и отправка

Firelander
12.01.2017
14:29:09
можно юзать упакованную структуру для десериализации, да

kaktys
12.01.2017
14:29:20
Firelander
12.01.2017
14:29:26
хотя вроде работает, но я почему-то побаиваюсь

Dolphin
12.01.2017
14:29:47
согласен, но это удобнее, и потом ее можно кончить по выполнению

все зависит от реализации отправки

Влад
12.01.2017
14:30:47
simple_udp_sendto(connection, buf, lenght + 1, dest_addr);

Byte
12.01.2017
14:31:48
s/lenght/length :)

Google
Влад
12.01.2017
14:32:14
у меня дежа-вю

Dolphin
12.01.2017
14:33:41
Влад, работает?

Влад
12.01.2017
14:34:17
Влад, работает?
что работает?

Dolphin
12.01.2017
14:34:25
отправка

Влад
12.01.2017
14:35:22
в смысле? она и работала всегда

ты лучше пример покажи десериализации структурой приходящего массива, а то бесят меня эти buf[1]

Dolphin
12.01.2017
14:36:06
ну ты же справшиваешь ))

LexsZero
12.01.2017
14:36:47
из присутствующих, есть ли спецы, кто имеет опыт разворачивания chibios на stm32f105?
ну я. берешь экземпл-мигалку, копируешь, пишешь туда свой код.

Влад
12.01.2017
14:37:16
Я спрашиваю, где может быть проблема, и вообще, нормально ли так делать. А перед этим добился компиляции, избавился от варнингов, проверил работу.

LexsZero
12.01.2017
14:37:51
сдвиг быстрее сделать, чем деление
вот только в данном случае компилятор посчитает всю эту херню в компайл-тайме и заменит на константы.

Firelander
12.01.2017
14:40:03
Я спрашиваю, где может быть проблема, и вообще, нормально ли так делать. А перед этим добился компиляции, избавился от варнингов, проверил работу.
проблем быть не должно, если делать побайтово как ты делаешь. Если пытаться вытащить к примеру сразу четырехбайтовый инт из указателя, то очень возможен косяк с выравниванием

сериализацию/десериализацию вообще нельзя сделать красиво и надежно одновременно только средствами сишки

Dolphin
12.01.2017
14:42:29
и проблем с UB быть не должно в GCC

в случае с пост-префиксным увеличением

Dolphin
12.01.2017
14:44:13
хотя префиксное только в скобках, автоматом отпадает УБ

он его на байты так режет

Влад
12.01.2017
14:46:01
очень надеюсь, что ЭТО не на другой арм переноситься не будет

LexsZero
12.01.2017
14:46:31
#define PUSH_UINT32(ptr, x) do { ptr[0] = x & 0xFF; ptr[1] = (x >> 8) & 0xFF; ptr[2] = (x >> 16) && 0xFF; ptr[3] = (x >> 24) && 0xFF; ptr += 4; } while (0) как-то так

Влад
12.01.2017
14:46:32
указатель забыл убрать.

Google
LexsZero
12.01.2017
14:47:06
очень надеюсь, что ЭТО не на другой арм переноситься не будет
а если потребуется какие-нибудь отладочные утилиты для x86 из тех же сорцов/хедеров собрать?

по-моему это довольно частый юзкейс

Dolphin
12.01.2017
14:48:40
не заработает ))

ошибки там

Dolphin
12.01.2017
14:49:33
#define PUSH_UINT32(ptr, x) do { ptr[0] = x & 0xFF; ptr[1] = (x » 8) & 0xFF; ptr[2] = (x » 16) & 0xFF; ptr[3] = (x » 24) ; ptr += 4; } while (0)

Влад
12.01.2017
14:49:37
из этих сорцов нет, оно платформо-зависимое очень.

LexsZero
12.01.2017
14:51:24
*ptr = x; не?
ptr это пойнтер на однобайт, x четырехбайтный. без кастов будет ой, с кастами - получится вариант оп'а. так делать можно, но не очень кошерно.

Влад
12.01.2017
14:51:39
в общем, с макросами совет хороший, но следовать ему, я конечно не буду. отчасти потому, что такого рода макрос для меня гораздо хуже читаем, чем моя конструкция.

LexsZero
12.01.2017
14:52:28
А,лол. А что мешает поинтер сделать на нормальные 32 бита?
ну, например, то что паковать надо кашу из полей разной длины?

Kirill
12.01.2017
14:53:00
если си, я бы пиханул мемкопи с инкрементом на sizeof. если плюсы, я бы пиханул вариадик темплейтс вместие с мемкопи и все бы сериализовалось автоматически

Kirill
12.01.2017
14:58:20
в общем если когда нибудь захочется сделать универсальный платформонезависимый сериализатор который может принимать бесконечное количество разных параметров, вот видео в котором реализуется сериализация в строку. в массив сделать это не сильно сложнее

https://www.youtube.com/watch?v=o1EvPhz6UNE

Danil
12.01.2017
14:58:50
ну да > < норм, >= <= с осторожностью, == никогда

ОлегЪ
12.01.2017
15:48:35
так вроде для сравнения вещественных чисел вводится такое понятие, как точность

вместо, например, a==b пишут (abs(a)<e), где e порядка 10^-9

Dolphin
12.01.2017
15:52:37
abs(a-b) видимо? ))

ОлегЪ
12.01.2017
15:53:17
точно, то стравнение с нулем попутал

Google
ОлегЪ
12.01.2017
15:53:42
вместо, например, a==0 пишут (abs(a)<e), где e порядка 10^-9 вместо, например, a==b пишут (abs(a-b)<e), где e порядка 10^-9

Dolphin
12.01.2017
15:54:20
на шейдерах не работает

ОлегЪ
12.01.2017
15:54:30
вот только не помню, меньше или меньше_или_равно, если оч надо, могу конспекты поискать, там это доходчиво описано, правда на паскале

на шейдерах не работает
шейдеры, которые в видеокартах?

Dolphin
12.01.2017
15:55:14
равно тут не важно, оценивается погрешность

да те самые

Admin
ERROR: S client not available

Dolphin
12.01.2017
15:55:45
там хоть и float, но он дискретен

ОлегЪ
12.01.2017
15:56:10
тут хз, у нас были численые методы и просто теоритическое програмирование, решение всяких задач, там оно работало, для видях не писал никогда

флоат вроде как всегда дискретен

Dolphin
12.01.2017
15:56:28
например яркость компоненты 0-255, там 0.0-1.0, но с шагом 0.004

Dmitry
12.01.2017
15:56:49
а на какой вы отвечаете?

Dolphin
12.01.2017
15:57:19
Если я, то Олегу - подряд ответил ))

Alexandre
12.01.2017
16:02:30
ох, у 4-байтного IEEE754 флоата точность 7 значащих цифр - все с (abs(a-b)<e) будет работать на любой платформе

Petr
12.01.2017
16:03:26
Мб вам в @procxx ?

Dolphin
12.01.2017
16:15:21
ох, у 4-байтного IEEE754 флоата точность 7 значащих цифр - все с (abs(a-b)<e) будет работать на любой платформе
Я скорее не так выразился, не важно, лень подробности выносить. Просто я сделал иначе )

Подполковник
13.01.2017
15:11:38
усилитель романтика мэ-222с, выдает очень очень тихий сигнал на левый канал, с правым все нормально. Если подключена правая колонка - индикатор выходного сигнала не "играет", как будто сигнал не выходит, а если отключить правую и оставить только левую, выкруить на макс (чтобы хоть что то было слышно) громкость, он начинает "играть".. Единственное что я смог сделать - увидел две одинаковых платы (кр\зел на фото), поменял их местами - ничего не изменилось.

Также пытался выводить через разъем для наушников (jack) - левыый так же тихий

Google
Dolphin
13.01.2017
15:20:05
при подстановке в условиях иначе будет ошибка

и чтобы блоком выполнять последовательность

как одну команду

компилятор сам раскроет и уберет цикл

Влад
13.01.2017
16:54:56
Скажите мне, а кнопки совсем без дребезга бывают? Совсем-совсем

вот это осцилограмма с кнопки

одной стороной на 3 вольтах, вторая сторона в воздухе, к ней щуп подключен

обьясните, мне, как обычная кнопка может такой график давать

Denys
13.01.2017
16:55:32
где-то кондер в цепи, похоже

Влад
13.01.2017
16:55:58
найдешь?

Ilya
13.01.2017
16:57:24
Мож китайцы начали кондеры в кнопки встраивать?

Влад
13.01.2017
16:57:51
а как же подгорание выводов?

RLC-метер говорит 6пф

Страница 194 из 718