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


Доступ к SYNC INPUT для LTR-U-1/LTR 114

Вы не вошли.

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

Владимир
16.09.2010 14:45:23
#1

Гость

Доступ к SYNC INPUT для LTR-U-1/LTR 114

Здравствуйте, у нас LTR-U-1/LTR 114, подключено через USB, пишем на Delphi. Возникла необходимость доступа к сигналам SYNC INPUT - собираемся читать
через него секундные пульсы, выдаваемые GPS-приемником для привязки ко времени.

Непонятно, как это сделать. После использования
LTR114_Recv(@hltr114, @buf, @tmark, hltr114.FrameLength, 1000); в массиве tmark лежат нули (GPS подключен, импульсы идут).

В описании библиотеки работы с крейтом написано, что процедура включение секундных меток работает только для LTR-EU. В дельфийском unit-е ltrapi.pas даже нет вызова процедуры LTR_StartSecondMark, хотя в самой DLL она есть. Я попробовал прописать ее в ltrapi.pas, она вызывается, возвращает 0, однако метки в tmark так и не появляются.

Как же мне добраться до SYNC INPUT//'а?

16.09.2010 19:20:11
#2

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

Re: Доступ к SYNC INPUT для LTR-U-1/LTR 114

Посмотрите библиотеку ltr021api

Владимир
17.09.2010 11:27:50
#3

Гость

Re: Доступ к SYNC INPUT для LTR-U-1/LTR 114

Посмотрел. Но не понял, зачем меня туда послали (((
И железо у меня не то, и процедуры в LTRAPI совсем другие...

17.09.2010 12:01:06
#4

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

Re: Доступ к SYNC INPUT для LTR-U-1/LTR 114

LTR021-это модуль контроллера крейта LTR-U-1. Sync Input - это вход меток синхронизации крейта LTR-U-1. Эти и другие сведения по архитектуры LTR есть в Руководстве пользователя. http://www.lcard.ru/download/ltr_hw.zip (п.4.3 и др.)

17.09.2010 13:10:19
#5

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

Re: Доступ к SYNC INPUT для LTR-U-1/LTR 114

Функции в ltrapi (LTR_Config, LTR_StartSecondMark и т.п.) действительно относятся только к LTR-EU. У LTR-U-1 специфические функции синхронизации, которые вынесены в отдельную библиотеку ltr021api, являющуюся надстройкой над ltrapi.

Владимир
17.09.2010 14:25:32
#6

Гость

Re: Доступ к SYNC INPUT для LTR-U-1/LTR 114

А можно ли где-нибудь прочитать об этих специфических функциях синхронизации? На диске, поставленном с устройствами, нашелся только файл ltr021.pdf, в котором ни слова о функциях этой бибилиотеки

21.09.2010 09:26:13
#7

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

Re: Доступ к SYNC INPUT для LTR-U-1/LTR 114

Действительно, использование внешней синхронизации для одноместного крейта нигде не описано, в будущем исправим.
Вам надо вызвать функцию LTR021_SetCrateSyncType() (см. файл ltr021api.pas) и задать в параметре SyncType требуемую настройку синхронизации (можно использовать константы из _LTR021_Sync_Type в том же файле).

Владимир
15.10.2010 11:27:44
#8

Гость

Re: Доступ к SYNC INPUT для LTR-U-1/LTR 114

Спасибо за ответ. Однако, должен ли я перед
вызовом LTR021_SetCrateSyncType() делать
LTR021_Init и LTR021_Open? Если да, каков смысл параметров функции :

LTR021_Open(module:pTLTR021; saddr:Cardinal; sport:word; csnCHAR:Pointer):integer;stdcall; ???

15.10.2010 13:54:04
#9

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

Re: Доступ к SYNC INPUT для LTR-U-1/LTR 114

Делать надо, чтобы открыть канал связи с крейт-контроллером.
Параметры как в LTR_Open().

Владимир
15.10.2010 14:35:18
#10

Гость

Re: Доступ к SYNC INPUT для LTR-U-1/LTR 114

Прошу пардона, но у этих процедур таки разные параметры:

Function LTR_Open(ltr:pTLTR):integer;  stdcall;

против

Function  LTR021_Open(module:pTLTR021; saddr:Cardinal; sport:word; csnCHAR:Pointer):integer;stdcall;

15.10.2010 15:28:45
#11

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

Re: Доступ к SYNC INPUT для LTR-U-1/LTR 114

Значения параметров такие же, как в LTR_Open для модулей, например, как в той же LTR114_Open, которую Вы уже использовали. Нет только номера слота. Ну и первый параметр - указатель на TLTR021 (а не TLTR114), который надо до этого проинициализировать с помощью LTR021_Init. В остальном все также.

Владимир
15.10.2010 15:52:21
#12

Гость

Re: Доступ к SYNC INPUT для LTR-U-1/LTR 114

Спасибо, понял

Владимир
17.10.2010 13:26:51
#13

Гость

Re: Доступ к SYNC INPUT для LTR-U-1/LTR 114

Все-таки что-то я, увы, недопонимаю. Решил проверить
с внутренними секундными метками (нет под рукой GPS). Сделал так:

LTR114_Init(@hltr114);
res:=LTR114_Open(@hltr114, SADDR_DEFAULT, SPORT_DEFAULT,ser_num_str ,CC_MODULE1);
res:=LTR114_GetConfig(@hltr114);
hltr114.LChQnt:=4;
hltr114.Interval:=0;
hltr114.FreqDivider:=2;
hltr114.SpecialFeatures:=0;
hltr114.SyncMode := LTR114_SYNCMODE_INTERNAL;

for i:=0 to hltr114.LChQnt-1 do
hltr114.LChTbl[i]:=LTR114_CreateLChannel(LTR114_MEASMODE_U, i+1, LTR114_URANGE_2);

res:=LTR114_SetADC(@hltr114);

res:=LTR021_Open(@module, SADDR_DEFAULT, SPORT_DEFAULT,ser_num_str);

res:=LTR021_SetCrateSyncType(@module, Ord(LTR021_INT_SEC));

LTR114_Start(@hltr114);
 
После чего вызываю в цикле
 
res:=LTR114_Recv(@hltr114, @buf, @tmark, hltr114.FrameLength, 1000);
 
ожидая, что tmark будет изменяться, однако, там находятся одни нули.  Пробовал также читать hltr114.channel.tmark, однако там тоже все время нуль. Что я делаю неправильно?

18.10.2010 11:25:41
#14

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

Re: Доступ к SYNC INPUT для LTR-U-1/LTR 114

1) Не вижу LTR021_Init() - он есть?
2) Что возвращают функции LTR021_...(), в особенности LTR021_SetCrateSyncType()?
3) В окне статистики ltrserver есть счетчики стартовых и секундных меток, пришедших от крейта. Там нули?
4) Какая версия прошивки ltr021?

18.10.2010 11:55:06
#15

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

Re: Доступ к SYNC INPUT для LTR-U-1/LTR 114

Пардон, но, судя по всему, в LTR021 просто нет внутренних синхрометок.
Две последних константы в паскалевской версии (LTR021_INT_START, LTR021_INT_SEC) в C-шном h-файле отсутствуют... возможно, в .pas осталась заготовка, которая потом не была реализована?
Кстати, о недопустимом значении SyncType должны сигнализировать ошибки LTR021 - Unknown Sync Source в логе ltrserver.

Попробуйте настроить метки по переднему или заднему фронту и подать какие-нибудь импульсы на разъем (+5V TTL, см. ltr.pdf п. 3.6.3.2)