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

LTR34: циклическая генерация

Вы не вошли.

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

20.03.2016 20:22:14
#1

Участник
Откуда: Dubna
Здесь с 23.06.2015
Сообщений: 15

LTR34: циклическая генерация

Здравствуйте, уважаемые спецы!
Вопрос по модулю ЦАП LTR34: возможно ли организовать однократную генерацию сигналов (поциклово) ?
Поясню: загружаем в ЦАП массив значений для генерации. По внешнему сигналу СТАРТ ЦАП генерирует все значения, записанные в его ФИФО-буфер. А после последнего значения - ОСТАНАВЛИВАЕТСЯ и ждет прихода следующего внешнего сигнала СТАРТ.
Т.е. чтобы не программа командовала остановом генерации, а сам модуль останавливался на последнем значении из ФИФО-буфера ("опустошение буфера").
Если такой режим возможно реализовать, то был бы очень признателен за простой пример реализации (предпочтительно C#).
Заранее спасибо за Вашу помощь и поддержку пользователей!

20.03.2016 21:46:19
#2

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

Re: LTR34: циклическая генерация

Если я правильно понял, Вам нужно 1 раз загрузить сигнал в циклический буфер LTR34, а затем по сигналу СТАРТ на выходе LTR34 синхронно  воспроизвести 1 цикл из буфера LTR34 и перейти в ожидание следующего сигнала СТАРТ, после прихода которого 1 цикл воспроизвести повторно, и.т.д., пока программно не будет дан останов. 
- Это расширение штатных возможностей LTR34. Такой режим в текущей прошивке CPLD LTR34 и ПО не реализован, однако имеется техническая возможность такой функционал добавить в новую прошивку (обновление прошивки в "Л Кард") и в ПО. Если я правильно описал Вашу потребность, то для нас это конкретная работа с трудозатратами, которые можно оценить, и в рамках заказа эту работу можно было бы выполнить. Об организационной стороне вопроса обращайтесь к нашим менеджерам на support@lcard.ru .

21.03.2016 10:59:12
#3

Участник
Откуда: Dubna
Здесь с 23.06.2015
Сообщений: 15

Re: LTR34: циклическая генерация

Спасибо за разъяснения! Да, Вы все правильно поняли. Буду связываться с менеджерами.

30.03.2016 16:34:25
#4

Участник
Откуда: Dubna
Здесь с 23.06.2015
Сообщений: 15

Re: LTR34: циклическая генерация

Еще один вопрос по программированию (использую C#):
Если я буду использовать многопоточность в своем приложении, то можно ли в одном потоке произвести всю предварительную настройку работы LTR34 (уровни, внешний запуск, логические каналы, подготовку слов-данных для генерации и проч.), а в другом потоке только его "запустить" функцией
_hLTR34.Send(ArrayToSend, size, 5000)
Будет ли такая схема работать ?
Спасибо за Ваши разъяснения и терпение к пользователям ! !

30.03.2016 18:26:35
#5

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

Re: LTR34: циклическая генерация

Самое главное - это обеспечить, чтобы функции работы с одним и тем же модулем модулем не вызывались из разных потоков ОДНОВРЕМЕННО. Как у Вас описано, сперва установка в одном потоке, а только потом запуск другого потока - то все должно работать без проблем. Если же есть вероятность пересечения вызовов во времени, то нужно вызовы этих функций защищать мьютексами или чем-то подобным.

31.03.2016 10:17:03
#6

Участник
Откуда: Dubna
Здесь с 23.06.2015
Сообщений: 15

Re: LTR34: циклическая генерация

Спасибо! В дополнение к последнему вопросу: если я "убью" (завершу) поток, в котором я "запустил" ЦАП на генерацию (Send(ArrayToSend, size, 5000)), то для повторного его "запуска" во втором потоке требуется ли мне опять в основном потоке повторить все предварительные настройки, особенно включая заполнение буфера ЦАП словами-данными для генерации ?
Буду весьма признателен за Ваши разъяснения и комментарии !

31.03.2016 13:16:11
#7

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

Re: LTR34: циклическая генерация

Ну т.к. Вы работаете в потоковом режиме, то в общем каждый Send просто дописывает слова в очередь из которой выводятся на ЦАП. После вывода на ЦАП слово убирается из очереди (т.е. выводится только 1 раз), когда очередь пуста - остается последнее значение.  Т.е. если в новом потоке будет по сути продолжение вывода с теми же параметрами, то можно ничего с ЦАП не делать и писать сразу новые данные. Если нужно повторить сигнал, то его записать придется заново.

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

Контакты

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

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

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

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