Меню

+7 (495) 785-95-25
sale@lcard.ru
sale@lcard.ru
Страницы 1
Тема закрыта
|
||||
|
Ошибка при работе с буферомЗдравствуйте. Пытаюсь сделать подобие осцилографа для карточки l791, при работе с буфером возникли проблемы.
ap.t2.s_Type := L_ADC_PARAM;
pLDev.FillDAQparameters(ap.t2); // tm := 1024*1024; // мы захотели 100000 отсчетов
Memo1.Lines.Add(//'Allocated memory size(word) : //'+IntToStr(tm)); pLDev.SetParametersStream(ap.t2, tm, data, sync,L_STREAM_ADC); Memo1.Lines.Add(//'Buffer size(points): //'+IntToStr(tm));
//процедура чтения из буфера
fl1 := 0; // Текушая половиной стала вторая, первая заполнена, в из нее будем считывать
k := halfbuffer * fl1; // начало половины буфера
Sleep(0);
когда пытаюсь запустить поток сбора данных
вылазиет ошибка "Thread Start", и курсор ставится на строку
Где я накосячил? |
|||
|
||||
|
Re: Ошибка при работе с буферомДа везде. Почитайте про треды в Delphi и взаимодействие с компонентами форм. И пользуйтесь делфийскими функциями для этого. |
|||
|
||||
|
Re: Ошибка при работе с буферомЧто значит везде?как бы можно было и указать на явные ошибки, не все же Гуру программеры. Я так понял ошибка именно в потоке?заменить WinAPI на стандартные функции создания потоков в делфи? |
|||
|
||||
|
Re: Ошибка при работе с буферомДа. И там правильно обращаться к элементам форм через синхронайз или типа того. Код сишный посмотрите такого потока в примерах. Данные обрабатывать на лету можно только если есть уверенность что это быстро происходит. |
|||
|
||||
|
Re: Ошибка при работе с буферомУчел свои косяки переписал код, но ошибка все равно появляется там же когда начинаю собирать данные. Гляньте пожалуйста отрывки кода const
type
var
pLDev: IDaqLDevice;
procedure TForm1.FormCreate(Sender: TObject);
Memo1.Lines.Clear;
pIUnknown:=CreateInstance(0);
procedure TForm1.Button1Click(Sender: TObject);
s:=IntToStr(pLDev.ReadPlataDescr(pd)); Memo1.Lines.Add(//'ReadPlataDescr status //'+s); Memo1.Lines.Add(//'//');
pLDev.GetSlotParam(sl); Memo1.Lines.Add(//'//');
end; procedure TForm1.Button2Click(Sender: TObject);
pLDev.FillDAQparameters(ap.t2); // tm := 1024*1024; // мы захотели 100000 отсчетов
Memo1.Lines.Add(//'Allocated memory size(word) : //'+IntToStr(tm)); pLDev.SetParametersStream(ap.t2, tm, data, sync,L_STREAM_ADC); Memo1.Lines.Add(//'Buffer size(points): //'+IntToStr(tm));
procedure WriteValue;
procedure CollectObj.Execute;
fl1 := 0; // Текушая половиной стала вторая, первая заполнена, в из нее будем считывать
k := halfbuffer * fl1; // начало половины буфера
Sleep(0);
procedure TForm1.Button3Click(Sender: TObject);
Ошибку выдает в строке
Есть подозрения что я напутал с размерами буферов или переменными... С Уважением,Александр |
|||
|
||||
|
Re: Ошибка при работе с буферомУ L791 вообще-то все немного не так в смысле чтения sync. там смещение есть см пример. и буфер там всегда 128к отсчетов. Примеры смотрите L791.DPR и L791.TST |
|||
|
||||
|
Re: Ошибка при работе с буферомУважаемый Poul,не могли бы вы поконкретнее рассказать о Sync[I_ADC_PCI_COUNT_L791] т.к.при обращении к ней выскакивает Access Violation. |
|||
|
||||
|
Re: Ошибка при работе с буферомА как примеры работают? |
|||
|
||||
|
Re: Ошибка при работе с буферомL791.tst выводит Sync[I_ADC_PCI_COUNT_L791] в арифметической пос-ти., ну и Sync[I_DAC_PCI_COUNT_L791] что мне не очень важно. моя процедура чтения данных из потока
Sleep(0);
Прошу критики подправьте где ошибся, а то замучался уже. |
|||
|
||||
|
Re: Ошибка при работе с буферомесли последний цикл for убрать то как себя ведет программа? |
|||
|
||||
|
Re: Ошибка при работе с буферомтоже самое- ошибка в строке while((sync[I_ADC_PCI_COUNT_L791] <= halfbuffer) AND unit1.Collect) do Sleep(0); Периодически при запуске ошибка появляется либо в этой строке либо в
|
|||
|
||||
|
Re: Ошибка при работе с буферомтогда ждите...как поставлю дельфи и вспомню что да как там и пример состряпаю какой-нибудь... |
|||
|
||||
|
Re: Ошибка при работе с буферомCпасибо,буду ждать. Отпишитесь пожалуйста в этой теме как сделаете.Хотелосб бы пример с потоковым сбором данных с карты и их выводом в каком либо формате на форму |
Страницы 1
Тема закрыта