smizrakhy
08.12.2010, 13:39
Добрый День!
Использую Библиотеку owen_io.dll и подключаю ее в свой проект в среде
c++ builder. Необходимо получить Текущее значение счетчика СИ 30 в физических единицах.
При статическом подключении owen_io.h и компиляции проекта была выведена следующая ошибка:
[Linker Error] [...]\owen_io.LIB contains invalid OMF record, type 0x21 (possibly COFF).
Google дал ответ в виде: The library is of the wrong type. Use coff2omf.exe, located in CBuilder/bin, to convert it to the correct type. После конвертирования вышеуказанного LIB файла проект скомпилировался и начал работать.
Текущее значение счетчика получаю без проблем но только для беззнаковых целых чисел:
ReadUInt(16,ADRTYPE_8BIT,"Ctr",pulses, -1);
А его значение в физических единицах в виде числа с плавающей запятой
никак вытащить не удается. Пробовал все три функции из библиотеки owen_io следующим образом:
1) res = ReadFloat24(16, ADRTYPE_8BIT, "CEU", angle, -1);
функция выполняется успешно, но постоянно выдает очень маленькое число в экспоненциальном виде -45 степени
2) res = ReadStoredDotS(16, ADRTYPE_8BIT, "CEU", angle, -1);
функция выполняется успешно, но постоянно выдает 0
3) res = ReadIEEE32(16, ADRTYPE_8BIT, "CEU", 60,angle, -1);
функция выполняется успешно, но постоянно выдает число такое же как в пункте 1.
Попробовал использовать функцию, которая считывает знаковое целое число
- ReadSInt(16,ADRTYPE_8BIT,"Ctr",pulses, -1);
функция выполняется успешно, но возвращается нуль, странная реакция - только одна из перечисленных функций - ReadUInt дает правильное значение, но оно к сожалению не отображает знак важный для использования энкодера, когда он вращается в обратную сторону.
Подскажите Пожалуйста, Как решить проблему? Заранее Благодарен.
Использую Библиотеку owen_io.dll и подключаю ее в свой проект в среде
c++ builder. Необходимо получить Текущее значение счетчика СИ 30 в физических единицах.
При статическом подключении owen_io.h и компиляции проекта была выведена следующая ошибка:
[Linker Error] [...]\owen_io.LIB contains invalid OMF record, type 0x21 (possibly COFF).
Google дал ответ в виде: The library is of the wrong type. Use coff2omf.exe, located in CBuilder/bin, to convert it to the correct type. После конвертирования вышеуказанного LIB файла проект скомпилировался и начал работать.
Текущее значение счетчика получаю без проблем но только для беззнаковых целых чисел:
ReadUInt(16,ADRTYPE_8BIT,"Ctr",pulses, -1);
А его значение в физических единицах в виде числа с плавающей запятой
никак вытащить не удается. Пробовал все три функции из библиотеки owen_io следующим образом:
1) res = ReadFloat24(16, ADRTYPE_8BIT, "CEU", angle, -1);
функция выполняется успешно, но постоянно выдает очень маленькое число в экспоненциальном виде -45 степени
2) res = ReadStoredDotS(16, ADRTYPE_8BIT, "CEU", angle, -1);
функция выполняется успешно, но постоянно выдает 0
3) res = ReadIEEE32(16, ADRTYPE_8BIT, "CEU", 60,angle, -1);
функция выполняется успешно, но постоянно выдает число такое же как в пункте 1.
Попробовал использовать функцию, которая считывает знаковое целое число
- ReadSInt(16,ADRTYPE_8BIT,"Ctr",pulses, -1);
функция выполняется успешно, но возвращается нуль, странная реакция - только одна из перечисленных функций - ReadUInt дает правильное значение, но оно к сожалению не отображает знак важный для использования энкодера, когда он вращается в обратную сторону.
Подскажите Пожалуйста, Как решить проблему? Заранее Благодарен.