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


LTR11 + .net

Вы не вошли.

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

Алексей
29.09.2010 09:59:16
#1

Гость

LTR11 + .net

Не нашел примера работы с платой под с#, по аналогии с примером на плюсах пишу так:


            _ltr11api hltr11 = new _ltr11api();
            _LTRNative nat = new _LTRNative();
            _LTRNative.LTRERROR stat;
            hltr11.Init();
            stat = hltr11.Open(hltr11.module.Channel.saddr, hltr11.module.Channel.sport, new char[16], 1);
            if (stat == _LTRNative.LTRERROR.OK)
            {
                stat = hltr11.GetConfig();
                WriteText("ini- "+stat.ToString());
                WriteText("name- " + new string(hltr11.module.ModuleInfo.Name));
                WriteText("serial- "+new string(hltr11.module.ModuleInfo.Serial));
                WriteText("versionPO- "+(hltr11.module.ModuleInfo.Ver));
            }
            hltr11.module.StartADCMode = (int)_LTRNative.StartADCMode.LTR11_STARTADCMODE_INT;
            hltr11.module.InpMode = (int) _LTRNative.InpMode.LTR11_INPMODE_INT;
            hltr11.module.LChQnt = 1;
            hltr11.module.LChTbl[0] = (0 << 6) | (0 << 4) | (4 << 0); ;


            hltr11.module.StartADCMode = (int)_LTRNative.ADCMode.LTR11_ADCMODE_ACQ;
            hltr11.module.ADCRate.prescaler = 1;
            hltr11.module.ADCRate.divider = 149;

            stat = hltr11.SetADC();
           

            uint[] rbuf = new uint[100];
            double[] rbuf2 = new double[100];
            stat = hltr11.Start();
            stat = (_LTRNative.LTRERROR) _LTRNative.LTR_Recv(ref hltr11.module.Channel, rbuf,null, 100, 500);
            stat = hltr11.Stop();
            uint BLOCK_SIZE = 10;
            stat = hltr11.ProcessData(rbuf, rbuf2, ref BLOCK_SIZE, true, true);

            hltr11.Close();

во время выполнения данного кода LTR_Recv в массив rbuf возвращает ноли, сколько не играй с настройками, хотя код написанный для платы LTR22, так же по примеру на C++ работает корректно.
так же корректно отрабатывают идущие в комплекте программы со всеми платами в том числе LTR11.

хотелось бы узнать что я делаю не так, либо увидеть пример на c#.

Заранее благодарен...

Алексей
30.09.2010 12:42:12
#2

Гость

Re: LTR11 + .net

извините, почему мой вопрос остается без внимания?

хочу добавить: информация о плате - например hltr11.module.ModuleInfo.Name отрабатывает нормально, LTR_Recv возвращает код ошибки "ОК", но данные в массив не поступают.

30.09.2010 15:58:31
#3

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

Re: LTR11 + .net

Извините, просто программист по LTR11 слег с гриппом, надеемся, что он выйдет на работу в понедельник.

Алексей
06.10.2010 08:38:50
#4

Гость

Re: LTR11 + .net

аналогичный вопрос по плате ltr22: данные приходят но отличные от реальных, возможно дело в подключении калибровочных коэффициентов, хотя команду hltr22.GetCalibrovka(); вызываю и считывание данных командой ProcessData(rbuf, rbuf2, 100, false, true, null); произвожу с подключением встроенной калибровки.

08.10.2010 14:57:37
#5

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

Re: LTR11 + .net

А откуда такая версия ltrnative.cs, что в ней константы типа _LTRNative.ADCMode.LTR11_ADCMODE_ACQ ?

Или Вы это сами добавляли?

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

Алексей
11.10.2010 08:13:02
#6

Гость

Re: LTR11 + .net

со всем разобрался, спасибо.