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


E14-400 ошибка ADC

Вы не вошли.

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

26.09.2014 10:46:16
#1

Участник
Здесь с 26.09.2014
Сообщений: 1

E14-400 ошибка ADC

Добрый день.
Помогите побороть E14-400
Работаю в делфи
вот кусок кода программы
var
  i: integer; // цикловая переменная

begin
  if nvirtport <> 200 then    //закрытие устройства если было открыто
    pModule.CloseLDevice();

    nvirtport := 200;       //сброс номера порта
    checkbox1.Checked:=false; //блокировка управления
    checkbox1.Enabled:=false;

  // проверим версию используемой DLL библиотеки
  DllVersion := GetDllVersion;
  if DllVersion <> CURRENT_VERSION_LUSBAPI then
  begin
    erm('Неверная версия DLL библиотеки Lusbapi.dll! ' + #10#13 + // #10#13
      '           Текущая: ' + IntToStr(DllVersion shr 16) + '.' +
      IntToStr(DllVersion and $FFFF) + '.' + ' Требуется: ' +
      IntToStr(CURRENT_VERSION_LUSBAPI shr 16) + '.' +
      IntToStr(CURRENT_VERSION_LUSBAPI and $FFFF) + '.');
  end
  else
  begin
    gm(' Версия DLL          --> OK');
    // попробуем получить указатель на интерфейс для модуля E14-440
    pModule := CreateLInstance(pAnsiChar('e440'));
    if pModule = nil then
      erm('Не могу найти интерфейс модуля E14-440!')

    else
    begin
      gm(' Модуль интерфейса   --> OK');
      // попробуем обнаружить модуль E14-440 в первых MAX_VIRTUAL_SLOTS_QUANTITY_LUSBAPI виртуальных слотах
      // Port_#0003.Hub_#0004



      i := 0;
      for i := 0 to MAX_VIRTUAL_SLOTS_QUANTITY_LUSBAPI do
      begin
        if pModule.OpenLDevice(i) = TRUE then
        begin
          nvirtport := i; // nvirtport - определяется виртуальный порт
        end;
      end;

      if nvirtport = 200 then
        erm('Не удалось обнаружить модуль E14-440 в первых 127 виртуальных слотах!')
      else
        gm(' Виртуальный порт модуля E14-440 № ' + IntToStr(nvirtport));

      // попробуем обнаружить какой-нибудь модуль
      // в нулевом виртуальном слоте
      if pModule.OpenLDevice(nvirtport) then
        gm('Устройство открыто...')
      Else
        erm('ошибка устройства открытие');
      if pModule.LOAD_MODULE() then
        gm('Загрузка драйвера успешна')
      else
        erm('Ошибка загрузки драйвера');
      // получим идентификатор устройства
      ModuleHandle := pModule.GetModuleHandle();
      if ModuleHandle = INVALID_HANDLE_VALUE then
        erm('Не удалось получить дескриптор устройства!')
      else
        gm(' GetModuleHandle() --> OK');
      // прочитаем скорость работы USB порта
      if pmodule.GetUsbSpeed(@USBsped) then
            begin gm('Определена скорость USB') ;
            if usbsped = USB11_LUSBAPI  then gm('12Mbit/s') else gm('480Mbit/s');
           
            end  else erm('ошибка определения скорости');

               // роверка загрузки драйвера
      if pModule.TEST_MODULE = TRUE then
        gm('драйвер DSP успешно загружен и функционирует над-лежащим образом')
      else
        erm('произошла ошибка загрузки или функционирования драйвера DSP');
      // прочитаем название модуля в текущем виртуальном слоте
      ModuleName := '0123456';
      if not pModule.GetModuleName(pAnsiChar(ModuleName)) then
        erm('Не могу прочитать название модуля!')
      else
        gm(' GetModuleName() --> OK');
      // gm ((ModuleName));
      // проверим, что это модуль E14-440
      if Boolean(AnsiCompareStr(ModuleName, 'E440')) then
        erm('Обнаруженный модуль не является E14-440!')
      else  begin
         gm(' The module is ''E14-440'''); // CheckBox1.Checked:=true;
         CheckBox1.enabled:=true;  //если все в порядке подлючить систему управления модулем
        if pModule.GET_ADC_PARS(@ap)then gm('Загрузка из ADC успешно ') else erm('Загрузка из ADC ошибка ') ;

    end;
    end;
  end;

end;



исполнение кода возвращает
Версия DLL          --> OK
Модуль интерфейса   --> OK
Виртуальный порт модуля E14-440 № 1
Устройство открыто...
Загрузка драйвера успешна
GetModuleHandle() --> OK
Определена скорость USB
12Mbit/s
драйвер DSP успешно загружен и функционирует над-лежащим образом
GetModuleName() --> OK
The module is 'E14-440'
Загрузка из ADC ошибка

где может быть ошибка ?

26.09.2014 11:10:30
#2

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

Re: E14-400 ошибка ADC

1. Можно попробовать воспользоваться функцией GetLastErrorInfo() для того, чтобы получить описание ошибки.
2. Не надо забывать о функции GET_MODULE_DESCRIPTION().
3. В качестве учебного пособия программирования модуля E14-440 на  Delphi  можно взять штатные консольные примеры. В них показан примерный порядок вызовов функций библиотеки Lusbapi для работы с модулем.
4. Попробовать почитать руководство программиста, а именно п.1.4 "Общие принципы работы с модулем E14-440":
             www.lcard.ru/download/e14_440_programmers_guide.pdf