Hilfe bei Auswahl IPC (inter process communication)

OP #4914629
Lesenswert?

Hallo zusammen,
ich versuche gerade eine Anwendung zur Steuerung eines FU (via Serielle 
Schnittstelle und ModBus) auf dem Raspberry (raspbian) zu erstellen. 
Meine Idee ist es, eine Anwendung zur Kommunikation via serielle 
Schnittstelle zu schreiben, um etwaige gleichzeitige Zugriffe zu 
verhindern.

Da später mehrere Programme darauf zugreifen sollen (User via GUI oder 
shell, cronjob, deamon prozess, ...) wäre ich für ein paar Ideen zur 
(einfachen) Umsetzung dankbar.

Ein mögliches Szenario wäre, der User gibt eine Solldrehzahl vor, diese 
wird an den FU gesendet.
Später erkennt der deamon prozess eine Stromspitze im Netz und reduziert 
die Drehzahl (Gebläse).
Ein chron-job loggt alle 5 Minuten Drehzahl und andere Motorparameter 
(Ströme, Leistung, ...) des FU.

Dabei sollte es verschiedene Proiritäten geben.
1 -> Drezhalreduktion bei Stromspitzen (höchste Prio)
2 -> optimale Solldrehzahl durch Regelung (wird erst viel später 
umgesetzt)
3 -> Gewünschte Drehzahl des Users
5 -> Status des FU und Motorparameter abfragen (niedrigste Prio)


Ich würde das ganze in C programmieren.
Freue mich auf eure Vorschläge
#4914684
Lesenswert?

Stefan W. schrieb:
> Hallo zusammen,
> ich versuche gerade eine Anwendung zur Steuerung eines FU (via Serielle
> Schnittstelle und ModBus) auf dem Raspberry (raspbian) zu erstellen.
> Meine Idee ist es, eine Anwendung zur Kommunikation via serielle
> Schnittstelle zu schreiben, um etwaige gleichzeitige Zugriffe zu
> verhindern.
>
> Da später mehrere Programme darauf zugreifen sollen (User via GUI oder
> shell, cronjob, deamon prozess, ...) wäre ich für ein paar Ideen zur
> (einfachen) Umsetzung dankbar.

Wenn ich das richtig verstehe, möchtest Du eine Koppelung GUI <-> 
daemon? Dann mach eine (lokale / abstrakte) Socket-Kommunikation. 
SharedMemory oder MessageQueues geht natürlich auch, doch Socket ist 
wohl einfacher / universeller ...
#4920934
Lesenswert?

Hi,

ich kann dir da auch nur UnixDomainSockets empfehlen. Ebenso sind auch 
message queues möglich (habe ich beruflich schon einmal verwendet). Ganz 
wichtig ist bei dir aber auch die Frage, in welcher Programmiersprache 
möchtest du das machen? Da gibt es pro Sprache auch gewisse Hindernisse 
oder Probleme.
OP #4921031
Lesenswert?

Ich werde am Raspberry alles in C programmieren, wie oben erwähnt.

Zu Beginn werde ich alles lokal mit MessageQueues machen, da gibt es 
bereits eine Priorisierung. Sobald das alles gut läuft, wird das ganze 
um eine Socket-Schnittstelle erweitert, damit das ganze auch von anderen 
Rechnern im Netz bedient werden kann (die Fernsteuerung dann in .Net 
oder so programmiert, sind nur Win-Rechner, oder Java, oder ...)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren