Newsgroup: it.hobby.elettronica.digitale
Titolo: FTDI ,USB mentre girano applicazioni

Ngiorno e Buon Anno
 
Ho messo assieme la bozza di una interfaccia grafica per evidenziare le 
acquisizioni di una specie di strumentino USB sotto forma di grafico con 
x=numero campioni e y=valore.Questo fa uso di un integrato della famiglia 
FTD  FT232R che a un certo punto trasmette caratteri a 38400 bps.
Il mio codice C su PC lavora ad eventi sulla Virtual COM che viene vista 
come una seriale qualsiasi,quando avviene un evento tipo serial packet 
ricevuto decodifico il pacchetto e stampo su grafico una linea congiungente 
al nuovo valore.
Ho notato che se non vi sono grossi task in corso ci metto 10 secondi circa 
per stampare 600 valori,se però aprò un portale web quale Tiscali,i 10 
secondi diventano 60 e oltre.
NB la connessione internet avviene tramite USB wireless key che si collega 
con un router
Il PC è un P4 2.8 GHz con 1 GB di RAM.
Domande
1)E' la condivisione dell'host USB la principale causa del 
rallentamento?Posso accertarlo?
2)C'è modo di dare "priorità" alla mia applicazione e di schedularla a 
intervalli brevi a costo di rallentare le altre?
 
Grazie 
 
 

 rallentamento?Posso accertarlo?
 
Prova a tenere aperto il Task Manager (linguetta Prestazioni) e 
controlla la % di cpu utilizzata.
 
Aspettiamo altri pareri.
 
hth
 

dimenticavo
 
puoi provare, spostando il pc o il router o stendendo un cavo lan sul 
pavimento, a collegare il pc al router via lan e vedere che succede ?

 secondi diventano 60 e oltre.
 
 
Stampare in che senso: visualizzare semplicemente il valore o 
visualizzare il grafico? Nel secondo caso come lo disegni?
 
Anche perché se comunque ti "stampa" tutti i valori significa che li ha 
ricevuti, non credo che il buffer seriale riesca a tenerti in memoria 
tutti i 600 pacchetti nel minuto che impieghi a svuotarlo.
 
Marco
 

 rallentamento?Posso accertarlo?
 
Prova a tenere aperto il Task Manager (linguetta Prestazioni) e
controlla la % di cpu utilizzata.
 
hai ragione,bastava pensarci,ho guardato solo la RAM,pensa che pirla,dopo 
provo
 
 

 pavimento, a collegare il pc al router via lan e vedere che succede ?
 
 
devo proprio spostare il PCvale la pena di farlo,hai ragione,provo
 
PS,grazie 
 
 

 cambia molto
 
 
Allora devi verificare dove avviene il collo di bottiglia.
Comincia con il disattivare il grafico e fai stampare solo un messaggio 
al termine della trasmissione, così ti rendi conto se ci sono ritardi lì 
(ma non credo).
 
A quel punto verifica cosa succede quando fai il grafico: lo disegni 
ogni volta da capo o aggiungi solo l'ultimo punto? Tieni anche conto che 
se ricevi un nuovo dato es. ogni 5 ms non ha senso aggiornare subito il 
grafico. Impegni inutilmente la CPU e comunque non fai in tempo a vedere 
il punto.
 
L'ideale è utilizzare un timer e aggiornare il grafico con i dati 
disponibili. L'intervallo lo scegli tu a seconda della velocità di 
visualizzazione che ti interessa avere (es. ogni 100 ms)
 
Marco

 rallentamento?Posso accertarlo?
 
Prova a tenere aperto il Task Manager (linguetta Prestazioni) e
controlla la % di cpu utilizzata.
 
Resta irrisoria anche quando la mia applicazione disegna lentamente
Manca la prova col cavo di rete
 
grazie ancora 
 
 

 Il PC � un P4 2.8 GHz con 1 GB di RAM.
 
Con un PC del genere puoi iniziare ad avere problemi di rallentamento
dovuti ad altri task con qualche decina o centinaio di Mbps. Darei
senz'altro la colpa al linguaggio/ambiente di sviluppo che stai usando,
cosa confermata dal fatto che 60 punti/s su un grafico xy fanno molto anni
90.
 
-- 
Fletto i muscoli e sono nel vuoto.

 grazie ancora
 
figurati
 
 

 pavimento, a collegare il pc al router via lan e vedere che succede ?
 
si,mi richiede un pò di tempo ma stasera provo e faccio sapere
 
grazie ancora 
 
 


Certo,mi chiedevo appunto se ci  fosse modo di migliorare e prevedere 
l'acquisizione da parte del PC in modo da avere il disegno più fluido e 
rappresentativo possibile
 
grazie ancora 
 
 

 90.
Devo ancora verificare se questi 60 punti/s sono causati da USB ,spero tanto 
non siano causati da una ventina di righe di codice,che  chiamano però 
funzioni preesistenti delle quali non conosco l'onerosità
 
 
grazie anche a te
