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


Ошибка при работе с vxdapi.dll

Вы не вошли.

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

kanvi
02.09.2003 18:04:24
#1

Гость

Ошибка при работе с vxdapi.dll

у меня L783, я уже пробовал писать и с новыми дровами (lcomp) и со старыми, но постоянно одно и тоже - или ошибка при вызове vxdapi, или данные из кольцевого буфера - полная ересть.
вот пример при ошибке с vxdapi:
DEV_REG_UNI *dev;
ADC_PAR *ap;
PLATA_DESCR *pd;
HANDLE Handle_Device;               
  double Rate = 100.0;
  double Kadr = 0.01;
  WORD SynchroType = 3;
  WORD SynchroSensitivity = 0;
  WORD SynchroMode = 0;
  WORD AdChannel = 0;
  WORD AdPorog = 0;
  WORD NCh = 1;
  WORD Chn[4] = {0x80, 0, 0, 0};
  WORD FIFO = 1024;
  WORD IrqStep = 512;
  WORD Pages = 2;
  DWORD *Size;
  DWORD *UsedSize;
  LPVOID Data;
  LPVOID Sync;

  DWORD Slot = 50;
  dev = new DEV_REG_UNI;
  ap = new ADC_PAR;
  pd = new PLATA_DESCR;

  dev->size=sizeof(DEV_REG_UNI);
  ap->size=sizeof(ADC_PAR);
  pd->size=sizeof(PLATA_DESCR);

  SLOT_PAR *slPar = new SLOT_PAR;
  slPar->size = sizeof(SLOT_PAR);

  Handle_Device = OpenLDevice(Slot, dev);
     if(Handle_Device == INVALID_HANDLE_VALUE)
  Memo1->Lines->Add("Плата не найдена!");
     else if(LoadBios(dev, "L783", 0, 0) == 0)
  Memo1->Lines->Add("Bios не загружен!");
     else if(PlataTest_PLX(dev, 0) == 0)
  Memo1->Lines->Add("Плата не прошла тест!");
     else if(ReadPlataDescr_PLX(dev, pd, 0) == 0)
  Memo1->Lines->Add("Чтение пользовательского Flash не удалось!");
     else if(GetSlotParam(Slot, slPar) == 0)
  Memo1->Lines->Add("Чтение параметров слота не удалось!");
     else
        {
  LabelResult->Caption = "Плата полностью готова к работе!";
  Memo1->Lines->Add("Плата - " + (String)pd->BrdName);
  Memo1->Lines->Add("Серийный номер - " + (String)pd->SerNum);
  Memo1->Lines->Add("Ревизия - /' " + (String)pd->Rev + " /'");
  Memo1->Lines->Add("Тип DSP - " + (String)pd->DspType);
  Memo1->Lines->Add("Наличие DAC - " + (String)(pd->IsDacPresent ? "есть" : "нет"));
  Memo1->Lines->Add("Irq - " + (String)slPar->Irq);

  ap->size = sizeof(ADC_PAR);
  ap->AutoInit = 1;
  ap->Rate = 500.0;// в кГц
  ap->Kadr = 0.0;// в мс
  ap->Scale = 0;
  ap->SynchroType = 3;
  ap->SynchroSensitivity = 0;
  ap->SynchroMode = 0;
  ap->AdChannel = 0;
  ap->AdPorog = 0;
  ap->NCh = 1;
  ap->Chn[0] = 0x80;
  ap->FIFO = FIFO;
  ap->IrqStep = IrqStep;
  ap->Pages = Pages;

  if(FillADCparameters_PLX(ap, pd, &Rate, &Kadr,
          SynchroType, SynchroSensitivity, SynchroMode,
          AdChannel, AdPorog, NCh, Chn, FIFO, IrqStep, Pages) != 0)
  if(RequestBuffer(dev, Size) != 0)
  if(SetParameters(dev, ap, UsedSize, &Data, &Sync) != 0)
            {
  Memo1->Lines->Add("Количество отсчётов - " + IntToStr(*UsedSize));
  Memo1->Lines->Add("Частота работы АЦП - " + IntToStr((int)ap->Rate));
  Pages = ap->Pages;
  InitStartLDevice(dev);

да пожалуйста дайте простой пример по считыванию данных для Builder C++...

03.09.2003 08:35:23
#2

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

Re: Ошибка при работе с vxdapi.dll

А чем примеры то не устраивают. Ну соберите их в Builder - тип проекта Console win32 app.

kanvi
03.09.2003 09:39:53
#3

Гость

Re: Ошибка при работе с vxdapi.dll

вся беда в том, что примеры собранные не работают...они или не видят карты или ничего не считывают с АЦП. Только один LGraph работает, вот поэтому и пытаюсь плясать от API на Builder. Мне даже удалось удачно всю карту загрузить с новыми дровами (lcomp) как в Millennium так и в W2k, но при считывании данных из кольцевого буфера получаю полную чушь...это кстати что-то вроде того же, что получается и с консольными примерами - всё находит но не хочет считывать.

kanvi
03.09.2003 09:54:13
#4

Гость

Re: Ошибка при работе с vxdapi.dll

Вот ошибочка от консольного приложения:
StartLDevice returned FALSE Client1: exit
и до этого несёт полный бред из считаной информации. Что я не так делаю?

03.09.2003 12:03:18
#5

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

Re: Ошибка при работе с vxdapi.dll

Не знаю. Именно с билдером я не работаю.Но все равно пришлите Ваш проект на мой мейл - посмотрим.

Дмитрий
15.10.2004 09:46:00
#6

Гость

Re: Ошибка при работе с vxdapi.dll

У меня возникает ошибка StartLDevice returned FALSE Client1: exit из-за чего не могу провести считывание из буфера и программа находится в бесконечном цикле при циклическом сборе данных. Самое обидное, что все примеры проектов также выполняются с этой ошибкой. Подскажите пожалуйста в чем тут дело. Заранее спасибо.

15.10.2004 10:48:04
#7

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

Re: Ошибка при работе с vxdapi.dll

тАк это нормально - это овелаппед запрос.

Дмитрий
15.10.2004 11:21:52
#8

Гость

Re: Ошибка при работе с vxdapi.dll

а что это значит? и как с этим бороться?

15.10.2004 11:41:15
#9

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

Re: Ошибка при работе с vxdapi.dll

Так числа то по кругу бегают при этом?

Дмитрий
15.10.2004 12:10:29
#10

Гость

Re: Ошибка при работе с vxdapi.dll

Не могу сказать точно. Т.к. я вообще ничего не могу прочитать из буфера. В примерах написано, что при цикличесом сборе данных нужно отслеживать значение в переменной sync, которая всегда, почему-то, равна нулю. Из-за этого программа зацикливается. Как правильно производить считывание из буфера? Сделал все как в примерах, а результат все тот же.

15.10.2004 14:25:18
#11

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

Re: Ошибка при работе с vxdapi.dll

А примеры работают? Если синк не меняется то данные не идут.

Дмитрий
15.10.2004 15:01:03
#12

Гость

Re: Ошибка при работе с vxdapi.dll

В том то и дело, что примеры не работают. Хотя L-Card работает исправно. Поэтому я и не могу понять в чем дело.

15.10.2004 15:59:57
#13

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

Re: Ошибка при работе с vxdapi.dll

Что значит L-Card работает исправно?

Денис
15.10.2004 16:39:41
#14

Гость

Re: Ошибка при работе с vxdapi.dll

у меня такая же проблема: программки типа л-графа работают, а примеры - нет. у меня в примере криэйтинстанс дает нуль. почему - не понятно. есть соображения?

Дмитрий
18.10.2004 07:31:01
#15

Гость

Re: Ошибка при работе с vxdapi.dll

Прошу прощения за опечатку. L-Graph работает исправно т.е. он отображает сигнал, который подается на АЦП.

18.10.2004 13:15:56
#16

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

Re: Ошибка при работе с vxdapi.dll

Какие библиотеки? Самые свежие с сайта?

Дмитрий
18.10.2004 13:47:36
#17

Гость

Re: Ошибка при работе с vxdapi.dll

С примерами я разобрался. Большое Спасибо!