Добрый день.
Помогите побороть 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 ошибка
где может быть ошибка ?