Gambas-it

Gambas3 => Programmazione => Topic aperto da: vuott - 10 Luglio 2012, 02:06:43

Titolo: Passaggio di dati numerici fra due programmi (non musicali) tramite Alsa
Inserito da: vuott - 10 Luglio 2012, 02:06:43
Riprendo qui un mio precedente intervento in altra discussione:
http://www.gambas-it.org/smf/index.php?topic=2072.msg24286#msg24286

riconfermando 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
Titolo: Re: Passaggio di dati numerici fra due programmi (non musicali) tramite Alsa
Inserito da: sotema - 10 Luglio 2012, 07:31:48
A questo punto mi aspettavo di vedere una rappresentazione di San Midi che illumina con la sua luce il discepolo Vuott, intento a far dialogare due eretici tramite alsa....

 :ok:
Titolo: Re: Passaggio di dati numerici fra due programmi (non musicali) tramite Alsa
Inserito da: md9327 - 10 Luglio 2012, 12:38:52
Infatti... forse non ha trovato il santino adatto...  :rotfl:
Titolo: Re: Passaggio di dati numerici fra due programmi (non musicali) tramite Alsa
Inserito da: vuott - 11 Luglio 2012, 00:05:44
A questo punto mi aspettavo di vedere una rappresentazione di San Midi che illumina con la sua luce il discepolo Vuott
 :ok:

Potete ammirare una rarissima immagine di San Midi, tratta dal codice medioevale chiamato "Codex midianus", che raffigura il Santo nell'atto di insegnare i principi del protocollo Midi a due discepoli, uno dei quali è Vuott.
Titolo: Re: Passaggio di dati numerici fra due programmi (non musicali) tramite Alsa
Inserito da: sotema - 11 Luglio 2012, 07:07:33
 :ok:
Titolo: Re: Passaggio di dati numerici fra due programmi (non musicali) tramite Alsa
Inserito da: md9327 - 11 Luglio 2012, 20:49:56
 ;D
Titolo: Re: Passaggio di dati numerici fra due programmi (non musicali) tramite Alsa
Inserito da: vuott - 30 Luglio 2012, 00:20:01
Ad ogni modo, segnalo - per chi vuole fare una prova circa l'argomento principale - anche questi due applicativi. In questo caso sono programmi musicali per la gestione Midi, ma che effettuano appunto fra loro molteplici scambi di dati mediante il sistema Alsa:
http://www.gambas-it.org/smf/index.php?topic=2237.0