Цитата Сообщение от iKarma Посмотреть сообщение
Переписал код дллимпорта как вы сказали. Пришлось чуть-чуть и подредактировать код основной функции так:

Код:
            double result;
            float value = 0;

            result = NativeMethods.OpenPort(2, 8, 0, 1, 0, 1);
            Console.WriteLine(result);

            result = NativeMethods.ReadFloat24(32, 0, "PV", ref value, 0);
            Console.WriteLine(result);
            Console.WriteLine(value);

            result = NativeMethods.ClosePort();
            Console.WriteLine(result);

            Console.ReadLine();
Но всё равно не работает, код ошибки - NaN, т.е. я даже не знаю, что за ошибка. Есть идеи?
У вас одно устройство подключено к ком порту или несколько? Мне кажется у вас не верные параметры при вызове фунцций.
OpenPort(int n, int speed, int part, int bits, int stop, int vid);
n - номер ком порта COM1 - 0 COM2 -1 и так далие
speed - скорость порта. обычно 115200
part - четность. если не ошибаюсь 0
bits - 8
stop - 1
vid - не помню

ReadFloat24(int adr, int adr_type, [MarshalAs(UnmanagedType.BStr)] string command,[In] [Out] ref float value, int index);

adr - адрес устройства в сети обычно 0
index = -1

Вы уверены в используемых параметрах? для устройств овен есть програмулина для настройки скачайте и попробуйте ей подключится что проверить что связь есть.