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


LTR35/LTR34 C# Отправка в кодах

Вы не вошли.

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

Руслан
21.07.2026 22:33:46
#1

Гость

LTR35/LTR34 C# Отправка в кодах

Здравствуйте, у меня есть вопрос.
Я написал программу на C#. Моя программа читает данные из файла, переводит их в вольты и отправляет на ltr34 и ltr35 (они находятся в одном модуле). Всё работало нормально.
Но теперь мне не надо переводить в вольты, а просто отправить коды.
Для ltr35 сделал следующее:
ltr35api.PrepFlags flag = 0;
hltr35.LTR35_PrepareDacData(data35, size35, flag, words35, out size35);

А для ltr34 сделал следующее:
hltr34.ProcessData(data34, words34, size34, false);

Теперь ничего не выводится : ( Я сделал, что-то не так ?

22.07.2026 16:48:15
#2

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

Re: LTR35/LTR34 C# Отправка в кодах

Здравствуйте.
А как формируются массивы data35 и data34 изначально и как после перехода на вывод в кодах?

Руслан
23.07.2026 07:17:36
#3

Гость

Re: LTR35/LTR34 C# Отправка в кодах

у меня изначально data35  - двумерный массив. Почему-то здесь не могу написать квадратные скобки. Поэтому индексы буду писать в круглых ()
file - Бинарный файл. У меня есть разные файлы, в основном  они содержат сгенерированные sin с разной амплитудой. A = 500, A = 1000, A = 10000 и другие.

using(BinaryReader reader = new BinaryReader(file)) {
   while(currentByte < bytesInFile) {
    for(int ch = 0; ch < countChannels34; ch++){
    int value1 = reader.ReadByte(); int value2 = reader.ReadByte(); value = (value2 << 8) + value1;
    currentByte += 2;
    if( data34(count34 / size34) == null) { data34(count34 / size34) = new double(size34);}
    data(count34 / size34) (count34 % size34) = value;
    //
}
раньше я еще переводил в вольты и все работало data34(i)(j) = (maxVoltage / maxValueInFile) * data34(i)(j)

Сейчас всё, что я делаю:

Подгружаю данные, чтобы буфер не был пустым.
ltr35api.PrepFlags flag = 0;
for(int i = 0; i < 10; i++) {
hltr35.LTR35_PrepareDacData(data35(i), size35, flag, words35, out size35);
hltr34.ProcessData(data34(i), words34, size34, false);
hltr35.Send(words35, size35, 5000);
hltr34.Send(words34, size34, 5000);
}

Делаю тоже самое в цикле от 11 пока не закончатся массивы

24.07.2026 03:12:22
#4

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

Re: LTR35/LTR34 C# Отправка в кодах

Возможно какая-то проблема с масштабом, если значения слишком малы и сигнал не виден на уровне шумов. Что за значения maxVoltage и maxValueInFile и чему равны? При этом LTR34 16-битный ЦАП и коды в нем от -32768 до +32768, а LTR35 - 24-битный и коды соответствующие диапазону в нем -LTR35_DAC_SCALE_CODE_MAX и +LTR35_DAC_SCALE_CODE_MAX (6 291 456), т.е. сигналы с одним и тем же макс. кодом будут иметь многократно разные амплитуды на LTR34 и LTR35. Сигнал отсутствует на обоих?

Контакты

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

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

Письма и запросы: lcard@lcard.ru
Отдел продаж: sale@lcard.ru
Мы работаем с юридическими и физическими лицами, пожалуйста, прикладывайте реквизиты при оформлении заказа
Техническая поддержка: support@lcard.ru

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