Linux IPC testen

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

Linux IPC testen

Beitragvon bem31572 » Mittwoch 14. Juni 2017, 13:12

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!
Benutzeravatar
BlackJack
Moderator
Beiträge: 32986
Registriert: Dienstag 25. Januar 2005, 23:29
Wohnort: Berlin
Kontaktdaten:

Re: Linux IPC testen

Beitragvon BlackJack » Mittwoch 14. Juni 2017, 14:16

@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.
“Programs must be written for people to read, and only incidentally for machines to execute.” — Abelson & Sussman, SICP (preface to the first edition)
Benutzeravatar
DeaD_EyE
User
Beiträge: 66
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

Re: Linux IPC testen

Beitragvon DeaD_EyE » Samstag 17. Juni 2017, 15:15

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/ - Support für HL2-Server

Zurück zu „Raspberry Pi und Co.“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder