🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Raspberry/Lazarus/FTDI - prośba o pomoc

#345378
From: krolikbest
Date: Thu, 17 Nov 2016 18:34
100 lines
5058 bytes
W dniu 2016-11-15 o 23:47, stchebel@gmail.com pisze:
> Witam,
> Jakiś czas temu zaprojektowałem urządzenie, które komunikuje się z pecetem poprzez USB z wykorzystaniem kostki FT2232H. Działa bez problemu pod różnymi wersjami Windows. Soft pisany w D6, algorytmicznie niezbyt skomplikowany, ale nazbierało się tego 10k+ linii kodu. Jest pomysł, aby to urządzenie zminiaturyzować i "zbaterializować". Pierwszy pomysł, to wykorzystać RPi.
>
> Tyle wstępu, teraz zaczynają się "schody"..
>
> Po kolei:
>
> 1) Ponieważ Lazarus jest najbliższy koncepcyjnie do GUI D6, więc zassałem i zainstalowałem w zeszłym tygodniu zajnowszą dostępną wersję Lazarusa dla Windows.
> Kilka eksperymentów z wykorzystaniem banalnych komponentów, są jakieś tam kosmetyczne różnice, można się przyzwyczaić, ale ogólnie jest OK !!
>
> 2) Aby poprawnie komunikować się z układem FT2232H, trzeba zainstalować odpowiednie drivery dostępne tutaj:
>
> http://www.ftdichip.com/Drivers/D2XX.htm
>
> Pod mojego Windowsa(Vista) pobieram z dołu strony:
>
> http://www.ftdichip.com/Drivers/CDM/CDM%202.08.24%20WHQL%20Certified.zip
>
> 3) "Roz_zipowuję" to ostatnie, na wszelki wypadek wrzucam wszystkie rozpakowane pliki do katalogu w którym będzie projekt. No i piszemy soft w Lazarusie:
>
> Na Formie jest Button i Label. Soft wygląda tak:
>
> ===============================
>
> unit Unit1;
>
> {$mode objfpc}{$H+}
>
> interface
>
> uses
>   Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;
>
> type
>
>   { TForm1 }
>
>   TForm1 = class(TForm)
>     Button1: TButton;
>     Label1: TLabel;
>     procedure Button1Click(Sender: TObject);
>   private
>     { private declarations }
>   public
>     { public declarations }
>   end;
>
> var
>   Form1: TForm1;
>   FT_HANDLE:DWord=0;
>   ftresult:integer;
>
> implementation
> function FT_Open(PVDevice:Integer; ftHandle:Pointer ) : integer ; stdcall ; External 'ftd2xx.dll' name 'FT_Open';
> function FT_Close(ftHandle:Dword) : integer ; stdcall ; External 'ftd2xx.dll' name 'FT_Close';
> {$R *.lfm}
>
> { TForm1 }
>
> procedure TForm1.Button1Click(Sender: TObject);
>
> begin
>   ftresult:=FT_Open(0,@FT_HANDLE);
>   Label1.Caption:=IntToStr(ftresult);
>   ftresult:=FT_Close(FT_HANDLE);
> end;
>
> end.
>
> ==============================
>
> No i zgodnie z tym co piszą tutaj:
>
> http://www.ftdichip.com/Support/Documents/ProgramGuides/D2XX_Programmer's_Guide(FT_000071).pdf , wszystko jest OK pod Windowsem.
>
> 4 ) Pod Raspbiana (patrz pkt.2) pobieram :
>
> http://www.ftdichip.com/Drivers/D2XX/Linux/libftd2xx-arm-v6-hf-1.3.6.tgz
>
> i cały proces instalacji przeprowadzam zgodnie z instrukcją zawartą w pliku Readme.txt z powyższego. Nie jest źle, po całym upierdliwym procesie instalacji, po odpaleniu zgodnie z instrukcją programu "read" z examples/EEPROM, na konsoli wyświetla mi prawidłową zawartość EEPROM'a z zaprogramowanymi prze ze mnie danymi (Witaj Stachu !!) w polu 'device description'.
>
> 5) Tymczasem program napisany w Lazarusie pod Raspbiana, identyczny jak w pkt.3, z wyjątkiem :
>
>  a) W prototypie funkcji FT_Open mamy : External 'ftd2xx.so'
>  b) W Button1.Click, w ogóle nie wywołuję funkcji FT_Open i FT_Close
>
> 6) Efekt jest taki, że kompilacja przechodzi na RPi/Lazarus bez błędów, ale forma się nie otwiera. Po kompilacji od razu pojawia się okno dialogowe zamknięcia procesu debuggowania: "Execution Stopped"
>
> =============================
>
> Wiem, dłuugi post, ale już 2 dni nad tym ślęczę i starałem się w miarę precyzyjnie opisać problem.
>
> Gdzie do cholery popełniam błąd?!
>
>
>

Zainstaluj lazarusa pod windą. Spróbuj skompilować i uruchomić to na 
windowsie. Potem sie zobaczy ;)
Technical Details
Message-ID: <582df836$0$5150$65785112@news.neostrada.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!peer02.am4!peer.am4.highwinds-media.com!peer04.fr7!futter-mich.highwinds-media.com!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-a-02.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
References: <0ab4624c-e38d-40b6-9d07-2f655cd846c3@googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!peer02.am4!peer.am4.highwinds-media.com!peer04.fr7!futter-mich.highwinds-media.com!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-a-02.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
Subject: Re: Raspberry/Lazarus/FTDI - prośba o pomoc
Newsgroups: pl.comp.lang.delphi
References: <0ab4624c-e38d-40b6-9d07-2f655cd846c3@googlegroups.com>
From: krolikbest <krolikbest@wp.pl>
Date: Thu, 17 Nov 2016 19:34:29 +0100
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:45.0) Gecko/20100101 Thunderbird/45.4.0
MIME-Version: 1.0
In-Reply-To: <0ab4624c-e38d-40b6-9d07-2f655cd846c3@googlegroups.com>
Lines: 100
Message-ID: <582df836$0$5150$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 178-36-230-54.adsl.inetia.pl
X-Trace: 1479407670 unt-rea-a-01.news.neostrada.pl 5150 178.36.230.54:12986
X-Complaints-To: abuse@news.neostrada.pl
X-Received-Body-CRC: 2096394717
X-Received-Bytes: 4905
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit