W1-Bus Zugriff auf Files sehr langsam

  • Hallo Forum

    Ich bin seit zwei Monaten begeisteter Besitzer eines Raspi Mod. B+. Ich muss hier gar nicht erwähnen dass ich ein völliger Neuling bin... ;)

    Wie bei so vielen ist eins meiner ersten Projekte, den Raspi als Temperaturlogger zu verwenden. Das realisiere ich mit den bekannten DS1820 am W1-Bus. Die Temperatur filtere ich aus der jeweiligen w1_slave Datei, wie das so üblich ist. Grundsätzlich funktioniert das so alles prima! :thumbs1: Aber.... Der Zugriff auf die w1_slave Dateien (3 Sensoren), dauert ewig lange und variert zudem stark. Ich lese nacheinader die drei Dateien ein, was zwischen 5-10 Sekunden dauert! Es ist mir jetzt ein Rätzel wieso das so ist?! :( Ich habe zum Testen die drei Dateien mal kopiert und den Zugriff im Projekt auf diese drei kopierten Dateien "umverlinkt". So ist der Lesezugriff nicht mehr warnehmbar, so wie ich es mir auch wünsche. Sobald ich aber wieder auf die richtigen w1_slave Dateien verlinke bin ich wieder am selben Punkt und warte und warte und warte...
    Kennt jemand von Euch das Problem und kann mir weiterhelfen bez. mich aufklähren wieso das so ist?

    Versteht mich nicht falsch! Ich weiss, dass Temperaturgänge meist träge vonstatten gehen und somit keine Highspeed-Datenaufnahme im kHz-Bereich benötigen (wofür der DS1820 und der W1-Bus eh nicht ausgelegt ist). Ich frage die Temperatur vorerst zum testen alle 5 sec. ab. Später werde ich mit der Zykluszeit noch weiter nach oben gehen. Was ich aber verhindern will ist, das egal in welcher Zykluszeit ich Abfage, nicht das ganze Programm 10 Sekunden auf busy ist bis die Daten da sind. Zudem habe ich so einfach das Gefühl dass hier irgend was nicht sauber läuft... :daumendreh2:

    Die Verarbeitung der w1_slave Dateien habe ich eigendlich 1:1 gemacht wie im Tutorial von Blaster -> Kap. 4 schön beschrieben ist.

    Ich bedanke mich jetzt schon für alle Inputs!

    Grüsse Conolus

  • Hallo Conolus,

    herzlich Willkommen in unserem Forum!

    Deine Zeiten sind als normal zu bezeichnren.

    Die Slave-Dateien werden im Abstand von 0,75 bis etwas über 1 Sekunde aktualisiert. Ein schnelleres Abfragen der Werte bedeutet eben, dass das Auslesen so lange dauert.

    Bei 3 W1-Sensoren musst Du also Minimal-Zeiten von 3 Sekunden hinnehmen.

    Was Du mit Auslesen der kopierten Dateien machst, ist etwas ganz anderes. Diese haben mit W1 nichts zu tun. Sind die Werte denn hier aktueller? Oder werden sie auch im selben Takt (0,75 bis ca. 1 Sekunde) aktualisiert?

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Hallo Andreas

    Danke für dein schnelles Feedback!

    Das habe ich bemerkt, dass die Slave-Dateien relativ gemächlich aktualisiert werden! Aber verstehe ich den das mit diesen "Dateien" falsch? Ich bin davon ausgegangen, dass der W1-Bus die angehängten Sensoren in einem festen Zyklus abfrägt (Master-Slave-Verfahren??) und die Daten in diese w1_slave Dateien schreibt. Die Dateien sind dann als solches ganz "normal" oder? Wieso kann ich den diese z.B. nicht 100mal in der Sekunde auslesen? Klar da würde dann immer die selbe Temperatur dabei herauskommen, da die Datei wie du geschrieben hast nur alle 0.75 - 1 Sekunde aktualisiert wird. Aber genau das geht ja nicht...

    Oder kann es sein, dass ich mit dem Zugriff auf die "Datei" in Wirklichkeit direkt auf den W1-Bus zugreife und jeder Zugriff das Signal für den Bus ist um erst alle Sensoren abzufragen?

    Zu deiner Frage: Ich habe die Dateien nur einmal kopiert um zu sehen ob es evtl. an meinem Code selber liegt dass es so lange geht... Am Code kann es daher nicht liegen, den wenn ich diese kopierte Datei auslese welche ja vom Inhalt her idetisch ist wie die richtige w1_slave geht es ruck zuck!

    Einmal editiert, zuletzt von Conolus (2. Februar 2015 um 11:43)


  • Oder kann es sein, dass ich mit dem Zugriff auf die "Datei" in Wirklichkeit direkt auf den W1-Bus zugreife und jeder Zugriff das Signal für den Bus ist um erst alle Sensoren abzufragen?

    So ist es! Es sind keine wirklichen Dateien, deswegen nennt man sie auch virtuelle Dateien. Die gibt es nur, um dem Benutzer eine verständliche Schnittstelle zu den Bussen zu bieten.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!