Datenzugriff über Netzwerk mit Python

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Xodarap93
User
Beiträge: 6
Registriert: Montag 12. März 2018, 13:31

Donnerstag 22. März 2018, 08:23

Guten Tag,
ich habe mit Hilfe der Forensuche und Google keine Lösung zu meinem Problem gefunden, was aber auch daran liegen kann, dass ich noch nicht zu 100% weiß worauf ich wirklich hinaus will.

Ich erkläre mal meine Situation:

Ich habe 2 Prozessoren mit Debian 9 am laufen.
Beide habe ich über eine Ethernetschnittstelle und statische IP's verbunden.
Geschichten wie UDP und SSH laufen auch bereits und ermöglichen mir eine Kommunikation und remot Access zwischen den beiden.

Mein Vorhaben:
Ich werde hauptsächlich auf Prozessor 1 arbeiten.
Teilweise muss ich aber auch auf Informationen von Prozessor 2 zugreifen. Konkret geht es da zum Beispiel um GPIO schnittstellen die ich einlesen möchte. Deren Wert ist zum Beispiel in dem File "/sys/class/gpio/gpio1967/value" gespeichert.
Mein wunsch ist nun ein python script auf Prozessor 1, welches den Wert der oben genannten Datei auf Prozessor 2 einlesen kann.
Ich möchte ungern den entsprechenden Ordner freigeben, da es bis zu mehrere hundert Datein werden können die sich an verschiedensten Orten befinden.

Ich hoffe also, dass ich in Python einfach den Ordnerpfad etwa so ähnlich angeben kann: "192.168.0.10://sys/class/gpio/gpio1967/value"
Ist so etwas möglich? Wenn ja, nach welchem Stichwort sollte ich am besten Ausschau halten?

Beste Grüße
Xodarap93
User
Beiträge: 6
Registriert: Montag 12. März 2018, 13:31

Donnerstag 22. März 2018, 08:44

Schonmal vorwer, aktuell versuche ich es mit NFS, ich melde mich falls ich erfolg damit habe.
Bis dahin bin ich natürlich für andere Hinweise offen :)
__deets__
User
Beiträge: 3087
Registriert: Mittwoch 14. Oktober 2015, 14:29

Donnerstag 22. März 2018, 08:59

„Prozessor“ bezeichnet üblicherweise die CPU. Nicht einen Computer, so wie es bei dir klingt.

Was dir da vorschwebt geht theoretisch über SSH. Aber das wird dann sehr, sehr langsam und zb Ereignisse von gpios bekommst du nicht.

Stattdessen würde ich dir ein Vorgehen wie bei pigpio empfehlen. Einen echten Server, der mittels eines sockets eine Verbindung vom anderen Rechner erlaubt.
Xodarap93
User
Beiträge: 6
Registriert: Montag 12. März 2018, 13:31

Donnerstag 22. März 2018, 09:08

In der Tat verschwimmt bei mir die Begriffsbezeichnung.

Tatsächlich habe ich ein Board mit 2 CPUs/Prozessoren. Diese arbeiten erstmal unabhängig von einander und ich habe auf beiden ein seperates Debian 9 laufen.
Nun muss ich für meinen Einsatz leider von dem einen Betriebssystem auch Daten auf dem anderen Betriebssystem einlesen.
Tatsächlich muss es, zumindest aktuell für die GPIOs auch gar nicht schnell sein.
Es geht mir um Funktionstests. Das könnte zum Beispiel so aussehen:
GPIO 1967 ist als Input an Prozessor 2
GPIO 114 ist als Output an Prozessor 1

Wird GPIO 114 auf High gesetzt wird eine bestimmte Funktionalität aktiviert welche unter anderem den GPIO 1967 auch auf High setzt.
Das möchte ich dann in dem Test überprüfen. Wenn ich den Status erst nach sekunden erfragen kann ist das erstmal verkraftbar.
Natürlich trotzdem ein guter Hinweis, denn ich weiß noch nicht wohin die Reise geht. Eventuell wird es Situationen geben in denen ich doch geschwindigkeit brauche.
Benutzeravatar
DeaD_EyE
User
Beiträge: 202
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

Donnerstag 22. März 2018, 10:11

Dann lässt du den pigpioserver auf beiden Systemen laufen, auch wenn diese physisch auf einem Board sind.
Dann kann das erste System den Server des zweiten nutzen und das zweite System den Server des ersten Systems.
Über Kreuz halt.
sourceserver.info - sourceserver.info/wiki/ - Support für HL2-Server
Xodarap93
User
Beiträge: 6
Registriert: Montag 12. März 2018, 13:31

Donnerstag 22. März 2018, 14:34

Ich habe nun eine Lösung per SSHFS zum laufen bekommen.

Hauptsächlich bin ich dabei mit folgender Anleitung vorgegangen:
https://www.howtoforge.de/anleitung/rem ... einhangen/

Ich habe auf Prozessor 1 nun einen Ordner /fs und auf diesen mounte ich den Ordner / vom Prozessor 2 (also sämtliche Ordner und Dateien sind erreichbar).
Das mounten passiert direkt beim booten und ich habe immer Zugriff auf alle daten.


Pigpio werde ich mir trotzdem mal schonmal angucken. Ich befürchte irgendwie, dass die aktuelle Lösung bald an ihre grenzen kommen wird.


Besten Dank aber für die schnelle Hilfestellung.
Antworten