Echtezitkommunikation zwischen zwei Programmen auf selben Rechner



  • Hallo Leute,
    ich habe folgendes Problem. Ich habe zwei Applikationen (eine Softwareschnittstelle und ein Excelmakro).. Das Programm liefert mir bei bestimmten Ereignissen ein binäres Signal, wass ich mittels eines Cpp-Programm auslesen kann. Dieses Signal möchte ich weiter schicken an eine Excel tabelle.
    Mein erster Einsatz war recht simpel, allerdings funktioniert er nicht. ICh habe versucht im cpp-programm die bei einem Input eine 1 oder eine 0 in eine Text datei zu schreiben. Das tue ich ständig, da das Proramm nach dem ersten aufrug in einer dauerschleife läuft. So weit, so gut. Die Datei wird erzuegt und beschrieben. Auf der anderen Seite habe ich ein in VBA ein Makro geschrieben, welches diese Datei lesen soll und sozusagen "live" den Datenbestand aktualisieren soll. Ich denke aber das das Problem darin besteht, dass die Text-file, die das VBA-makro lesen soll bereits geöffnet ist und nicht gelesen werden kann. Gibt es da eine andere Möglichkeit, einen livestream zu realisieren? Wie wäre es über ein Protokoll?

    Überhauot wie ist es eigentlich, wenn ich möchte, dass zwei Prorgamme auf dem selben Rechner miteinander kommunizieren. Bei einem Controller hat man I/O die bestimmte Signale ein und Augeben, sodass man immer einen Trogger hat. Kann man sowas ähnliches auf am PC auf "Softwareebene" lösen. Hat das was mit Ports zu tun?

    Ich weiß das sind viele Fragen auf einmal, hoffe aber trotzdem, dass ihr mir da helfen könnt.

    Viele Grüße
    Peter



  • Ports haben mit Netzwerk Kommunikation zu tun. Du könntest ein Server Programm schreiben, welches die Signale sendet und ein Client Programm. Das Server Programm hört einen festgelegten Port ab, somit kannst du das Client Programm über localhost bzw. 127.0.0.1 + dem Port mit dem Server verbinden. Dann kann der Server über TCP/UDP + sockets packets senden mit entsprechended Daten.

    Das scheint mir aber nicht die optimale Lösung zu sein. Ich habe mal was von pipes gehört, kann Dir dazu aber nichts sagen. https://en.wikipedia.org/wiki/Pipeline_(Unix)#pipe_character



  • hardware schrieb:

    Ports haben mit Netzwerk Kommunikation zu tun. Du könntest ein Server Programm schreiben, welches die Signale sendet und ein Client Programm. Das Server Programm hört einen festgelegten Port ab, somit kannst du das Client Programm über localhost bzw. 127.0.0.1 + dem Port mit dem Server verbinden. Dann kann der Server über TCP/UDP + sockets packets senden mit entsprechended Daten.

    Das scheint mir aber nicht die optimale Lösung zu sein. Ich habe mal was von pipes gehört, kann Dir dazu aber nichts sagen. https://en.wikipedia.org/wiki/Pipeline_(Unix)#pipe_character

    Achja, eventuell kannst du es mit .csv machen. Oder es gibt schon eine fertige Lib mit der max Excel files in CPP lesen/schreiben kann.


Anmelden zum Antworten