Indr1x
@EVP_07_KZ исправь на ебланuты и не плати ничего
Indr1x
Не, это так не работает
С абибасом работает же
С абибасом работает же
Это потому что там оказались ебланиты. А я учел все эти ошибки
Andy
Вот тут я бы предложил посмотреть как работают СКУД, а потом уже размышлять о бренности бытия. Каждая точку СКУД должна иметь всю базу всех карт ;)
БД в современном понимании это обычно монстр понимающий SQL и по сути операционная система для управления данными. И напротив - "БД карт" это просто список, зачастую фиксированного формата и зачастую односвязанный. Т.е. хоть оно и называется БД и там, и там, но имеет совершенно разный смысл.
Ruslan
Вот именно, что он подразумевает под БД нам остается догадываться, но на его примере: СКУД - это записная книжка
может ему подсказать, что ему хватит NVS с ключом в виде айди карты и значением времени протухания?
а если в эту дверь нельзя, а в эту можно не тоже не всем?
Ну блин битовая маска с правами в байт залезет
Ruslan
но в принципе и так сойдёт )
я бы так не делал 😉
Я бы скуд даже не делал. А купил бы готовый
Евгений
Да ладно тебе. Я знаю бухгалтеров которые базой данных называют свою экселевскую табличку в общей шаре.
У нас "базой данных на нашем сервере" называют шару с файлами на хранилище =)
Ruslan
Я бы скуд даже не делал. А купил бы готовый
у меня камрад купил, в ТЦ, несколько, охуевает уже год, то одно отьебнёт, то другое, всё сертифицированное и дорогое
Потом эти ебучие ардуины на соплях зависнут от какой нибудь статики или еще от чего угодно. А ебланит который их проектировал давно уже на лыжы встал. ну или просто в отпуск свалил
Это база данных?
Ruslan
спецы приезжают, исправляют, но ему от этого не легче
Евгений
Это база данных?
Кусок авторизации между жезелками
Ruslan
Хуево видимо дрочит их.
в принципе и в лес может свозить
Ruslan
но щас все такие вежливые стали
Евгений
Хуево видимо дрочит их.
Так они за это деньги получают, не будет ломаться - нах они нужны? А тут вот! Работают ребята!
Так они за это деньги получают, не будет ломаться - нах они нужны? А тут вот! Работают ребята!
Я не знаю их договорные отношения. Может у них сервисный контракт с фикс прайсом.
Евгений
Короче, какое то резервирование
Konstantin
Тоже на соплях?
Спаяно на соплях, но работает стабильно. Ща ещё керамический конденсатор 1 мкФ повешу по питанию, совсем по фен-шую будет
Евгений
че за программатор?
Ты личку иногда проверяй, а то мало ли =)
Anton
вопрос по си/гцц. есть структура typedef struct { size_t length; char data[1]; } str_t; где-то под неё выделяется память str_t *str = malloc(sizeof(str_t) + len); затем данные копируются memcpy(str->data, char_ptr, len); так вот гцц видя переданную строку вычисляет размер и выдаёт предупреждение, что размер data недостаточен для копирования туда 50 байт. ну так я и сам это знаю и учтено всё в момент маллока же. пытаюсь подавать варнинг: #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Warray-bounds" memcpy(ret->data, pc, sln); #pragma GCC diagnostic pop получаю вообще ошибку вместо предупреждения: error: 'memcpy' writing 50 bytes into a region of size 0 overflows the destination [-Werror=stringop-overflow=] 57 | memcpy(ret->data, pc, sln); | ^~~~~~~~~~~~~~~~~~~~~~~~~~
Ruslan
камрады, а чё за такой ESPHome, на котором все на ямле программируют?
Anton
то есть, когда было предупреждение, то эта диагностика срабатывала до того, как случится следующая и компиляция проходила нормально, только с предупреждением, а теперь вообще считается ошибкой
Ruslan
Таки MVP для гос проектов на таком можно делать )))
Nick
А размер правильно определяет?
Только хотел написать Мб дело в прагмах еще, каждая из них может принцип компиляции менять Либо len во втором memcpy неверно определена
Nick
О чем компилятор явно говорит
Nick
Что длина нулевая
Anton
вот так получилось #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Warray-bounds" #pragma GCC diagnostic ignored "-Wstringop-overflow" memcpy(ret->data, pc, sln); #pragma GCC diagnostic pop
Nick
Не len, а sln, прошу прощения
Anton
Только хотел написать Мб дело в прагмах еще, каждая из них может принцип компиляции менять Либо len во втором memcpy неверно определена
всё там верно, он просто не соображает что реально выделенный размер под структуру динамический
Anton
Так у тебя написано же . А ты отключаешь другой ворнинг
два надо отключать потому что. сначала один, потом второй. первый тока варнинг, второй ещё и как ошибка
Nick
Тогда прагмы и параметры компиляции смотреть У меня подобная логика работала, когда я так писал
Anton
Не len, а sln, прошу прощения
я руками упрощённый код писал, потому разница в названиях, не копировал реальный
Nick
Попозже, возможно, даже попробую повторить, интересно стало
Anton
просто с таким контролем предупреждений раньше не сталкивался — не нужно было. а тут вдруг вылез...
Anton
Так у тебя написано же . А ты отключаешь другой ворнинг
что мне компилятор сказал, то я и пытался выключить...
Nick
А, стоп
Nick
Кажется, я понял
Nick
Вы объявили char массивом длиной 1 (т.е. указателем) в структуре, а затем указатель не разыменовываете в вызове memcpy Я давно с этими функциями сишными не работал, мб я и не прав
Nick
Точно правильно?
Nick
Ну да В memcpy указатель ставится?
Anton
Ну да В memcpy указатель ставится?
да, указатель, что ж ещё у меня всё правильно, но несколько не стандартно для компилятора и он предполагает, что я ошибся.
Вы объявили char массивом длиной 1 (т.е. указателем) в структуре, а затем указатель не разыменовываете в вызове memcpy Я давно с этими функциями сишными не работал, мб я и не прав
Да всё у него правильно. Просто до компилятора не доходит что массив динамический и он кидает ворнинг, который у него включен как ошибка. Защита от дурака в последних гцц
Nick
Понял
Nick
Спасибо, начал С забывать
Anton
вообще, в си есть некоторая путаница. есть адреса и есть указатели. в синтаксисе они часто взаимозаменяемы для r-value
Пиши на плюсах
Anton
имя массива - адрес. указатель на произвольный кусок имеет свой адрес
Да нет никакой путаницы. Есть общей кусок памяти и всё имеет адреса.
Anton
Да нет никакой путаницы. Есть общей кусок памяти и всё имеет адреса.
есть. двумерный массив и массив указателей на указатели физически разные, а тип один
Это просто следует понять один раз. Потом все будет понятно. И не будет вопросов что такое ***a, **b, *c и прочие приколы
Anton
Пиши на плюсах
обычно я свободен в выборе яп для своего хобби