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


C#, E14-440, как завернуть IoАsync

Вы не вошли.

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

Ярослав
10.04.2012 16:39:18
#1

Гость

C#, E14-440, как завернуть IoАsync

Нашел на форуме пример на С# как прочитать серийный номер платы.
Теперь, чтобы считать данные с АЦП в асинхронном режиме, надо перевести такой код с С++ на С#:
this->pp.s_Type = L_ASYNC_ADC_INP;
pp.Chn[0] = channel;    //№канала АЦП
pI->IoAsync(&pp);
return (SHORT)pp.Data[0];
Для этого нужно написать враппер для IoАSync.
Подскажите, пожалуйста, как это сделать?

У меня не получилось так:
unsafe public struct W_ASYNC_PARAM_
{
        public uint FIFO;
        public uint IrqStep;
        public uint Pages;
        public double dRate;
        public uint Rate;
        public uint NCh;
        public uint[] Chn;
        public int[] Data;
        public uint Mode;
     }

[DllImport("wlcomp.dll")]
public static extern unsafe uint IoAsync(uint* hObj, ASYNC_PAR sp);

ASYNC_PAR pp;
Err = IoAsync(&hObj, pp);
Сonsole.WriteLine(pp.Data);

Ярослав
13.04.2012 10:23:11
#2

Гость

Re: C#, E14-440, как завернуть IoАsync

Написал клиент-серверное приложение.
Сервер работает с этой платой и написан на native C++.
Клиент на C#.
Ваша техническая поддержка стимулирует развитие креативности

13.04.2012 10:35:39
#3

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: C#, E14-440, как завернуть IoАsync

У нас C# не пользуются. Поэтому сказать особо нечего. Креативность полезна...

Ярослав
16.04.2012 09:55:41
#4

Гость

Re: C#, E14-440, как завернуть IoАsync

Poul, вы сотрудник Л-Кард?
Я думаю Л-Кард делает всякие приборы типа Е14-440 не для себя, а продает клиентам. Среди таких есть те, кто использует С#.

16.04.2012 10:54:16
#5

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: C#, E14-440, как завернуть IoАsync

Есть и паскалисты, любители явы и питона или Lua итд итп, есть еще и те кто на QNX или FreeBSD работает и много кто еще.... увы - я все знать не могу... sad

17.04.2012 18:36:41
#6

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

Re: C#, E14-440, как завернуть IoАsync

В сущности это общий вопрос по C# (наверное, один из наиболее часто возникающих) - как импортировать и вызывать функции из unmanaged DLL.

Так что, наверное, лучше обратиться на родину C#:
http://msdn.microsoft.com/en-us/library … 71%29.aspx

А также поиск <<Import DLL into C#>>:
http://www.google.com/search?q=import+dll+into+c%23
-- вернул About 2,420,000 results

Ярослав
20.04.2012 12:26:44
#7

Гость

Re: C#, E14-440, как завернуть IoАsync

Александр Е, я про это и говорю!
Если на такой запрос "About 2,420,000 results",
то можно добавить готовый пример в документацию по L-Card.
Не пример для brainfuck прошу же.

Алексей
20.04.2012 14:47:40
#8

Гость

Re: C#, E14-440, как завернуть IoАsync

Ну про lcomp ничего не знаю, но если приведете  описание нужных структур и функций на C, то могу теоретически предложить как это будет выглядеть на C#

20.04.2012 15:03:40
#9

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

Re: C#, E14-440, как завернуть IoАsync

Ярослав, ну извините нас, пожалуйста, что нет у нас пока готового интерфейса для импорта lcomp в C#.
Поскольку обычно пользуются только несколькими структурами и функциями, проще вставить прямо в свою программу нужные описания.
Я не знаток C#, но если правильно понимаю, то эта задача типовая и, наверное, большинству разработчиков программ на C# приходится достаточно часто вызывать native DLL через эти InteropServices.

Если нужна помощь - укажите, что надо импортировать, набросаем.

Контакты

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

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

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

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