|
libusb и асинхронные операции |
|
|
|
Jun 6 2009, 11:51
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Такой вопрос. Как я понимаю, для булок в либусб есть только вот это:
int usb_bulk_read(usb_dev_handle *dev, int ep, char *bytes, int size, int timeout);
А я хочу сделать большой и длинный write, и в параллель ему пустить большой и длинный read (на каждые два полученных слов девайс отдает одно обратно). И что делать? Вижу два выхода. Первый - в одном треде дать write, в другом read. А как оно, жить-то будет? либусб нормально мультитредность переносит? Второй... Пока не вижу... Есть ли в либусб асинхронные операции ? И какие есть альтернативы либусб вообще?
|
|
|
|
|
 |
Ответов
|
Jun 8 2009, 10:01
|

Местами Гуру
    
Группа: Validating
Сообщений: 1 103
Регистрация: 5-12-04
Пользователь №: 1 323

|
Так можно - главное чтобы libtclxds.so не содержала в себе libusb ни в каком виде, токмо как в dynamic linked, неважно через какие промежуточные либы. А то что Freeware или ХренWare - если недоступны исходники, то уже нарушаем LGPL.
А гембель в том, что никто модуль этот собирать сам не будет, по причине того что binutils/gcc/kernel headers мало у кого стоит - и придется или как у Nvidi'и иметь херову тучу уже собранных или писать инсталлятор. тут наступаем на новые грабли, так как у юзеров N^N вариантов конфигурирования ядра, X^Y вариантов binutils/gcc - будут присылать неудачные логи, придется их разгребать и решать одни и те же вопросы, которые давно описаны в факе, который, в свою очередь никто не читает ... и все это на расплодившемся множестве дистров ... вобщем волосы дыбом на одном месте обеспечены.
То ли дело бинарная libusb - кинул и забыл
|
|
|
|
|
Jun 9 2009, 08:25
|
Участник

Группа: Новичок
Сообщений: 17
Регистрация: 27-09-05
Пользователь №: 8 995

|
Цитата(Harbour @ Jun 8 2009, 14:01)  А гембель в том, что никто модуль этот собирать сам не будет, по причине того что binutils/gcc/kernel headers мало у кого стоит - и придется или как у Nvidi'и иметь херову тучу уже собранных или писать инсталлятор. тут наступаем на новые грабли, так как у юзеров N^N вариантов конфигурирования ядра, X^Y вариантов binutils/gcc - будут присылать неудачные логи, придется их разгребать и решать одни и те же вопросы, которые давно описаны в факе, который, в свою очередь никто не читает ... и все это на расплодившемся множестве дистров ... вобщем волосы дыбом на одном месте обеспечены.
То ли дело бинарная libusb - кинул и забыл Если дело касается "крутых" убунтоидов, то возможно headers нет, а так Nvidia со своего сайта выдает sh-скрипт в котором и открытые исходники и уже собранные. Главное прописать зависимости. Ну и для каждой версии ядра придется проверять. И поэтому,на мой взгляд, если в твоей закрытой проге супер навороченные функции, то лучше модуль. Ну, а если тебя устраивают libusb-функции, то лучше libusb. Статически слинкованный тоже обращается в конечном итоге к ядру, поэтому уж лучше модуль.
|
|
|
|
|
Jun 9 2009, 08:44
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(al333 @ Jun 9 2009, 12:25)  И поэтому,на мой взгляд, если в твоей закрытой проге супер навороченные функции, то лучше модуль. У меня оказывается все еще хуже. А именно вот что (вырезка из лицензии на то, что есть в модуле) You shall maintain the source code portions of the Licensed Materials under password control protection at a secure location and shall not disclose such source code portions of the Licensed Materials, or any portion or derivative thereof, to any third parties. You shall not (i) incorporate, combine, or distribute the Licensed Materials, or any derivative thereof, with any Public Software, or (ii) use Public Software in the development of any derivatives of the Licensed Materials, each in such a way that would cause the Licensed Materials, or any derivative thereof, to be subject to all or part of the license obligations or other intellectual property related terms with respect to such Public Software, including but not limited to, the obligations that the Licensed Materials, or any derivative thereof, incorporated into, combined, or distributed with such Public Software (x) be disclosed or distributed in source code form, be licensed for the purpose of making derivatives of such software, or be redistributed free of charge, contrary to the terms and conditions of this Agreement, or (y) be otherwise used or distributed in a manner contrary to the terms and conditions of this Agreement. As used in this Section 1©, ”Public Software” means any software that contains, or is derived in whole or in part from, any software distributed as open source software, including but not limited to software licensed under the following or similar models: (A) GNU’s General Public License (GPL) or Lesser/Library GPL (LGPL), ( the Artistic License (e.g., PERL), © the Mozilla Public License, (D) the Netscape Public License, (E) the Sun Community Source License (SCSL), (F) the Sun Industry Standards Source License (SISL), (G) the Apache Server license, (H) QT Free Edition License, (I) IBM Public License, and (J) BitKeeper.Т.е. жестоко запрещено любое приближение к public software, которое тянет за собой какие-то лицензионные требования, противоречащие этой лицензии. Т.е. придется делать лицензию на мой модуль в соответствии именно с этой лицензией, из которой выдержка. А там из серии "только на одном компе, только одна бэкап-копия, только для использования в целях отладки и программирования определенных процессоров, и т.п.". Бред, конечно, для фриварной программы, которую можно свободно скачать с сайта производителя, но... Что поделать... Касаемо Tcl - там в TCL-лицензии вроде как вообще ограничений нет, типа копирайты не трогай, и делай что хочешь. Таким образом, распространяя TCL рядом с этим модулем хоть под такой аццкой лицензией, хоть под родной, я ничего вроде не нарушаю, так как TCL на меня вообще ничего не налагает, а вот LGPL - это уже другой вопрос, особенно с учетом того, что я не лучшим образом понимаю юридические тонкости англоязычных документов. Блин, офтопик сплошной получитлся... Выделить бы как это в "вопросы лицензирования". И не ясно в какой раздел...
|
|
|
|
Сообщений в этой теме
SM libusb и асинхронные операции Jun 6 2009, 11:51 Harbour async режим поддерживается в libusb-1.x, как уже б... Jun 7 2009, 07:50 SM А вот такой вопрос - ее лучше статически прилинков... Jun 7 2009, 08:59 Harbour До спины как ее линковать, если не стоит вопрос с ... Jun 7 2009, 10:50 SM Цитата(Harbour @ Jun 7 2009, 14:50) До сп... Jun 7 2009, 12:01  al333 Цитата(SM @ Jun 7 2009, 16:01) Где скачат... Jun 7 2009, 20:03   SM Цитата(al333 @ Jun 8 2009, 00:03) 3. lgpl... Jun 7 2009, 21:04 Harbour Гы , не конает - коммерческая программа, не должна... Jun 8 2009, 09:34 SM Цитата(Harbour @ Jun 8 2009, 13:34) Гы , ... Jun 8 2009, 09:41 SM Цитата(Harbour @ Jun 8 2009, 14:01) То ли... Jun 8 2009, 10:12 Harbour процент разрабов всегда сурьезно меньше чем юзеров... Jun 8 2009, 19:35 Harbour следовало бы с работодателем эти вопросы оговорить... Jun 10 2009, 05:57 SM Цитата(Harbour @ Jun 10 2009, 09:57) след... Jun 10 2009, 07:09 Harbour Дык, если сам себе босс - то нафига канитель ? GPL... Jun 11 2009, 06:14 SM Цитата(Harbour @ Jun 11 2009, 10:14) Дык,... Jun 11 2009, 06:42
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|