Меню

+7 (495) 785-95-25
sale@lcard.ru
sale@lcard.ru
Страницы 1
Тема закрыта
|
||||
|
Библиотека LTR под LinuxВобщем, возникла необходимость сделать библиотеку LTR под Линукс.
|
|||
|
||||
|
Re: Библиотека LTR под LinuxНасчет экспериментального значения ошибся. :-( |
|||
|
||||
|
Re: Библиотека LTR под LinuxИнтересно, каким образом Вы нашли порт 21 (вообще-то это ftp).
Естественно, файл пропущен по ошибке. Смею надеяться, что это единственный случай, просто предполагалось, что эта библиотека будет исключена и интегрирована в прорамму ltrserver (она больше нигде не используется), и возникла путаница. Заберите последнюю версию с http://www.lcard.ru/download/ltrserver1530_src.zip, пока не выложен полный комплект ltrserver+ltrapi. Там этот файл есть в src/ltrserver1530/api2 |
|||
|
||||
|
Re: Библиотека LTR под LinuxАлександр Е:
|
|||
|
||||
|
Re: Библиотека LTR под LinuxКрейт-контроллер не должен слушать 21й порт Алексей, Вы взялись за грандиозную и нужную задачу. Если дело пойдет, я думаю, что будет иметь смысл как-то взаимовыгодно скооперироваться. |
|||
|
||||
|
Re: Библиотека LTR под Linuxсм. также
|
|||
|
||||
|
Re: Библиотека LTR под LinuxСейчас я пока просто переношу код сервера на Линукс. А там еще буду думать, как сделать лучше - именно в виде сервера, как и под Windows, или все же в виде библиотеки типа lcomp. Второе предпочтительнее.
|
|||
|
||||
|
Re: Библиотека LTR под LinuxАлександр Е
|
|||
|
||||
|
Re: Библиотека LTR под LinuxВ потоке данных есть специфическое, прежде всего мультиплексирование между многими модулями и многими клиентами, а также некоторые особые случаи - это фунцкии TCrate::PrepareDataForCrate() и TCrate::ParseDataFromCrate(). Есть пусть упрощения: если к одному крейту одновременно может подсоединяться только одно приложение, то понятие "клиент" исчезает, и отдельная программа-сервер не нужна, но все равно надо мультиплексировать модули (приложение должно иметь возможность, скажем, читать два разных АЦП и писать в ЦАП в произвольном порядке, внутри одного крейта).
Ну и на верхнем уровне есть еще команды самих модулей, т.е. потом придется также реализовывать функциональность ltr11api, ltr212api и т.д. (это как раз просто, надстройка поверх ltrapi). |
|||
|
||||
|
Re: Библиотека LTR под LinuxСпасибо за информацию!
|
|||
|
||||
|
Re: Библиотека LTR под LinuxЧто, спортировали все, кроме GUI, вместе с потоками, арбитражом и event//'ами? Неслабо. Что посылают - это смотрите исходники ltrXXXapi. Эти библиотеки опираются на LTR_Recv() и LTR_Send(), т.е. работают с демультиплексированным потоком отдельного модуля и реализуют уже специфичный для типа модуля протокол.
P.S. А кстати, любопытства ради, Вы не пробовали запускать ltrserver под wine? |
|||
|
||||
|
Re: Библиотека LTR под LinuxДа - без интерфейса и клиентского модуля.
|
|||
|
||||
|
Re: Библиотека LTR под LinuxМного уважения программисту, который сервер писал. Сильная штука - по возможностям и реализации.
|
|||
|
||||
|
Re: Библиотека LTR под LinuxСпасибо Управляющие команды - имеется в виду подключение/отключение IP крейтов и т.д. (канал CC_CONTROL)? Он не зависит от числа клиентов - просто команды либо нужны, либо нет. Получить список модулей или подключить крейт по IP может понадобиться и одному клиенту.
Мы одинаково мыслим? По идее, если клиент один, убирается две вещи. Во-первых, естественно, потоки и сокеты клиентов (ltrclient.cpp), ltrserviceclients.cpp и необходимость синхронизации между клиентами (но не между клиентом и крейтом). ClientGet() и ClientPut() от модуля можно прямо отдавать на верхний уровень. Как-то надо выбирать модули. Например, добавить функцию выбора канала и запоминать глобально, или же прямо в LTR_Recv() и LTR_Send() внести номер слота как параметр. Во-вторых, есть экзотическая фича, чтобы к одному модулю могло подключиться несколько клиентов, и данные отдавались каждому. Именно поэтому буфер принятых данных сделан не обычный кольцевой, а странный TCrateModule::bufrec_t с запоминанием, сколько кто забрал слов. Если клиент один, то можно это упростить при желании. LTR_GetCrateRawData() не нужна. Говорят, когда-то кому-то понадобилась для экзотических целей. Отдает поток чтения с крейта, не разобранный по модулям (копируется в виртуальный "слот 17").
|
|||
|
||||
|
Re: Библиотека LTR под LinuxМыслим одинаково. :-)
|
|||
|
||||
|
Re: Библиотека LTR под LinuxА вот вопрос:
|
|||
|
||||
|
Re: Библиотека LTR под LinuxВсе - вроде разобрался и работает. |
Страницы 1
Тема закрыта