Меню

+7 (495) 785-95-25
sale@lcard.ru
sale@lcard.ru
|
||||
|
780 плата, ваш проектЗаставили писать прогу под вашу плату. в тоске.
|
|||
|
||||
|
Re: 780 плата, ваш проектЧто за проект "Projetc2"? Что за изделие? На чем пишите? ... |
|||
|
||||
|
Re: 780 плата, ваш проектПлата L780. Запускаю ваш проект заложенный в библиотеке l7xx.dpr, программа L-graph работает, пишу на delphi 7 |
|||
|
||||
|
Re: 780 плата, ваш проектЗа делфи 7 не скажу. Все разрабатывалось в 6. |
|||
|
||||
|
Re: 780 плата, ваш проектКакая разница 7 или 6 ваш продукт и вы его должны сопровождать. Если бы сомной проконсультировался человек который покупал эту плату Я бы всем телом отговаривал. Еще лет 10 я делал маркетинг по платам и пришел к выводу что с точки зрения программирования плат вы не очень и это подтверждает конференция. Что мне тосейчас делать? нужна обычная прога на ввод 7 каналов по максиму в делфи |
|||
|
||||
|
Re: 780 плата, ваш проектВ каком месте выдает ошибку в проекте конкретней пишите иначе для меня это сообщение ничего не говорит... |
|||
|
||||
|
Re: 780 плата, ваш проектСудя по всему программа пытается открыть виртуальный слот в котором ничего нет. Слегка подправленный вариант этой программы можно скачать с ftp://ftp.lcard.ru/pub/users/l7xx/l7xxdpr.zip |
|||
|
||||
|
Re: 780 плата, ваш проект>Какая разница 7 или 6 ваш продукт и вы его должны сопровождать Юрий, вероятно, Вы немного не так поняли Paul//'а, мы отнюдь не предлагаем привязываться к конкретным версиям и средам разработки.
В любом случае спасибо за критику. |
|||
|
||||
|
Re: 780 плата, ваш проектПрошу извинение за горячность.Будем работать.
[Warning] Unit1.pas(47): Unsafe type //'SLOT_PAR: old style object//'
|
|||
|
||||
|
Re: 780 плата, ваш проектПосмотрите Сишный пример L7XX.TST. Там комментов много, принцип один и функции и структуры аналогичны.
|
|||
|
||||
|
Re: 780 плата, ваш проектг.Paul Вы меня так и не поняли, я не должен искать в си варианте. он для меня не знаком, если этот продукт ваш вы должны выложить коментарии для всех компиляторов, За бугром бы ваша фирма погорела при таких отношениях к покупателю |
|||
|
||||
|
Re: 780 плата, ваш проектг. Paul известен своей лаконичностью. Во вторник постараюсь Вам помочь. |
|||
|
||||
|
Re: 780 плата, ваш проектпока ничего не объясняйте, разбираюсь |
|||
|
||||
|
Re: 780 плата, ваш проектOK |
|||
|
||||
|
Re: 780 плата, ваш проектКончилось лето возвращаюсь к вашим барана.Приветствую Вас.Плату L780 я запустил, но многое мне непонятно. Задача у меня запись с пяти каналов по максимальной частоте для любого интервала времени (интервал в рамках разумности Отсюда и первые вопросы: какой параметр определяет количество каналов и размер вводимого массива по каждому каналу. Второе привожу вашу тестовую прогу отредактированную. Выкинул то что смог. при дальнейшем редактировании программа перестает работать. В основном я выкидывал memo . Меня не интересуют служебные данные платы. Но все memo удалить не удалось почему. Не понял роль Timera Какую роль он выполняет . Какая разница между кнопкой 1 и 2
Unit1; interface uses
type
TForm1 = class(TForm)
private
var
pLDev: IDaqLDevice;
{$R *.dfm} procedure TForm1.FormCreate(Sender: TObject);
Memo1.Lines.Clear;
if(CallCreateInstance(//'lcomp.dll//')=0) then
pIUnknown:=CreateInstance(0); hr := pIUnknown.QueryInterface(IID_ILDEV,pLDev); if(not Succeeded(hr)) then MessageBox(0,//'Get interface failed//',//'Error//',MB_OK);
var s:string;
begin pLDev.GetSlotParam(sl); //PCIA s:=IntToStr(pLDev.ReadPlataDescr(pd));
s:= IntToStr(pLDev.PlataTest); ;
pp.s_Type := L_ASYNC_TTL_INP;
end; procedure TForm1.Button2Click(Sender: TObject);
tm := 1024*1024;
// PCI ap.t1.s_Type := L_ADC_PARAM;
ap.t1.SynchroSensitivity := 0;
pLDev.FillDAQparameters(ap.t1); ÿ ADS_PAR/DAC PAR
end; procedure TForm1.Timer1Timer(Sender: TObject);
if((data<>NIL) and (sync<>NIL)) then
|
|||
|
||||
|
Re: 780 плата, ваш проектколичество канало в ap.t1.NCh ap.t1.Chn[] это логические номера каналов. IrqStep*Pages это кольцевой буфер куда кладуться кадры из Nch отсчетов по кругу. Таймер печатает счетчик собранных данных. Прога останавливалась по закрытию формы. Первым баттоном плата инитилась а вторым баттоном запускался сбор в кольцевой буфер. Методом твка разобраться с программированием модуля не получиться. Нужны уверенные знания программировании и еще прочитать про модуль с cdrom PCI//L7xx//DOC, а также пример L7XX.TST и еще хелп к LComp. |
|||
|
||||
|
Re: 780 плата, ваш проектУважаемый паул я прекрасно программирую, но я не системщик, если вы себя считаете корифеем то почему в вашей проге 2 кнопка не заблокирована до того как нажата 1, а ведь ваша прога что то делает при нажатии 2 кнопки без нажатии 1. Далее один классик сказал, что идея материализуется если ею овладевает масса. Т.е. если вы пишите проги для своих плат, то пишите так, что как буд то кругом дураки и эти дураки спокойно овладивают вашими платами. Как я уже говорил с платами фирмы Руднев Шиляев проблем не было, все очень понятно. Я вам прислал заготовку отредактированную , но не до конца, мне необходимо убрать все memo чтобы плата просто собирала данные без всяких выводов данных платы. Заранее благодарен за помощь |
|||
|
||||
|
Re: 780 плата, ваш проектЯ не вижу никаких принципиальных препятствия для удаления стандартного компонента Delphi Memo из примера. Параметры сбора данных задаются структурой ADC_PAR (см описание в хелпе LComp). Про временные dRate и dKadr см стр. 12 руководства программиста (cdrom//PCI//L7XX//DOC). Про размер кадра и логический номер канала см стр9 там же. Про синхронизацию стр 39. Праметры структуры аналогичны тем что описаны в функции SYNCHRO_CONFIG_PLX. Размерные параметры циклического буфера можно не трогать. Далее после старта сбора данных любым удобным способом нужно отслеживать занчение переменной sync (та что по таймеру в примере печатается) которая циклически показывает сколько отсчетов введено в кольцевой буфер и в зависимости от ее значения любым удобным способом забирать данные АЦП из массива data. В простейшем случае отслеживать прохождение sync середины буфера и забирать соответствующую половину массива. При выборе способа нужно учитывать скорости заполнения буфера и реакции программы. Рекоменую использовать TThread. |
|||
|
||||
|
Re: 780 плата, ваш проектtm := 1024*1024; // количество отсчетов tm - должен быть кратным количеству каналов? какой формат слитываемого отсчета в делфи? |
|||
|
||||
|
Re: 780 плата, ваш проекткак завязаны между собой FIFO IrqStep pages |
|||
|
||||
|
Re: 780 плата, ваш проектtm это выделенная память под буфер в отсчетах. задействуется только ее часть IrqStep*Pages при сборе. Отсчет знаковый 16 бит. Кратность не обязательна. В общем смысле FIFO это половинка буфера для отсчетов в плате. IrqStep это шаг генерации прерываний и порция при этом вычитываемых данных.Для простоы желательно задавать IrqStep=FIFO. Pages это мультипликатор для задания размера кольцевого буфера как Pages*IrqStep. |
|||
|
||||
|
Re: 780 плата, ваш проект1 несовсем понятно с этими fifo page и т.д.
|
|||
|
||||
|
Re: 780 плата, ваш проектну например 1024 1024 и 128. останавливать StopLDevice. |
|||
|
||||
|
Re: 780 плата, ваш проектКажется дошли до главного основного вопроса. в остальном вроде все понятно. Судя по записи WA = array [0..1048576] of SHORT;
data массив с указателем Подаю синус получаю не синус , наверно не правильно беру выборку из массива. Вопрос следущий
|
|||
|
||||
|
Re: 780 плата, ваш проектКажется дошли до главного, основного вопроса. в остальном вроде все понятно. Судя по записи вашей проги WA = array [0..1048576] of SHORT;
data массив с указателем Подаю синус получаю не синус , наверно не правильно беру выборку из массива. Вопрос следущий :
|