Российский производитель и разработчик сертифицированного измерительного оборудования с 1987 года

создание ПО под LTR-EU в Delphi 7

Вы не вошли.

 Поиск | Регистрация | Вход 

Олег
05.05.2013 17:13:38
#1

Гость

создание ПО под LTR-EU в Delphi 7

Здравствуйте!

Можно ли как ни будь на ПК эмулировать подключение к нему крейтовой систему LTR-EU-8-1?

05.05.2013 18:08:59
#2

Инженер-электронщик
Откуда: "Л Кард"
Здесь с 21.04.2014
Сообщений: 4,597

Re: создание ПО под LTR-EU в Delphi 7

Олег, подобные средства эмуляции  не разрабатывались для LTR. Но с крейтами  LTR-EU можно работать и удалённо по Ethernet, либо отлаживать ПО на малых крейтах (LTR-EU-2-5 или LTR-U-1-4) c целью последующего перехода на LTR-EU-8/16.

Олег
06.05.2013 08:40:59
#3

Гость

Re: создание ПО под LTR-EU в Delphi 7

Попытался повторить пример http://www.lcard.ru/download/examples/l … elphi7.zip

Но у меня получается следующая неприятность: при получении ИМЕНИКОМПАНИИ вместо "L-CARD Inc" у меня получается "RD Inc", соответсвенно далее код работает некорректно.
В чем может быть причина???

06.05.2013 13:53:19
#4

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,292

Re: создание ПО под LTR-EU в Delphi 7

Это может быть из-за неверно установленного выравнивания полей структур. Если используете Delphi 7, то нужно зайти в Project->Options->Compiler и установить в Record Field Aligment значение 4

Олег
07.05.2013 07:20:31
#5

Гость

Re: создание ПО под LTR-EU в Delphi 7

Record Field Aligment я сразу ставил равным 4-м как и в примере, но код всеравно работает некорректно.

http://files.mail.ru/A4EB0C6914A344A19C4A8FB6AB697F18 это ссылка на мое творение, если есть у Вас 5 минут посмотрите где может быть ошибка

07.05.2013 10:31:58
#6

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,292

Re: создание ПО под LTR-EU в Delphi 7

У Вас похоже просто остались результаты сборки с Record Field Aligment = 8. Когда я сделал в Вашем проекте Project->Build All Projects, то по крайней мере вывод названия компании стал верным

Олег
07.05.2013 12:44:35
#7

Гость

Re: создание ПО под LTR-EU в Delphi 7

Спасибо за квалифицированную помощь, заработало!

07.05.2013 13:06:29
#8

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,292

Re: создание ПО под LTR-EU в Delphi 7

Не за что. Если что - обращайтесь!

Олег
20.06.2013 16:55:25
#9

Гость

Re: создание ПО под LTR-EU в Delphi 7

Здравствуйте еще раз.
Подскажите пожалуйста почему не работает Ваш пример ПО для LTR-51 по адресу: http://www.lcard.ru/download/examples/l … elphi7.zip
?
Программа зависает на стадии открытия модуля
err:=LTR51_Open(@module, module.Channel.saddr, module.Channel.sport, @module.Channel.csn, SlotNum,/'ltr51.ttf/');
Спасибо за внимание.

20.06.2013 19:09:13
#10

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,292

Re: создание ПО под LTR-EU в Delphi 7

Здравствуйте.

Это несколько странно, так как у меня пример работает. Следует убедиться, что запущен LTRServer и что крейт и модуль сервером видится, ну и что модуль в том слоте, который указывается в SlotNum.

Если все подключено, то можно в LTR-Server посмотреть статистику переданных и принятых слов для заданного модуля (отображается при выборе конкретного модуля) и как она меняется при вызове LTR51_Open().

И правильно ли я понимаю, что на этом же компе работа с LTR27, про который Вы до этого спрашивали, идет нормально?

Олег
24.06.2013 08:21:15
#11

Гость

Re: создание ПО под LTR-EU в Delphi 7

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

Serg
18.12.2013 20:25:55
#12

Гость

Re: создание ПО под LTR-EU в Delphi 7

Здравствуйте.
Скажите пожалуйста, есть ли у вас пример работы с крейтом LTR27 (установлен в LTR-U-1-4) напрямую, без использования сервера и длл?

19.12.2013 07:58:35
#13

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,292

Re: создание ПО под LTR-EU в Delphi 7

Здравствуйте. Нет, это не является штатным вариантом работы. А для чего Вам это необходимо?

Если все же хотите, то это не очень простая, но выполнимая задача. Вам нужно будет смотреть исходники LtrServer (http://www.lcard.ru/download/ltrserver_src_1543.zip) и/или ltrd (https://bitbucket.org/lcard/ltr_cross_sdk/downloads/ltr_cross_sdk_src.zip) и соответственно ltr27api. Очень краткое описание протокола (скорее заметки на память) есть тут  https://bitbucket.org/lcard/ltrd/raw/d5ec04d0dfd289ed12b3633f05e4a346863589e2/docs/eth_protocol.pdf.

P.S.: крейт это LTR-U-1-4, а LTR27 - модуль

Serg
19.12.2013 22:58:21
#14

Гость

Re: создание ПО под LTR-EU в Delphi 7

Спасибо за ответ и ссылки. Скачал, буду изучать.
В общем то большую часть функций я освоил, но есть непонятные места. Возможно это из за того, что исходники библиотек разных верий.
А для чего необходимо? Планируется использовать некоторое количество однотипных крейтов. Сервер не очень удобен в работе. При таком раскладе имеет смысл иметь одиночную длл, или вообще обойтись одним ехе.

20.12.2013 07:13:26
#15

Инженер-электронщик
Откуда: "Л Кард"
Здесь с 21.04.2014
Сообщений: 4,597

Re: создание ПО под LTR-EU в Delphi 7

Serg, конфигурация LTR-U-1-4 + LTR27 относительно не сложная, и вполне можно создать ПО без сервера. Но сервер скрывает аппаратные особенности крейтов LTR, делая ПО совместимым для любого крейта LTR, в том числе для будущих типов крейтов (LTR развивается). Если озаботиться вопросом совместимости ПО для любого крейта LTR, то от LTR-сервера избавляться не следует.

20.12.2013 07:51:00
#16

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,292

Re: создание ПО под LTR-EU в Delphi 7

А можно поподробнее насчет "Сервер не очень удобен в работе". Чем именно сейчас это не удобно?

Serg
20.12.2013 22:40:38
#17

Гость

Re: создание ПО под LTR-EU в Delphi 7

Конфиг LTR-U-1-4 + LTR27 не может быть сложным, но из-за того, что все завязано на сервер, все же задачка не тривиальная. Инфа разбросана по куче длл и серверу. Ее вроде много, но всё запутано. smile
На счет сервера. Идея удобная для вас, удобная для меня - написал 10 строк и уже принимаешь данные, возможно удобная, если используется большая система сбора и обработки данных. Но для автоматизации небольших простых тех прцессов на 3-5-8 параметров, а таких не мало, выглядит диковато. Трудно объяснить заказчику, что для того чтоб работала простенькая прога, он должен поставить еще сервер и кучу длл. Должен не забывать запускать сервер, а при сбоях еще и лог сервера смотреть. А "он" или особенно "она" даже слово крейт никогда не слышал(а). smile
Для крейтов типа LTR-U-1-4 должно быть что то попроще, учитывая их специфику. Вот и изобретаю велосипед.
Заодно вопрос. У вас в Ltr021.pdf описывается работа с прогой LTR21.exe, а самой проги нигде нет. Ее чем то заменили? Какова ее судьба?

23.12.2013 10:52:54
#18

Сотрудник "Л Кард"
Здесь с 18.04.2014
Сообщений: 810

Re: создание ПО под LTR-EU в Delphi 7

>Трудно объяснить заказчику, что для того чтоб работала простенькая прога, он должен поставить еще сервер и кучу длл.

Ну это можно запихнуть внутрь инсталлятора простенькой проги

> Должен не забывать запускать сервер,

А последние версии сервера можно запускать как системную службу (через srvany)

> а при сбоях еще и лог сервера смотреть.

Лог тоже в принципе можно читать своей программой или сделать на него ярлык.

С точки зрения трудозатрат (но не элегантности решения) я бы, наверное, сказал, что проще всего сделать инсталляционный скрипт, который будет ставить штатный софт и настраивать нужную конфигурацию.

Но если Вы решите все-таки переписывать, то посмотрите проект ltrd, который cross-sdk. Он более свежий и перспективный, не такой многопоточный, как ltrserver, и, я думаю, понятнее и логичнее при чтении.

23.12.2013 12:37:59
#19

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,292

Re: создание ПО под LTR-EU в Delphi 7

Правда ltrd сейчас поддерживает USB только в Linux, так что там можно посмотреть только общую логику. Хотя если на праздниках будет время, может и займусь и этим. Зато он изначально работает как сервис...

По поводу программы LTR21, то это скорее сервисная программа, нужна пользователю вроде только для обновления прошивки. При необходимости, можем выслать, другой вопрос что не уверен, что она будет очень полезна.

Если будут вопросы по взаимодействию с крейтом - то пишите.

23.12.2013 13:01:49
#20

Сотрудник "Л Кард"
Здесь с 18.04.2014
Сообщений: 810

Re: создание ПО под LTR-EU в Delphi 7

Да, ltr21 - сервисная программа, прошивку прошивать, и ею можно при определенном невезении привести LTR-U-1 в состояние, из которого восстанавливать надо везти в ремонт. А менять прошивку крейта, я думаю, Вам вряд ли понадобится.
Как и USB драйвер.

Задача, которую Вы описали, это замена ltrserver + ltr*.dll на упрощенную собственную библиотеку под конкретную конфигурацию (один крейт, один модуль); эту библиотеку можно реализовать просто как набор функций, статически линкуемых к программе, т.е. получится программа, обращающаяся прямо к драйверу устройства.

Задача решаемая. Но утомительная. Надо прочитать исходные тексты, подробно разобрать логику программы, потом сократить ненужное (всякие там клиент-сервер сокеты, многокрейтовость, многомодульность и прочее) и не потерять при этом нужное.
Получится красиво и компактно. Но нерасширяемо (а ну как захочется заменить LTR-U-1/USB на LTR-EU-2/Ethernet?...)

Serg
23.12.2013 19:57:03
#21

Гость

Re: создание ПО под LTR-EU в Delphi 7

Задачку почти решил. Осталось пол функции докурить. Пошел по пути модификации кода исходника LTR27api. Остальное оказалось как бы и не к чему. Пока прикрутил в качестве юнита, потом перепишу в длл, если не лениво будет. Т.е. получится длл совместимая по экспорту с вашей, но общающаяся напрямую с драйвером.
Для LTR-U-1-4 + LTRхх - это самое то. Жаль что у вас нет готовых библиотек. Хотя, если LTR-U-1-4 не очень ходовой девайс, то конечно смысла в этом не много.
Програма LTR21.exe больше интересует как пример прямого доступа. Ничего перепрошивать я не собираюсь. Если пришлете на мыло, не помешает.
Инсталяторы, скрипты, сервисы - это просто грубая маскировка, да и не снимает она всех вопросов.

24.12.2013 10:36:45
#22

Сотрудник "Л Кард"
Здесь с 18.04.2014
Сообщений: 810

Re: создание ПО под LTR-EU в Delphi 7

>Програма LTR21.exe больше интересует как пример прямого доступа
Исходники от нее еще надо найти в архивах, к тому же она на C#. Бинарник, как я понимаю, тут бесполезен.
А Вы возьмите лучше тогда знаете что? Тестик, который я писал для проверки стабильности работы USB. Вот
ftp://ftp.lcard.ru/pub/ltr/ltr021_ioctl_test.zip
Там как раз реализован IOCTL (запросы через control pipe) - GetArray, GetModuleName.
А bulk - это просто ReadFile/WriteFile блоками, кратными 64 байтам (?), в режиме OVERLAPPED.

Респект, что так быстро удалось разобраться.

Serg
24.12.2013 15:48:02
#23

Гость

Re: создание ПО под LTR-EU в Delphi 7

Спасибо. Тестик я скомпилил первым. Потом собрал ltrapi_ll. Сейчас добиваю ltr27api. Осталась математика с коэффициентами. По ходу перевожу на делфи. wink
От LTR21.exe меня интересовал сам ехе. Но, уже наверное и не нужно.

Serg
05.02.2014 23:08:59
#24

Гость

Re: создание ПО под LTR-EU в Delphi 7

Здравствуйте.
Сори, что немного не в тему.
За три месяца эксплуатации 4-х крейтов LTR-U-1-4 с модулями LTR27 проявилось несколько нюансов:
1. Если запустить крейт и сразу начать работать, то частенько крейт перестает отвечать. Помогает только передергивание USB. Один же из 4 крейтов стабильно вываливается в первую минуту, две. Потом все утаканивается.
Такое впечатление, что он "прогревается". Не понятно чему там прогреваться, но факт. Мне сказали, что его возили к вам, но ваши специ ничего не обнаружили и порекомендовали обновить софт. Замена софта на последние версии ничего не изменила. http://files.mail.ru/A320B33CF386429B89CA6406175E4DDF
2. При работе тоже иногда крейт перестает отвечать, но это бывает редко - раз в несколько дней. Лечится тоже только передергиванием USB.
3. По логу сервера FPGA вычитывается не стабильно. Когда FPGA не прочитался, через раз LTR_Init возвращает ошибку. Ну, это так, на всякий случай. FPGA тут особо не нужно.

Переход на вариант без сервера (используется только ваш драйвер) ничего не изменил.
Удалось (условно) проследить механизм вылетов.
Сначала драйвер перестает отвечать на запросы на чтение данных. Поток у меня завершается и перезапускается.
При этом, (если USB не передергивалось) FPGA уже стабильно не читается, а дальше бывает 3 варианта:
1. IOCT, следующий за чтением FPGA вызывает ошибку доступа,
2. Write на запрос слотов (1В1В, 1515) возвращает ошибку,
3. Read на запрос слотов возвращает ошибку.
Каждый перезапуск данная ошибка стабильно повторяется. Т.е. на чем застряли, на той ошибке дальше и вылетаем.
То ли драйвер подвисает, то ли сам крейт клинит. Как это побороть не знаю.
Игра с приоритетом, таймаутами чтения/записи, размером буфера чтения, программным ресетом USB ничего не дала.

06.02.2014 06:58:03
#25

Инженер-электронщик
Откуда: "Л Кард"
Здесь с 21.04.2014
Сообщений: 4,597

Re: создание ПО под LTR-EU в Delphi 7

В конфигурации LTR27+LTR-U-1-4 действительно  обнаруживается схожая проблема. Этим вопросом займёмся в ближайшее время, о решении сообщим.
Сообщите, пожалуйста, серийные номера LTR-U-1-4 и LTR27 (они читаются программно).

Контакты

Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4, стр. 2

Многоканальный телефон:
+7 (495) 785-95-25

Отдел продаж: sale@lcard.ru
Техническая поддержка: support@lcard.ru

Время работы: с 9-00 до 19-00 мск