Raspbian Autostart (.desktop) Programm findet keine Datein

Für sonstige Unterhaltungen, welche nicht direkt mit Lazarus zu tun haben

Raspbian Autostart (.desktop) Programm findet keine Datein

Beitragvon Thandor » 2. Nov 2016, 12:10 Raspbian Autostart (.desktop) Programm findet keine Datein

Hallo,

ich habe ein Programm entwickelt, welches auf einem RaspberryPi laufen und beim Booten automatisch gestartet werden soll.
Das Programm ist ein Desktopanwendung.

Für den Autostart habe ich in "~/.config/autostart/" eine Datei "kasse.desktop" angelegt.
Code: Alles auswählen
 
[Desktop Entry]
Name=Kasse
Comment="simple Cashdesk"
Type=Application
Path=/home/pi/Projekte/Kasse/
Exec=/home/pi/Projekte/Kasse/Registrierkasse
#Terminal=false
 


mein Programm wird nun auch nach dem Booten gestartet aber meine .json-Datein werden nicht gefunden. Die Fehlermeldung lautet:
Fehlermeldung.png


Die Dateien liegen aber im angegebenen Pfad:
Konsole.png


was mache ich falsch?

Code: Alles auswählen
 
 
//-----------------------------------------------------------------------------
procedure TKasse.FormCreate(Sender: TObject);
//-----------------------------------------------------------------------------
var i                               : Integer;
    json, jsonArticles, jsonArticle : TJSONData;
    jsonContent                     : String;
    Content                         : String;
    jsonFile                        : TEXT;
begin
 
  self.lbVersion.Caption := 'Version: ' + VERSION;
 
  // Read json-file.
  AssignFile(jsonFile, 'asset/articles.json');
  try
    Reset(jsonFile);
    while not eof(jsonFile) do begin
      Readln(jsonFile, Content);
      jsonContent := jsonContent + Content;
    end;
    CloseFile(jsonFile);
 
  except
    on E: EInOutError do begin
      Application.MessageBox(
        PChar(
          'Die Datei "' +
          ExtractFilePath(ParamStr(0)) +
          'asset/articles.json" konnte nicht gelden werden.'
        ),
        'Schwerwiegender Fehler', MB_ICONASTERISK + MB_OK);
      Rewrite(jsonFile);
      CloseFile(jsonFile);
    end;
  end;
 
  ...
 
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Thandor
 
Beiträge: 113
Registriert: 30. Jan 2010, 18:17
Wohnort: Berlin
OS, Lazarus, FPC: Windows 10 64Bit/ lazarus 1.6 mit FPC 3.0.0 (32Bit) | 
CPU-Target: 64Bit
Nach oben

Beitragvon itjump » 2. Nov 2016, 12:22 Re: Raspbian Autostart (.desktop) Programm findet keine Date

Gib mal ein
Code: Alles auswählen
ls -la /home/pi/Projekte/Klasse/asset
und poste das Ergebnis hier. Vielleicht hast du die entsprechenden Rechte nicht gesetzt. Wobei normalerweise zumindest Leserechte gesetzt sind.
Dieses Forum hier ist Dreck
itjump
 
Beiträge: 179
Registriert: 13. Okt 2016, 17:35
Wohnort: Winnenden

Beitragvon Thandor » 2. Nov 2016, 12:45 Re: Raspbian Autostart (.desktop) Programm findet keine Date

Code: Alles auswählen
 
pi@raspberrypi-touch:~ $ ls -la /home/pi/Projekte/Kasse/asset/
insgesamt 28
drwxr-xr-x 5 pi pi 4096 Okt 29 18:53 .
drwxr-xr-x 5 pi pi 4096 Nov  2 12:11 ..
-rw-r--r-- 1 pi pi 2054 Okt 29 16:52 articles.json
drwxr-xr-x 2 pi pi 4096 Okt 29 18:53 backup
drwxr-xr-x 2 pi pi 4096 Okt 23 14:31 images
drwxr-xr-x 2 pi pi 4096 Okt 29 18:53 staff
-rw-r--r-- 1 pi pi 1522 Okt 29 17:11 staff.json
 
Thandor
 
Beiträge: 113
Registriert: 30. Jan 2010, 18:17
Wohnort: Berlin
OS, Lazarus, FPC: Windows 10 64Bit/ lazarus 1.6 mit FPC 3.0.0 (32Bit) | 
CPU-Target: 64Bit
Nach oben

Beitragvon itjump » 2. Nov 2016, 12:57 Re: Raspbian Autostart (.desktop) Programm findet keine Date

OK, die Leserechte sind in jedem Fall gegeben. Ich kenne mich mit Jason nicht gut genug aus, aber man dürfte ja wohl keine Ausführrechte benötigen.
Aber ich denke ich weiß wo der Fehler liegen könnte. Um das File Einzulesen gib mal den Absoluten Pfad an, oder mach das über
Code: Alles auswählen
getenvironmentvariable('HOME')
denn soweit ich das Richtig verstehe, hast du dein Programm ja in einem Unterverzeichnis von home und damit ist die relative Pfadangabe hinfällig und wird nicht Funktionieren. Korrigiere mich gerne, wenn ich das Falsch verstanden habe :D
Dieses Forum hier ist Dreck
itjump
 
Beiträge: 179
Registriert: 13. Okt 2016, 17:35
Wohnort: Winnenden

Beitragvon Thandor » 2. Nov 2016, 13:05 Re: Raspbian Autostart (.desktop) Programm findet keine Date

Hallo Danke,

ich habe mir meine Pfadangaben noch mal genauer angesehen:
Code: Alles auswählen
AssignFile(jsonFile, 'asset/articles.json');

hier also ein relativer Pfad

und in der Fehlermeldung:
Code: Alles auswählen
 
PChar(
          'Die Datei "' +
          ExtractFilePath(ParamStr(0)) +
          'asset/articles.json" konnte nicht gelden werden.'
        )
 

hier habe ich ExtractFilePath(ParamStr(0)) drin, der ja den richtigen Pfad ausgibt.
Manchmal sieht man den Wald vor lauter Bäumen nicht.

Um solche "Verwirrung" in Zukunft zu vermeiden habe ich jetzt eine Variable für den Pfad angelegt und nutze diese jetzt für das Assign und die Fehlermeldung.
Code: Alles auswählen
 
  jsonPath := ExtractFilePath(ParamStr(0)) + 'asset/staff.json';
  AssignFile(jsonFile, jsonPath);     
 


Code: Alles auswählen
 
  except
    on E: EInOutError do begin
      Application.MessageBox(
        PChar(
          'Die Datei "' +
          jsonPath +
          '" konnte nicht gelden werden.'
        ),
        'Schwerwiegender Fehler', MB_ICONASTERISK + MB_OK);
      Rewrite(jsonFile);
      CloseFile(jsonFile);
    end;     
 


jetzt startet das Programm auch so wie es soll mit Autostart.
Thandor
 
Beiträge: 113
Registriert: 30. Jan 2010, 18:17
Wohnort: Berlin
OS, Lazarus, FPC: Windows 10 64Bit/ lazarus 1.6 mit FPC 3.0.0 (32Bit) | 
CPU-Target: 64Bit
Nach oben

Beitragvon itjump » 2. Nov 2016, 13:15 Re: Raspbian Autostart (.desktop) Programm findet keine Date

Hab ich es doch gewusst. Mir geht das oft genauso, das ich irgendwas beim Programmieren vergesse und dann den Fehler einfach nicht finde, aber ich bin viel besser darin als früher, weil ich meist ohne Debugger die Fehler suche.
Dieses Forum hier ist Dreck
itjump
 
Beiträge: 179
Registriert: 13. Okt 2016, 17:35
Wohnort: Winnenden

• Themenende •

Zurück zu Dies und Das



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

porpoises-institution
accuracy-worried