Gambas-it

Gambas3 => Programmazione => Topic aperto da: kicco - 09 Settembre 2012, 19:10:32

Titolo: [RISOLTO] Password di sudo
Inserito da: kicco - 09 Settembre 2012, 19:10:32
Ho cercato nel forum sul tema ed ho trovato una soluzione più volte proposta, ma applicandola al mio caso, (aprire una seriale), non mi ha dato risultato

Shell "echo " & password & " | sudo chmod  777 /dev/ttyUSB0"

dove ovviamente password è quella di amministratore UBUNTU 12.04
La porta non è accessibile. Sono sicuro della porta perchè aprendola da terminale funzia perfettamente( è un convertitore com/USB)
Dove sbaglio? :hard:

Grazie
Titolo: Re: Password di sudo
Inserito da: Picavbg - 09 Settembre 2012, 22:54:02
Ho cercato nel forum sul tema ed ho trovato una soluzione più volte proposta, ma applicandola al mio caso, (aprire una seriale), non mi ha dato risultato

Shell "echo " & password & " | sudo chmod  777 /dev/ttyUSB0"

dove ovviamente password è quella di amministratore UBUNTU 12.04
La porta non è accessibile. Sono sicuro della porta perchè aprendola da terminale funzia perfettamente( è un convertitore com/USB)
Dove sbaglio? :hard:

Grazie
Il comando che hai citato esegue solamente la modifica dei permessi sul file.  Non esegue certamente il suo mount.
i comandi che ti occorrono sono:
Codice: [Seleziona]
# modprobe -r usbserial: serve a caricare il modulo kernel relativo;
# mkdir /home/utente/mntpen: serve a creare la directory che andrà a costituire il punto di montaggio della pendrive;
#chmod 777 /home/utente/mntpen: abilita i permessi di registrazione, lettura,esecuzione a tutti gli utenti;
# mount -t vfat /dev/ttyUSB0 /home/utente/mntpen: esegue il mount per la rilevazione dei dati contenuti in essa.
Naturalmente il comando mkdir va fatto solamente una volta, mentre gli altri comandi puoi benissimo inserirli nella shell del tuo programma, se ho capito bene quello che vuoi dire.
 :ciao:
Titolo: Re: Password di sudo
Inserito da: vuott - 10 Settembre 2012, 00:09:54
Se l'apertura del file-device ti serve per leggere i dati grezzi provenienti dalla porta, allora a mio modestissimo avviso  :-X puoi provare questo:
Codice: gambas [Seleziona]

Private fl As File

Public Sub Button1_Click()

' Riconosce se il programma è stato già lanciato nell'attuale  
' sessione di sistema operativo. *Se non* è stato lanciato almeno  
' una volta, fa inserire la password di root per impostare il setUID  
' e consentire l'apertura del file protetto:  
      If Not Exist("/tmp/chmod.txt") Then  
        Exec ["gksu", "chmod 4777", "/dev/ttyUSB0"] Wait  
        File.Save("/tmp/chmod.txt", "c'è")  
      Endif  
      
' va a gestire il file-device:
     fl = Open "/dev/ttyUSB0" For Read Watch
      
End  
      
      
Public Sub File_Read()  
      
  Dim b As Byte  
      
' legge i dati "grezzi" provenienti dal file-device....
     Read #fl, b  
      
'...e li mostra in console:    
     Print b  
      
End
Titolo: Re: Password di sudo
Inserito da: kicco - 10 Settembre 2012, 08:38:19
Grazie ragazzi.
Vuott grazie, si hai capito bene è proprio quello che devo fare.
Appena riesco, provo :)
Titolo: Re: Password di sudo
Inserito da: kicco - 10 Settembre 2012, 20:18:55
Vuott, sei un mito :ok:
Funzia perfettamente!!
Titolo: Re: Password di sudo
Inserito da: vuott - 10 Settembre 2012, 20:24:35
Vuott, sei un mito :ok:

Sono pronto, dunque, per infrangere ogni limite terreno ed assurgere alla Santità  :angel:

   :rotfl:
Titolo: Re: Password di sudo
Inserito da: vuott - 10 Settembre 2012, 23:29:16
...comunque sia, ti conviene anche dare un'occhiata al programma-esempio: SerialPort 3.0.0.
Titolo: Re: Password di sudo
Inserito da: kicco - 11 Settembre 2012, 09:00:17
Eminenza,
è da lì che sono partito dal programmino SerialPort.

Invece volevo chiederti che differenza c'è tra leggere i dati dalla porta con l'istruzione

 fl = Open "/dev/ttyUSB0" For Read Watch 
 Read #fl, b   
Qui dici che i dati sono "grezzi"

o invece

 Read #SerialPort1, s, Lof(SerialPort1)
Dove i dati sono letti come byte
Titolo: Re: Password di sudo
Inserito da: vuott - 11 Settembre 2012, 10:56:52
Qui dici che i dati sono "grezzi"
Intendevo "grezzi" nel senso che sono appunto anch'essi un flusso di byte, senza algoritmi interpretativi intermedi (senza Funzioni che li manipolano), che passano per il file-device.  :-\
Dovrà poi essere il tuo programma ad intepretare e quindi a rendere concretamente utili quei byte, eliminandone, se il caso, anche alcuni non necessari o addirittura inopportuni ai fini del programma.

Per quanto riguarda il caso di SerialPort, vedo in quel programma che utilizza il componente gb.net e l'oggetto speciale SerialPort. Quindi, in fondo, si serve di una classe specifica.... che ti dà un aiuto.
Nel mio suggerimento, invece, i dati sono raccolti.... come natura crea :-X ...e pertanto il lavoro successivo alla raccolta è più complesso ed intricato... però i dati ce li hai proprio sotto-mano.

Anch'io ho fatto ampio uso di questo tipo di intercettazione dei dati grezzi nei miei programmi MIDI, riportandone poi una esposizione didattica nella WIKI: http://www.gambas-it.org/wiki/index.php/Alsa_e_Gambas:_Ricezione_senza_funzioni_ALSA#Ricezione_mediante_la_lettura_del_file-device_con_Open
Titolo: Re: Password di sudo
Inserito da: kicco - 11 Settembre 2012, 13:45:35
grazie,

allora io sto utilizzando i dati come natura crea..

Sulla porta trovo delle cose strane, poi racconterò, magari aprendo un'altra discussione perchè questa col titolo originale non c'entra niente ed è quindi poco utile a chi fa una ricerca. Sembra che i byte non arrivino, come dire uno dietro all'altro, ma dopo il primo ci sia una lunga (relativamente) pausa. I dati visti all'oscilloscopio invece sono in un unico pacchetto.

Va beh alla fine ho raccontato.....
Titolo: Re: Password di sudo
Inserito da: kicco - 11 Settembre 2012, 14:07:38
Scusa ho sbagliato:
in realtà ho usato l'oggetto SerialPort
Titolo: Re: Password di sudo
Inserito da: md9327 - 11 Settembre 2012, 14:58:43
grazie,
Sulla porta trovo delle cose strane... Sembra che i byte non arrivino, come dire uno dietro all'altro, ma dopo il primo ci sia una lunga (relativamente) pausa. I dati visti all'oscilloscopio invece sono in un unico pacchetto.

Mi pare strano... prova a stampare il tempo che corre tra un byte e il successivo, potrebbe anche darsi sia un problema con gli eventi...
Titolo: Re: Password di sudo
Inserito da: kicco - 11 Settembre 2012, 20:59:52
Ok, organizzo in maniera coerente tutte le informazioni e poi apro una nuova discussione.
datemi tempo!!! :)
Titolo: Re: Password di sudo
Inserito da: akrobaticone - 10 Novembre 2012, 23:12:09
Mi aggancio a questa discussione
Sto utilizzando KDE e la porta non si apre se non cambio i permessi al file ttyS
Con Gnome ciò non accadeva. ???
ho provato ad inserire il mio utente nel gruppo tty senza successo
Dal momento che non conosco in anticipo la porta seriale che andrò ad aprire, come posso fare per evitare troppi giri strani?
Il software che mi appresto a scrivere (mi auguro) verà utilizzato anche da altri che anno meno dimestichezza con queste procedure.
Titolo: Re: Password di sudo
Inserito da: milio - 11 Novembre 2012, 06:18:45
prova a metterti anche nel gruppo dialout....
Titolo: Re: Password di sudo
Inserito da: akrobaticone - 11 Novembre 2012, 11:59:45
perchè non ci ho pensato prima...
funziona, grazie mille