PDA

Visualizza la versione completa : Interattività tra programmi in C e QT/QML


Velvettiere
12-01-2019, 13:23
Buongiorno a tutti,

ho creato una toolchain di sviluppo per crosscompilare app in QT/QML con qmake e in C classico con CMAKE, direttamente da computer HOST ubuntu, per raspberry come destinazione.

Come editor utilizzo QTcreator e mi sto trovando veramente bene. Sto creando applicazioni che gesticono varie operazioni con dei thread separati utilizzando posix thread. Funzionano alla grande. anche con il supporto grafico di QT utilizzando il QML per la gestione dell'HMI.

Avrei bisogno di informazioni legate a:

1 --> interattività tra applicazioni sviluppate direttamente su linux per raspberry, puramente in C e che vengono lanciate indipendentemente da shell ma che si devono scambiare dei parametri tra loro.

2 --> interattività tra applicazioni sviluppate direttamente su linux per raspberry, miste tra app in C e app grafica in QT/QML e che vengono lanciate indipendentemente da shell ma che si devono scambiare dei parametri tra loro.

Non capisco come questo possa essere fatto diversamente dall'utilizzare file di testo di appoggio ai quali accedono entrambi leggendo e scrivendo contenuto nelle rispettive porzioni.

E' possibile farlo in qualche maniera direttamente dalle rispettive app? C'è un modo per andare a chiedere magari il valore di una variabile che risiede nella prima app, dalla seconda app?

Grazie a tutti. Valerio

MItaly
12-01-2019, 20:06
Il termine che cerchi è IPC (inter-process communication); esistono numerosi metodi forniti dal sistema operativo - socket, pipe (anche solo come cattura di stdin/stdout), shared memory, message queues, DBus, come anche librerie di terze parti che semplificano molto (viene in mente zeromq), o anche banalmente passaggio di parametri da linea di comando nei casi più semplici. Usare file su disco in genere è inutilmente inefficiente, e pone tutta una serie di problemi per quanto riguarda la sincronizzazione.

Loading