реклама на сайте
подробности

 
 
> Подскажите d2xx и FT232R, настроить события в Delphi
Lexx_kvv
сообщение Feb 15 2008, 16:24
Сообщение #1





Группа: Новичок
Сообщений: 8
Регистрация: 15-02-08
Пользователь №: 35 073



Добрый вечер!

Помогите пожалуйста разобратся с передачей данных через USB с использованием D2XX.
Не могу понять как построить программу, что бы по приходу данных во входной буфер выполнялось его считывание. В инфе прочитал о функции "FT_SetEventNotification" которой можно задавать различные условия, Ну отдуплить как реализовать не могу.

Подскажите хоть небольшим примером. Пожалуйста натолкните на путь истинны. 07.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
KRS
сообщение Feb 19 2008, 11:54
Сообщение #2


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Выдрал из свего старого проекта.
уже много лет на дельфи не писал. Вам надо реализовать примерно следующее
Код
type TFtdi=class(TObject)
protected
  hCom:THandle;
  hThr:THandle;
  hEvt:THandle;
  Terminate:boolean;
  procedure WorkThread;
public
  hWin:THandle;
  constructor Create;
  destructor Destroy; override;
  function Open(const Port:string):integer;
  function Close:integer;
  ........
end;

constructor TFtdi.Create;
begin
  inherited;
end;

destructor TFtdi.Destroy;
begin
  if hFtdi<>0 then Close;
  inherited;
end;

function Starter(Param:pointer):cardinal;
begin
  TFtdi(Param).WorkThread;
  result:=0;
  ExitThread(0);
end;

function TFtdi.Open(const Port: string): integer;
var Temp:cardinal;
begin
  if hFtdi<>0 then Close;
  hFtdi:= // здесь надо открыть ftdi
  if hFtdi=INVALID_HANDLE_VALUE then
  begin
    hFtdi:=0;
    Result:=GetLastError;
    exit;
  end;
  hEvt:=CreateEvent(nil,true,false,nil);
  //вызываете FT_SetEventNotification с нужными параметрами
  FT_SetEventNotification(......);
  Terminate:=false;
  hThr:=BeginThread(nil,0,@Starter,Self,0,Temp);
  Result:=0;
end;

function TFtdi.Close: integer;
var Num:Cardinal;
begin
  if hThr<>0 then
  begin
    Terminate:=true;
    SetEvent(hEvt);
    if WaitForSingleObject(hThr,50)<>WAIT_OBJECT_0 then
    begin
      TerminateThread(hThr,0);
      WaitForSingleObject(hThr,20);
    end;
    hThr:=0;
  end;
  if hFtdi<>0 then
  begin
    // здесь надо закрыть FTDI
  end;
  hFtdi:=0;
  Result:=GetLastError;
end;

procedure TFtdi.WorkThread;
begin
  repeat
    WaitForSingleObject(hEvt,INFINITE);
            ResetEvent(hEvt);
    if Terminate then
    begin
      ........ // требуется завершение нити
      exit;
    end;
    PostMessage(hWin,WM_PACKET,....,...)
  until false;
end;
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Lexx_kvv   Подскажите d2xx и FT232R   Feb 15 2008, 16:24
- - KRS   Цитата(Lexx_kvv @ Feb 15 2008, 19:24) Не ...   Feb 15 2008, 17:52
- - Lexx_kvv   То есть, если я правильно понял, при поступлении д...   Feb 15 2008, 20:02
|- - KRS   Цитата(Lexx_kvv @ Feb 15 2008, 23:02) То ...   Feb 16 2008, 10:42
- - Lexx_kvv   Большшое спасибо за разъяснение! Но я только ...   Feb 17 2008, 08:25
|- - KRS   Цитата(Lexx_kvv @ Feb 17 2008, 11:25) -- ...   Feb 17 2008, 13:03
- - Lexx_kvv   Не, как бы все понятно, но и втоже время нет. Как ...   Feb 18 2008, 08:28
|- - KRS   Цитата(Lexx_kvv @ Feb 18 2008, 11:28) Не,...   Feb 18 2008, 08:53
- - Lexx_kvv   Из приведенных примеров и других нетовскиъх форумо...   Feb 18 2008, 13:58
|- - KRS   Цитата(Lexx_kvv @ Feb 18 2008, 16:58) Или...   Feb 18 2008, 14:15
- - Lexx_kvv   Это я понял, но как я могу посылать сообщения если...   Feb 18 2008, 20:28
|- - KRS   Цитата(Lexx_kvv @ Feb 18 2008, 23:28) Это...   Feb 18 2008, 20:36
- - Lexx_kvv   При работе С Delphi7 был компонент COM, который об...   Feb 19 2008, 06:32
- - Lexx_kvv   Большое спасибо! Буду разбирать. Пока удалось ...   Feb 20 2008, 15:26
- - Седой   Возможно, поможет http://projects.caxapa.ru/index...   Feb 20 2008, 21:31


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 01:22
Рейтинг@Mail.ru


Страница сгенерированна за 0.01384 секунд с 7
ELECTRONIX ©2004-2016