🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.delphi
Article #345422

Jeszcze raz DLL, tym razem tylko na RPi

#345422
From: stchebel
Date: Fri, 09 Dec 2016 10:17
67 lines
3268 bytes
Witam,
Jeszcze raz dzięki za sugestie w siostrzanych wątkach Lazarus/RPi/DLL/FTDI..
Zgodnie z Waszymi sugestiami zrobiłem programik na RPi. Jak zwykle forma, na niej Button i Label. Cały program wygląda tak:

unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,Messages
  ,ComCtrls,Variants,DynLibs;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;
  FT_HANDLE: Dword=0;
  ftresult: integer;
  DLL_Handle:THandle;
  FT_Open_Fun:function (PVDevice:Integer; ftHandle:Pointer ) : integer ; stdcall ;
implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
begin
  if Assigned(FT_Open_Fun) then
  ftresult:=FT_Open_Fun(0,@FT_HANDLE)
  else
  ShowMessage('Dupa blada');
  Label1.Caption:=IntToStr(ftresult);

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  DLL_Handle:=LoadLibrary('/home/pi/Lazarus_Projects/Open_Port/lib/arm-linux/libftd2xx.so.1.3.6');
  Pointer(FT_Open_Fun):=GetProcAddress(DLL_Handle,'FT_Open');
end;

end.                                              

Program działa, ale niestety zwraca mi nieprawidłową wartość z funkcji FT_Open_Fun (skojarzona z funkcją FT_Open z biblioteki). Zwraca mi wartość 2, co jest kodem błędu FT_DEVICE_NOT_FOUND.Powinno zwrócić wartość 0. Pierwsze co pomyślałem,to jest jakiś problem z moim HW. Nic podobnego, odpalam program z examples/EEPROM/read (załączony do bibliotek FTDI) i wszystko jest OK. Elegancko otwiera port i prawidłowo odczytuje zawartość EEPROM'a. Biblioteki do RPi pobieram stąd:

http://www.ftdichip.com/Drivers/D2XX/Linux/libftd2xx-arm-v6-hf-1.3.6.tgz

Jest tam trochę opisów jak to zainstalować i takie tam..

Macie Koledzy jakiś pomysł?
                      
Technical Details
Message-ID: <9eea4c55-87ef-4f37-a515-edd26cd7e7ea@googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!feeder.erje.net!2.us.feeder.erje.net!newspeer1.nac.net!border2.nntp.dca1.giganews.com!nntp.giganews.com!p16no4582155qta.1!news-out.google.com!j8ni19832qtc.0!nntp.google.com!p16no4582153qta.1!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail

Show Full Headers
Complete Article Headers
X-Received: by 10.157.56.171 with SMTP id p40mr19922754otc.114.1481278644057;        Fri, 09 Dec 2016 02:17:24 -0800 (PST)
X-Received: by 10.157.20.197 with SMTP id r5mr5318600otr.9.1481278644011; Fri, 09 Dec 2016 02:17:24 -0800 (PST)
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!feeder.erje.net!2.us.feeder.erje.net!newspeer1.nac.net!border2.nntp.dca1.giganews.com!nntp.giganews.com!p16no4582155qta.1!news-out.google.com!j8ni19832qtc.0!nntp.google.com!p16no4582153qta.1!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.lang.delphi
Date: Fri, 9 Dec 2016 02:17:23 -0800 (PST)
Complaints-To: groups-abuse@google.com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=185.53.155.198; posting-account=67yd9woAAAAHUu8VHyA7Js47M98NE3m3
NNTP-Posting-Host: 185.53.155.198
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <9eea4c55-87ef-4f37-a515-edd26cd7e7ea@googlegroups.com>
Subject: Jeszcze raz DLL, tym razem tylko na RPi
From: stchebel@gmail.com
Injection-Date: Fri, 09 Dec 2016 10:17:24 +0000
Lines: 78
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit