Downloadbar auf http://teso.de/web.teso_16_raspi/rp2ar.htm


Grüße
Code: Alles auswählen
var
SLPort: TStringList;
begin
SLPort := FindAllFiles('/dev', 'i2c*', False);
ComboBoxI2C.Items.Assign(SLPort);
SLPort.Free;
Code: Alles auswählen
var
SLPort: TStringList;
begin
SLPort := FindAllFiles('/dev/', 'i2c*', False); // "/" fehlt in '/dev'
ComboBoxI2C.Items.Assign(SLPort);
SLPort.Free;
Du hast falsch gelesen, die 2 Schnittstellen habe ich bei deinem Bild oben gesehen.wenn ich das richtig gelesen habe, dann gibt es 2 i2c-Schnittstellen.
Dies ist sehr gefährlich, wen keine I²C-Schnittelle vorhanden ist, dann hast du ein SIGSEV.... dann muss ich den ersten Eintrag ComboBoxI2C.Text := SLPort[0]; setzen.
Der Aufwand ist sehr klein, aber dafür wird sich kein Nutzer mit Abstürzen nerven.Der Aufwand ist mir zu groß. Eigentlich ist das "Programm" als Lernhilfe für mich (und andere) gedacht.
Code: Alles auswählen
procedure TForm1.FormCreate(Sender: TObject);
var
SLPort: TStringList;
begin
SLPort := FindAllFiles('/dev', 'i2c*', False); // "/" fehlt in '/dev'
ComboBox1.Items.Assign(SLPort);
SLPort.Free;
if ComboBox1.Items.Count > 0 then begin
ComboBox1.Text := ComboBox1.Items[0];
end else begin
ShowMessage('Kein I²C-Bus vorhanden, Programm wird beendet !');
Application.Terminate; // Wen nicht in Create, kann es auch Close sein.
end;
end;
Bei mir geht es auch ohne den "/" .// "/" fehlt in '/dev