@ProCxx

Страница 2131 из 2477
Dmitry
13.06.2018
07:27:12
Народ, есть ли у кого опыт работы с OpenCV, вчасности с распознаванием геометрических фигур и текста?

Ilia
13.06.2018
07:27:56
Есть, подожди только

yuri
13.06.2018
07:32:08
Народ, есть ли у кого опыт работы с OpenCV, вчасности с распознаванием геометрических фигур и текста?
Есть, но это было давно и неправда. Классификаторы, которые идут с либой сами по себе не очень. Лица распознают хорошо (самое востребованное), а вот кошек уже почти не распознают. С геометрическими фигурами и текстом видимо будет еще хуже. Хотя можно погуглить готовые классификторы. А если желаешь сам натренировать классификатор, то сначала прикинь сколько футажа ты сможешь набрать для тренировки — и для более-менее какого-то результата умножь это количество на 100.

Для автомобильных госномеров готовые классификаторы есть.

Google
Aleksandr
13.06.2018
08:58:27
привет. что-то у меня затуп, есть код: struct ABC{}; void foo(ABC && abc) { ABC & tmp = abc; // затуп } int main() { ABC abc; foo(std::move(abc)); } я не очень понимаю, какое правило используется отсюда: https://en.cppreference.com/w/cpp/language/reference_initialization Внутри foo() выражение 'abc' имеет тип ABC && и категория glvalue tmp - lvalue reference (не конст). значит отбрасываем все правила кроме: T & ref = object; 1) If 'object' is an lvalue expression, and its type is T or derived from T, and is equally or less cv-qualified, then the reference is bound to the object identified by the lvalue or to its base class subobject. object у нас действительно lvalue expression, но тип-то у него не T, а T&&, значит, правило не подходит? 2) Otherwise, if the type of object is not same or derived from T, and object has conversion function to an lvalue whose type is either T or derived from T, equally or less cv-qualified, then the reference is bound to the object identified by the lvalue returned by the conversion function (or to its base class subobject). может, это подходит?

Aleksandr
13.06.2018
09:09:20
да, согласен, категория у 'abc' lvalue, не glvalue. но всё остальное всё равно в силе. The following expressions are lvalue expressions: * the name of a variable, a function, or a data member, regardless of type, such as std::cin or std::endl. Even if the variable's type is rvalue reference, the expression consisting of its name is an lvalue expression; т.е. тип rvalue reference, категория lvalue

а, или тут разница в типе выражения и типе объекта? т.е. у выражения abc тип ABC &&, но тип объекта ABC, и поэтому используем первое правило?

yuri
13.06.2018
10:16:09
Dmitry
13.06.2018
10:23:51
Спасибо, посмотрим

Aidar
13.06.2018
10:26:52
Ну дорожные знаки очевидно легче чем кошек

yuri
13.06.2018
10:27:44
надо уточнить, может быть по моей ссылке американские знаки

Аттрибутивно-ассоциативный ряд
13.06.2018
12:28:06
А где можно посмотреть статус пропозала и решения комитета?

Конкретно инетерсует P0538R0 A Qualified Replacement for #pragma once

Ilia
13.06.2018
12:40:14
Принимайте тёпленького

Google
Ilia
13.06.2018
12:40:15
Товарищи, вопрос есть. У меня ОС linux, какая-то сборка debian. Она крутится на контроллере, (проц armv7). У контроллера есть ком-порт. В ком-порт некоторый софт (софт производителя) пишет запросы и читает ответы от внешних устройств. Моя задача: в свою программу на с++ заполучить данные, которые принимает и передаёт программа. Засада в том, что я не знаю, как можно посмотреть то, что программа пишет в порт. Можно использовать сторонний софт, типа slsniff, но вот только он не подходит, поскольку мне нужно получить эти данные самостоятельно. Если slsniff как-то это делает, значит и я как-то могу? Может кто-то в курсе, как можно посмотретью ВСЮ движуху на ком-порте?

Имхо надо брать опенсорсную либо по работе с ком портом и там смотреть как сделано

Dmitry
13.06.2018
12:45:47
там модбас, там легко парсить

Ilia
13.06.2018
12:50:43
Ну, гляди...

Aleksandr
13.06.2018
12:54:14
Да, у инициализатора тип ABC и lvalue. Lvalue ссылка биндится к lvalue без проблем :) Остальные правила описаны в стандарте в dcl.init.ref, на cppreference выжимка.
потратил часа 3 на поиски. дело оказалось вот в чём: 8.2.2 Type [expr.type] 1 If an expression initially has the type “reference to T” ([dcl.ref], [dcl.init.ref]), the type is adjusted to T prior to any further analysis.

Dmitry
13.06.2018
12:55:20
stty -f /dev/ttyS0 -crtscts -cdtrdsr, где /dev/ttyS0 - первый COM порт.
Это прикольно, правда, пока ещё не удалось ничего прочитать, но ща мануал изучу, может чё и выйдет)

Vitaly
13.06.2018
12:56:32
Это прикольно, правда, пока ещё не удалось ничего прочитать, но ща мануал изучу, может чё и выйдет)
Нужно экспериментально подбирать скорость порта. Попробуй сначала стандартные 9600 б/с или 115200 б/с.

Dmitry
13.06.2018
12:56:45
скорость порта мне известна

Однако, ввод команды ничего не даёт, совсем. stty -F /dev/rs485 115200 -crtscts

Vitaly
13.06.2018
12:59:00
Однако, ввод команды ничего не даёт, совсем. stty -F /dev/rs485 115200 -crtscts
Аккаунт должен состоять в группе dialout для доступа к serial-портам.

Dmitry
13.06.2018
12:59:20
аккаунт? в смысле юзер? но я ведь под рутом

Vitaly
13.06.2018
13:00:26
аккаунт? в смысле юзер? но я ведь под рутом
Да, но если уже от рута, тогда должно работать.

Dmitry
13.06.2018
13:03:25
stty -F /dev/rs485 выводит разную <undef> фигню .. кажется, это страннно. Но скорость считывает

Igor
13.06.2018
13:03:50
потратил часа 3 на поиски. дело оказалось вот в чём: 8.2.2 Type [expr.type] 1 If an expression initially has the type “reference to T” ([dcl.ref], [dcl.init.ref]), the type is adjusted to T prior to any further analysis.
Но ссылка не просто отбрасывается, а определяет категорию. Например для вызовов функций такие правила: A function call is an lvalue if the result type is an lvalue reference type or an rvalue reference to function type, an xvalue if the result type is an rvalue reference to object type, and a prvalue otherwise.

Юра Незнанов
13.06.2018
13:04:52
Всем привет. Дайте пожалуйста совет. Как лучше на вирус-тотал послать файлик через с++? курлом? Чем легче всего получить и распарсить ответ?

Aidar
13.06.2018
13:06:09
Google
Юра Незнанов
13.06.2018
13:07:03
ну емае, там в апи примерах все есть, даже с++ не нужен
curl -v -F 'file=@/path/to/file' -F \ apikey=${VT_API_KEY} https://www.virustotal.com/vtapi/v2/file/scan curl -v --request POST \ --url 'https://www.virustotal.com/vtapi/v2/file/rescan' \ -d apikey=${VT_API_KEY} \ -d 'resource=7657fcb7d772448a6d8504e4b20168b8' curl -v --request POST \ --url 'https://www.virustotal.com/vtapi/v2/file/report' \ -d apikey=${VT_API_KEY} \ -d 'resource=7657fcb7d772448a6d8504e4b20168b8'

вот что тут есть

Dmitry
13.06.2018
13:07:12
А там точно буквы должны быть? Может так и надо?
Там байты. передаются пакеты 10 раз в секунду. хоть что-то бы увидеть. Что вообще должно произойти, при успехе? я так думаю, консоль должна перехватиться же

Aleksandr
13.06.2018
13:07:41
Но ссылка не просто отбрасывается, а определяет категорию. Например для вызовов функций такие правила: A function call is an lvalue if the result type is an lvalue reference type or an rvalue reference to function type, an xvalue if the result type is an rvalue reference to object type, and a prvalue otherwise.
про категорию выражения вопросов не было) был вопрос именно в типе выражения. тип выражения - "ABC &&" в моём примере (что не соответствует типу ABC), но в дальнейшем анализе && отбрасывается, поэтому используется первое правило.

Aidar
13.06.2018
13:08:54
Вроде чтобы понять про && достаточно понять зачем там STD::forward

Dmitry
13.06.2018
13:09:36
в файл надо писать
в файле тоже пусто

Aleksandr
13.06.2018
13:12:53
в любом случае, я уже разобрался, спасибо)

Igor
13.06.2018
13:13:23
в любом случае, я уже разобрался, спасибо)
https://github.com/jeaye/value-category-cheatsheet/raw/master/value-category-cheatsheet.pdf полезная шпаргалка, может будет интересно просмотреть.

Aleksandr
13.06.2018
13:21:00
Dmitry
13.06.2018
13:23:07
Да, но если уже от рута, тогда должно работать.
Что-то я сомневаюсь про stty. Он, вроде бы, только настройки умеет записывать. Вывести ещё ничего не удалось блин

Igor
13.06.2018
13:23:12
спасибо, мельком посмотрел, с lifetime extension для xvalue не совсем согласен)
Lifetime extension работает только для prvalue. С чем не согласны? :)

Aleksandr
13.06.2018
13:30:51
Lifetime extension работает только для prvalue. С чем не согласны? :)
xvalue - это же что-то, что обладает свойствами и rvalue и glvalue. An rvalue may be used to initialize an rvalue reference, in which case the lifetime of the object identified by the rvalue is extended until the scope of the reference ends. как я вижу проблему с T && foo = std::move(T{}); дело не в том, что move возвращает xvalue и у него не продлевается жизнь, а дело в том, что жизнь продлится аргументу move только до конца выражения, в котором move фигурирует (потому что move - функция) a temporary bound to a reference parameter in a function call exists until the end of the full expression containing that function call: if the function returns a reference, which outlives the full expression, it becomes a dangling reference. Т.е. да, результат один, жизнь не продлевается, но объяснения разные. это только вопрос восприятия

Aleksandr
13.06.2018
13:38:15
вот например. возьмём выражение XXX && xxx = static_cast<XXX &&> ( XXX{}); static_cast возвращает xvalue тут, но static_cast не функция, поэтому тут жизнь продлевается (проверял на clang 4.0) надо бы остальные компиляторы глянуть

Google
Aleksandr
13.06.2018
13:39:58
может тут, конечно, UB, я просто его не вижу и компилятор просто делает так как хочет.

Игорь
13.06.2018
13:40:07
Можно здесь пожаловаться на вертску сайта с примером?

Dmitry
13.06.2018
13:41:56
А cat /dev/rs485 или screen /dev/rs485 115200 что-то выдаёт?
если прибор слейв - то ничего не выдаёт, тишина. А если прибор мастер - то всякие странные символы, что логично.

Noname
13.06.2018
13:57:02
Здасте. подскажите, может кто знает что нужно сделать, линкую библиотеку в gcc, а он мне пишет вот это /usr/bin/ld: skipping incompatible /home/parl/5UX/libOux.so when searching for -lOux

Max
13.06.2018
14:03:39
дай выхлоп file /home/parl/5UX/libOux.so .

скорее всего, не совпадает архитектура либы и бинарника, к которому линкуешь.

Noname
13.06.2018
14:08:49
может быть это из-за того что либа под 32 бита а у меня 64?

Noname
13.06.2018
14:13:05
да
Спасибо

Valentin
13.06.2018
14:36:19
Возможно это в этот чат ближе, хз.

Вообщем, вот такой код:

https://hastebin.com/mayutivivi.cpp

ипользую вот так: static std::unordered_map<std::string, std::function< std::unique_ptr <Command>() > > parser = { AddCommand(CIPCLOSE), AddCommand(CIPSEND), AddCommand(GMR), AddCommand(OK) };

Выдает вот такую пачку ошибок:



Что может быть:? На десктопе собирается без проблем, на Visual Micro компиляторе не билдится.

Group Butler [beta]
13.06.2018
14:36:20
Valentin kicked for flood!

Igor
13.06.2018
14:37:40
вот например. возьмём выражение XXX && xxx = static_cast<XXX &&> ( XXX{}); static_cast возвращает xvalue тут, но static_cast не функция, поэтому тут жизнь продлевается (проверял на clang 4.0) надо бы остальные компиляторы глянуть
Тут действительно время жизни продлевается, я подозреваю потому что ссылка биндится напрямую к temporary object. Скорее всего этот случай покрывается одним из правил в [class.temporary].6, но до конца я не понимаю логику. Если заменить static_cast на std::move, то временный объект сдохнет сразу же.

вот например. возьмём выражение XXX && xxx = static_cast<XXX &&> ( XXX{}); static_cast возвращает xvalue тут, но static_cast не функция, поэтому тут жизнь продлевается (проверял на clang 4.0) надо бы остальные компиляторы глянуть
The temporary object to which the reference is bound persists for the lifetime of the reference if the glvalue to which the reference is bound was obtained through one of the following: (6.1) — a temporary materialization conversion. 7.4 Temporary materialization conversion [conv.rval] A prvalue of type T can be converted to an xvalue of type T. This conversion initializes a temporary object (15.2) of type T from the prvalue by evaluating the prvalue with the temporary object as its result object, and produces an xvalue denoting the temporary object. В итоге static_cast<XXX&&>(XXX{}) создает temporary object из-за того что prvalue конвертится в xvalue. К этому temporary object биндится ссылка и его lifetime продлевается на время жизни ссылки.

Valentin
13.06.2018
15:17:41
Мини апдейт. проверил на вандбоксе- под Gcc не собирается. Проверил в вижаке на MSVC - собирается.

Google
Valentin
13.06.2018
15:17:46
Кто из них прав:?

Alex Фэils?︙
13.06.2018
15:19:00
А макрос как сам выглядит?

Valentin
13.06.2018
15:28:40
https://wandbox.org/permlink/icouutkZLIts4Gvj

Вопрос решился

#define AddCommand(string)\ { "AT+"#string, \ [](){ \ return makeReturn< AT_##string>(); \ } \ }спасибо @anatolijs

Matwey
13.06.2018
15:32:29
Кто управляет модемом в моем чати? >_>

<_<

Alex Фэils?︙
13.06.2018
15:39:07
Только строчки уехали

Dmitry
13.06.2018
15:48:59
У меня есть вопрос. Есть блютуз донгл и блютуз клавиатура. Нужно из сишной программы вычитывать нажатия кнопок. Из окружения линукс и libbluetooth. Кто может помочь разобраться как это сделать?

Alex Фэils?︙
13.06.2018
15:53:06
Надо копать в сторону Bluetooth HID-профилей

Страница 2131 из 2477