Linux IPC testen

Python auf Einplatinencomputer wie Raspberry Pi, Banana Pi / Python für Micro-Controller
Antworten
bem31572
User
Beiträge: 1
Registriert: Mittwoch 14. Juni 2017, 13:00

Hallo zusammen,

da ich hier neu bin, würde ich mich kurz vorstellen:

Ich studiere im 7. Semester Elektro- und Informationstechnik und stehe kurz vor meiner Bachelor-Arbeit.

Nun zu meinem Anliegen:
Ich soll für meine Bachelor-Arbeit eine Testschnittstelle (Testapplication) entwickeln, mit der ich über ein Python-Testinterface die IPC (Interprozesskommunikation) über Shared Memory, Pipes eines Embedded Linux Systems testen kann.
Genauer gesagt soll getestet werden, ob "Nachrichten" von Apps richtig gesendet bzw. empfangen warden...
Hat jemand Erfahrungen in diesem Bereich?
Vielen Dank für Eure Hilfe!
BlackJack

@bem31572: Was denn nun Shared Memory oder Pipes? Pipes sind ja letztendlich nur Dateien. Beim Shared Memory müsstest Du schauen wie das implementiert ist.
Benutzeravatar
DeaD_EyE
User
Beiträge: 1011
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

Vielleicht hilft dir dieses Modul weiter: https://pypi.python.org/pypi/posix_ipc
Wie man das einsetzt, wirst du selbst herausfinden müssen.
Entweder du legst selbst eine named Pipe als Datei an ( http://www.linuxjournal.com/article/2156 ) oder arbeitest intern über Python mit os.pipe und os.fork, was aber nicht ganz einfach ist. Wenn du den Prozess forkst, kopiert wird eine Kopie des Prozesses erstellt. D.h. im Programmcode muss geprüft werden, ob es sich um den Chil-Prozess handelt oder den Parent-Prozess. Hier ein Beispiel: https://gist.github.com/jamiesun/3684885

Es gibt sicherlich noch bessere Beispiele. Eine weitere Möglichkeit sind unix-sockets.
Du könntest auch über message queues nutzen. ZMQ wäre z.B. eine ziemlich coole message queue.
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
Antworten