Seite 1 von 4

AW: Tap´s die ich für den SRP-2410 noch brauche

Verfasst: Mo 19. Jul 2010, 09:48
von buko
zu 1. -> Quickplay_TAP ... :wink:

AW: Tap´s die ich für den SRP-2410 noch brauche

Verfasst: Mo 19. Jul 2010, 10:14
von buko
suppe hat geschrieben:Morjen ! Man bist Du schnell :und_weg:



... und zu 2. RebuildNAV & RecCopy_TAP

Aber alle TAP´s auf dem SRP-2410 evtl. mit Einschränkungen, da ini BUG !

AW: Tap´s die ich für den SRP-2410 noch brauche

Verfasst: Mo 19. Jul 2010, 10:21
von Gerti
Hi!

Ich weiss nicht, woher diese INI-Bug kommen soll. QuickPlay läuft doch auch auf dem SRP-2410 und ich lese und erzeuge die INIs auch nicht durch Zauberei...

Gruß,
Gerti

AW: Tap´s die ich für den SRP-2410 noch brauche

Verfasst: Mo 19. Jul 2010, 10:27
von buko
Gerti hat geschrieben:Hi!

Ich weiss nicht, woher diese INI-Bug kommen soll. QuickPlay läuft doch auch auf dem SRP-2410 und ich lese und erzeuge die INIs auch nicht durch Zauberei...

Gruß,
Gerti


... ja Gerti, dein TAP ist auch das (einzige) TAP das promblemlos läuft ... :u:

Siehe auch hier !

AW: Tap´s die ich für den SRP-2410 noch brauche

Verfasst: Mo 19. Jul 2010, 10:33
von FireBird
Gerti hat geschrieben:Ich weiss nicht, woher diese INI-Bug kommen soll.

Willst Du es nicht herausfinden? :u: Die Rückgabewerte von TAP_Hdd_Fread() und TAP_Hdd_Fwrite() sind heiße Kandidaten.

AW: Tap´s die ich für den SRP-2410 noch brauche

Verfasst: Mo 19. Jul 2010, 10:36
von Gerti
Hi!

Lt. FireBird hat er doch einen Fix für TAP_Hdd_Change in seiner Lib, da der Rückgabewert (je nach Firmwareversion) anders sein kann. Ich hatte mir dafür halt die Funktion TMS_Hdd_ChangeDir erzeugt.
Wenn also das Erzeugen/Lesen der INIs nicht klappt, sollten auch alle anderen Lese/Schreibvorgänge der TAPs nicht passen.

Code: Alles auswählen

void SaveOptions ()
{
  TYPE_File *fp;
  TMS_Hdd_ChangeDir(QPFILESROOT);
  
  if (!TAP_Hdd_Exist(ININAME)) TAP_Hdd_Create(ININAME, ATTR_NORMAL);
  if ((fp = TAP_Hdd_Fopen(ININAME)))
  {
    char buffer[512];
    memset(buffer, 0, sizeof buffer);
    buffer[0] = xxx;
    buffer[1] = yyy;
    buffer[2] = ...;
    
    (void) TAP_Hdd_Fwrite(buffer, sizeof buffer, 1, fp);
    TAP_Hdd_Fclose(fp);
  }
}

// Optionen laden
void LoadOptions ()
{
  TYPE_File *fp;
  TMS_Hdd_ChangeDir(QPFILESROOT);

  if ((fp = TAP_Hdd_Fopen(ININAME)))
  {
    char buffer[512];
    if (TAP_Hdd_Fread(buffer, sizeof buffer, 1, fp) > 0) //Returncode ist Anzahl gelesene Bytes und nicht Boolean
    {
      xxx = buffer[0];
      yyy = buffer [1];
      ... = buffer[2];      
    }
    TAP_Hdd_Fclose(fp);
  }
  else SaveOptions();   // vermutlich existiert die Datei noch nicht         
}
Gruß,
Gerti

AW: Tap´s die ich für den SRP-2410 noch brauche

Verfasst: Mo 19. Jul 2010, 10:55
von FireBird
ibbi und ich haben viel Zeit in die FBLib gesteckt um Fehler abzufangen und diese stabil zu machen. Das bedeutet, Rückgabewerte auf Plausibilität zu prüfen und bei Problemen entsprechend zu reagieren. Z.B. wird das

Gerti hat geschrieben:

Code: Alles auswählen

    if (TAP_Hdd_Fread(buffer, sizeof buffer, 1, fp) > 0) //Returncode ist Anzahl gelesene Bytes und nicht Boolean

in der Lib so nicht gemacht, denn laut Funktionsdefinition ist der Rückgabewert die Anzahl der erfolgreich gelesenen Blöcke und nicht die Anzahl der Bytes, wie hier im Kommentar angegeben. Beim 2100er gab es in einer Beta den Bug, dass Bytes, also Anzahl der Blöcke * Blockgrösse retour gegeben wurde. Falls dies beim 2410 auch der Fall ist, melden einige Lib-Funktionen einen Fehler, obwohl die Ausführung eigentlich geklappt hat.

Kannst Du also bitte testen, was Dein obiges fread zurückgibt?

AW: Tap´s die ich für den SRP-2410 noch brauche

Verfasst: Mo 19. Jul 2010, 11:03
von Gerti
Hi!

Kann ich mal testen, aber wenn es grösser "0" ist, wird ja etwas gelesen...sollte das nicht im Prinzip als Rückmeldung ausreichen? Eine INI ist ja in der Grösse eigentlich nicht sonderlich dynamisch...

Gruß,
Gerti

AW: Tap´s die ich für den SRP-2410 noch brauche

Verfasst: Mo 19. Jul 2010, 11:04
von Gerti
Hi!

[quote="suppe"]in welchem Ordner muss ich das Tap denn jetzt ablegen ? Steht nicht in der readme und ich möchte es trotzdem ausprobieren.Danke.[/quote]

Wie jedes andere TAP auch in ProgramFiles oder AutoStart...

Gruß,
Gerti

AW: Tap´s die ich für den SRP-2410 noch brauche

Verfasst: Mo 19. Jul 2010, 11:09
von FireBird
Gerti hat geschrieben:aber wenn es grösser "0" ist, wird ja etwas gelesen...sollte das nicht im Prinzip als Rückmeldung ausreichen? Eine INI ist ja in der Grösse eigentlich nicht sonderlich dynamisch...

Das was Dein Code produziert, ist eigentlich keine INI, sondern eine binäre Datei. Eine Text-INI schwankt in der Größe schon erheblich.

Ich bin aber der Meinung, dass die Plausibilitätsprüfung nicht unnötig aufgeweicht werden sollte (Augen zu, wird scho passen). :wink: Wenn es wirklich nicht anders geht, kann man immer noch einen Workaround einbauen.

AW: Tap´s die ich für den SRP-2410 noch brauche

Verfasst: Mo 19. Jul 2010, 11:11
von buko
FireBird hat geschrieben:Das was Dein Code produziert, ist eigentlich keine INI, sondern eine binäre Datei. Eine Text-INI schwankt in der Größe schon erheblich.

Ich bin aber der Meinung, dass die Plausibilitätsprüfung nicht unnötig aufgeweicht werden sollte (Augen zu, wird scho passen). :wink: Wenn es wirklich nicht anders geht, kann man immer noch einen Workaround einbauen.


... aha ... :rolleyes: ... :cool:

AW: Tap´s die ich für den SRP-2410 noch brauche

Verfasst: Mo 19. Jul 2010, 11:14
von FireBird
buko hat geschrieben:... aha ... :rolleyes: ... :cool:

Wenn man denn weiß, was kaputt ist. :wink:

AW: Tap´s die ich für den SRP-2410 noch brauche

Verfasst: Mo 19. Jul 2010, 11:19
von Gerti
Hi!

[quote="FireBird"]Das was Dein Code produziert, ist eigentlich keine INI, sondern eine binäre Datei. Eine Text-INI schwankt in der Größe schon erheblich.[/quote]

Okay, wenn man eine Text-INI schreibt, dann mag das stimmen...habe ich bisher aber nicht gebraucht, da die Werte in der INI ja am TAP selbst eingestellt werden.
Bisher gab es da bei mir noch nie ein Problem mit...

Gruß,
Gerti

AW: Tap´s die ich für den SRP-2410 noch brauche

Verfasst: Mo 19. Jul 2010, 11:22
von FireBird
Und was machst Du, wenn Du eine strukturierte Datei lesen möchtest? Fread(buffer, x, sizeof(struct), file) und Du nicht weißt, ob Bytes oder Records gemeldet werden. Unterscheidung nach SysID? Dann wird es echt mühsam.

Schau mal bitte bei Gelegenheit nach dem Rückgabewert, vielleicht ist das ja gar nicht unser Problem.

AW: Tap´s die ich für den SRP-2410 noch brauche

Verfasst: Mo 19. Jul 2010, 11:40
von Gerti
Hi!

Wenn ich es so machen kann, dann ist der Rückgabewert "1"

Code: Alles auswählen

dword lsmf;
if ((fp = TAP_Hdd_Fopen(ININAME)))
{
   char buffer[512];
   if (lsmf = TAP_Hdd_Fread(buffer, sizeof buffer, 1, fp) > 0)
   {
    ...
   }
}
TAP_SPrint(LogBuffer,"%d",lsmf);
Gruß,
Gerti