AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Auslesen/Programmieren

Ein Thema von STW · begonnen am 5. Jan 2004 · letzter Beitrag vom 7. Jan 2004
Antwort Antwort
Seite 2 von 3     12 3      
s14

Registriert seit: 15. Mai 2003
Ort: München
251 Beiträge
 
Delphi 7 Architect
 
#11

Re: Auslesen/Programmieren

  Alt 5. Jan 2004, 13:13
Also enhält ftData nun die gewünschten Werte?
Wo ist dann das Problem?? )
  Mit Zitat antworten Zitat
STW

Registriert seit: 19. Nov 2003
Ort: Solothurn
22 Beiträge
 
#12

Re: Auslesen/Programmieren

  Alt 5. Jan 2004, 13:27
ja ftData enthält die werte...
aber nur dann, wenn ich das Porg öffne und das EEPROM programmiere und dann die Daten auslesen...

wenn ich das Prog öffne und dann gleich auslesen will, stürzt es immer noch ab...


ausser eben ich habe

Delphi-Quellcode:
  ManufacturerBuf := ftData.Manufacturer;
  ManufacturerIDBuf := ftData.ManufacturerID;
  DescriptionBuf := ftData.Description;
  SerialNumberBuf := ftData.SerialNumber;
nicht drin

oder ich habe bei

Delphi-Quellcode:
ManufacturerBuf : string;
ManufacturerIDBuf : string;
DescriptionBuf : string;
SerialNumberBuf : string;
die stringlänge nicht definiert...

dann aber zeigt es mir die Werte von

ftData.Manufacturer, ftData.ManufacturerID, ftData.Description, ftData.SerialNumber nicht an, sonder nur die ftData-Werte, die Boolean oder Word sind!
die PChar-Werte zeigt es dann nicht an!


Der Sinn der ganze Sache wäre, dass man div. Devices anschliessen kann und dann alle Daten wie Serienummer, Beschreibung, usw. auslesen kann.

  Mit Zitat antworten Zitat
s14

Registriert seit: 15. Mai 2003
Ort: München
251 Beiträge
 
Delphi 7 Architect
 
#13

Re: Auslesen/Programmieren

  Alt 5. Jan 2004, 13:39
Die Stringlänge spielt ja auch keine Rolle, da in ftData sowieso nur Zeiger auf NULL-Terminierte Zeichenketten sind.

Ich hab im Web folgende Doku gefunden:
http://www.ftdichip.com/Documents/D2XXPG21.pdf

Die Funktion zum lesen der Daten hab ich mal nach Delphi übersetzt, vielleicht hilft's ja weiter.
Das Hinweisfenster ist natürlich nur ein Test und sollte eigentlich etwas anzeigen.
Ich vermute Du hast die Funktion FT_Open noch nicht aufgerufen wenn das Prog startet!?

Delphi-Quellcode:
var
  ftHandle : FT_HANDLE;
  ftData : FT_PROGRAM_DATA;
  ftstatus : FT_STATUS;
begin
  ftStatus = FT_Open(0, @ftHandle);
  if ftStatus = FT_OK then begin
    ftstatus := FT_EE_Read(ftHandle, @ftData);
    if ftstatus FT_OK then
    begin
      // FT_EE_Read OK, data is available in ftData
      // in ftData müssten nun alle Daten enthalten sein !!
      showmessage(ftData.Manufacturer);
    end else FT_Error_Report('FT_EE_Read', ftstatus);
  end;
end;
  Mit Zitat antworten Zitat
STW

Registriert seit: 19. Nov 2003
Ort: Solothurn
22 Beiträge
 
#14

Re: Auslesen/Programmieren

  Alt 5. Jan 2004, 13:57
ja die Doku hab ich auch...

aber beim Hinweisfenster zeigt es mir nichts an
ausser eben ich programmiere es zuerst...
aber das ist ja schon bekannt...

ist den das hier nicht mehr nötig?

Delphi-Quellcode:
ManufacturerBuf := ftData.Manufacturer;
  ManufacturerIDBuf := ftData.ManufacturerID;
  DescriptionBuf := ftData.Description;
  SerialNumberBuf := ftData.SerialNumber;
es ist doch seltsam, dass die boolean und word werte ohne probleme ausgelsen werden können, bei den PChar aber solche probleme auftreten...

langsam ist es zum

Danke dir mal jedenfalls für die ganzen Tips bis jetzt!
hoffe wir finden dass noch raus...


PEACE
STW
  Mit Zitat antworten Zitat
s14

Registriert seit: 15. Mai 2003
Ort: München
251 Beiträge
 
Delphi 7 Architect
 
#15

Re: Auslesen/Programmieren

  Alt 5. Jan 2004, 14:21
Die sind so eigentlich nicht nötig.

Stimmen die anderen Werte wirklich oder sind es Zufallswerte?

Wird die Proc von mir korrekt durchlaufen, FT_OK , FT_EE_Read, gültiges Handle..
..also bis zum Fenster?

Was erscheint wenn Du einen Breakpoint in die Zeile von "Showmessage()" reinsetzt und mit dem Mauszeiger auf ftData gehst?

Es müsste eigentlich der gesammte Inhalt als Hinweisfenster angezeigt werden.

Nur nicht aufgeben
  Mit Zitat antworten Zitat
STW

Registriert seit: 19. Nov 2003
Ort: Solothurn
22 Beiträge
 
#16

Re: Auslesen/Programmieren

  Alt 5. Jan 2004, 15:08
Also wenn ich das Prog öffne und das mache, zeigt es mir im Debug Inspector alle Werte von ftData...
ausser die PChar Werte ... Bei denen steht nil...

wenn ich zuerst programmiere und dann auslese sind alle Werte vorhanden...

jap, deine proc stimmt...
  Mit Zitat antworten Zitat
s14

Registriert seit: 15. Mai 2003
Ort: München
251 Beiträge
 
Delphi 7 Architect
 
#17

Re: Auslesen/Programmieren

  Alt 5. Jan 2004, 15:23
Also einen hab ich noch

Delphi-Quellcode:
var
  ftHandle : FT_HANDLE;
  ftData : PFT_PROGRAM_DATA;
  ftstatus : FT_STATUS;
begin
  ftStatus = FT_Open(0, @ftHandle);
  if ftStatus = FT_OK then
  begin
    GetMem(ftData, SizeOf(FT_PROGRAM_DATA));
    ftstatus := FT_EE_Read(ftHandle, ftData);
    if ftstatus FT_OK then
    begin
      // FT_EE_Read OK, data is available in ftData
      // in ftData müssten nun alle Daten enthalten sein !!

    end else FT_Error_Report('FT_EE_Read', ftstatus);
    FreeMem(ftData);
  end;
end;
Ich vermute mal das es auch am zuweisen des Speichers liegen kann?!
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#18

Re: Auslesen/Programmieren

  Alt 5. Jan 2004, 17:17
Guck nochmal bei dem C-Code, da sind die vier Zeilen anders herum:

Delphi-Quellcode:
Function ReadEE : FT_Result;
var
  ManufacturerBuf : string[32];
  ManufacturerIDBuf : string[16];
  DescriptionBuf : string[64];
  SerialNumberBuf : string[16];
begin
  ftData.Manufacturer := @ManufacturerBuf[1]; // Die
  ftData.ManufacturerID := @ManufacturerIDBuf[1]; // vier
  ftData.Description := @DescriptionBuf[1]; // meine
  ftData.SerialNumber := @SerialNumberBuf[1]; // ich

  Result := FT_EE_Read(Multi_Handle,@FtData);
  if Result <> FT_OK then FT_Error_Report('FT_EE_Read',Result);
end;
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#19

Re: Auslesen/Programmieren

  Alt 5. Jan 2004, 17:21
Falls die Strukturen aus C/C++ stammen so hast du die Strings falsch transliert.

Statt
Delphi-Quellcode:

type
  XYZ = record
    XYZ: String[48];
  end;
muß

Delphi-Quellcode:
type
  XYZ = record
    XYZ: array[0..48 -1] of Char;
  end;
werden.

Gruß Hagen
  Mit Zitat antworten Zitat
STW

Registriert seit: 19. Nov 2003
Ort: Solothurn
22 Beiträge
 
#20

Re: Auslesen/Programmieren

  Alt 6. Jan 2004, 06:37
Morgen allerseits...

@s14

Das getMem funktioniert nicht so...
es kommt die Meldung incompatible Types
in der DelphiHelp steht da, dass es einen Pointer und Integer sein muss...
FT_PROGRAM_DATA ist ja aber ein record...


@scp

ich glaube in C und Delphi ist das doch eben gerade seitenverkehrt...
oder irre ich mich da?


@negaH

ich habe für die strings auch PChar genommen
also:
Delphi-Quellcode:
type
  XYZ = record
    XZW: PChar;
  end;
und wenn ichs so mache wie dein Vorschlag (also Arrays), kann ich beim EEPROM programmieren die Daten nicht mehr ins ftData einschreiben, da ich sie von Edits herauslese

also:
ftData.Manufacturer := PChar(Manufacturer.Text); hmmmm....


PEACE
STW
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz