Riprendo qui un mio precedente intervento in altra discussione:
http://www.gambas-it.org/smf/index.php?topic=2072.msg24286#msg24286riconfermando che uno dei modi possibili per effettuare il passaggio di dati fra due o più programmi Gambas è quello di servirsi del sistema Alsa.
Alsa, essendo un sistema con funzioni universali, può dunque permettere anche lo scambio di dati fra programmi scritti in linguaggi diversi (ad esempio fra un programma scritto in C ed un programma scritto in Gambas).
La strategia è quella, per esempio, di servirsi della procedura per l'invio e la ricezione fra i "
Client" di Alsa dei dati Midi. L'uso di detta strategia per l'invio nel nostro caso di dati generici è possibile in quanto Alsa accetta valori numerici. Va sottolineato che potranno essere inviati tramite Alsa
soltanto valori di tipo
numerico. Poiché, però, è possibile ovviamente l'invio di una quantità indefinita di eventi, contenenti nostri valori numerici, e poiché questi, come è noto, una volta ricevuti possono essere trasformati in caratteri secondo il protocollo ASCII con la funzione
chr( ), sarà possibile al termine dell'intera procedura ottenere indirettamente anche delle stringhe di caratteri.
Come ho accennato nel mio intevento, sopra indicato, ho fatto delle prove che hanno avuto il risultato positivo che - tra l'altro - mi aspettavo. Vorrei condividere con voi questo esperimento allegando qui due semplicissimi programmini, chiamati:
Programma_1 e
Programma_2.
Scopo del test è quello appunto di provare la trasmissione di dati fa due applicativi Gambas tramite la loro connessione, in qualità di Client, ad Alsa. L'esperimento consiste nell'inviare da parte del
Programma_1 il valore numerico: 9999 all'altro programma Gambas,
Programma_2, il quale poi lo sommerà ad un'unità e lo rispedirà al
Programma_1, che a sua volta mostrerà il nuovo valore sul proprio form in una TextLabel.
Ricordare di lanciare prima il
Programma_1, e solo
dopo lanciare il
Programma_2, assicurandosi che non siano stati già comunque lanciati altri applicativi Client di Alsa (Softsynth, Sequencer, programmi audio, etc).
Questo argomento è più dettagliatamente trattato nella nostra WIKI:
http://www.gambas-it.org/wiki/index.php?title=Usare_ALSA_per_far_comunicare_due_o_pi%C3%B9_programmi_Gambas