Hi,
ich habe das mal durchprobiert.
Das Open blockiert nicht, stösst aber leider die Conversion nicht an. Ein select kommt trotzdem gleich zurück, aber wenn ich dann den read mache, ensteht dort die Wartezeit.
Dachte noch, dass ich vielleicht zu schnell bin, und hab an mehreren Stellen sleep(1) eingebaut, aber es bleibt dabei: das read() braucht 900ms
Eine option gibt es noch:
Wenn man
echo trigger >therm_bulk_read
im busmaster macht, dann werden die conversions bei ALLEN slaves gleichzeigt angestossen. (das ist eine recht neue Funktion, gibt es seit ca. Mitte 2020)
Man kann das in therm_bulk_read auch abfragen ob alle fertig sind und dann ohne Verzögerung die Resultate aus den einzelnen Devices holen.
Leider ist auch diese Property standardmässig "-rw-r--r-- root root" - kann man das beinflussen? Ein chmod hilft zwar kurzfristig, nach einem reboot ist das ja wieder weg.
Edit: Außerdem ist es wie gesagt recht neu - auf "buster" gibt es das - mein alter "stretch" Raspberry hat die property hingegen noch nicht.
Edit2: Hab es auch mit einem sysopen .. O_NONBLOCK probiert und dann ein dummy sysread von 0 Bytes angestossen - auch hier bleibt es dabei. Selbst der 0 Byte read blockiert.
Jörg