Gambas-it

Gambas3 => Programmazione => Topic aperto da: ujlain - 08 Febbraio 2021, 12:42:03

Titolo: How to create a multiple process listener ?
Inserito da: ujlain - 08 Febbraio 2021, 12:42:03
What I am doing :-
Problem Statement :-
Sample skeleton project attached[/list]
Titolo: Re:How to create a multiple process listener ?
Inserito da: Gianluigi - 08 Febbraio 2021, 13:40:56
Can these wiki help you?

https://www.gambas-it.org/wiki/index.php?title=Usare_due_programmi_Gambas_contemporaneamente_mediante_Process,_lo_standard_Output_e_lo_standard_Input
https://www.gambas-it.org/wiki/index.php?title=Apertura_e_chiusura_di_un_processo_mediante_Process

Otherwise you have to wait for vuott, our industry expert  :)

 :ciao:
Titolo: Re:How to create a multiple process listener ?
Inserito da: vuott - 08 Febbraio 2021, 15:37:13
In via generale l'acquisizione (Lettura) di dati "eventuali", provenienti dalla gestione in Gambas di un processo, va effettuata con l'uso dell'Evento " _Read()" della Classe Process.
Al riguardo suggerirei la lettura di questo breve paragrafo:
    https://www.gambas-it.org/wiki/index.php?title=Lettura_dati_da_un_Processo_e_scrittura_dati_in_un_Processo#Lettura_dati_da_un_Processo

Nella fattispecie, proposta dal membro ujlain, va consentita la funzionalità di un unico Evento " _Read()" a più processi avviati e gestiti con un array di tipo "Process ".
Per ottenere ciò, si attribuirà ogni elemento dell'array di tipo "Process" ad un medesimo Gruppo di Eventi tramite il Metodo "Object.Attach()".

Di seguito, riprendendo parte del codice proposto da ujlain, leggeremo mediante la Classe Process i dati provenienti dai file-device della tastiera e del mouse attraverso un unico Evento " _Read()".
(Nel mio sistema i file-device attinenti alla tastiera ed al mouse sono: "/dev/input/event4"  e  "/dev/input/event5", e dovranno essere opportunamente e preliminarmente liberati dalla protezione !)

Codice: [Seleziona]
Private procId As New Process[2]


Public Sub bStart_Click()

  procId[0] = Shell "cat /dev/input/event4" For Read
  procId[1] = Shell "cat /dev/input/event5" For Read

  Object.Attach(procId[0], Me, "processo")
  Object.Attach(procId[1], Me, "processo")
   
End


Public Sub processo_Read()
 
  Dim b As Byte

  Read #Last, b   ' Legge i dati provenienti da un file-device
 
  If b == 0 Then Return
  Print b
 
End


Public Sub bQuit_Click()

  procId[0].Kill
  procId[1].Kill
  Me.Close

End
Titolo: Re:How to create a multiple process listener ?
Inserito da: cogier - 08 Febbraio 2021, 17:46:20
Usare un 'Task', o due, può essere il modo per farlo. Dai un'occhiata al programma allegato che trova tutti i file sul tuo computer in due modi diversi e tiene anche il tempo.

Using a 'Task', or two may be the way to do this. Have a look at the attached program that finds all the files on your computer in two different ways and keeps time as well.