[risolto]kplot e qscale si bloccano
-
la mia app ha una mainwidow e una serie di sub che si attivano da menù bar. Ogni sub serve da interfaccia per parti di applicazione. su una di queste utilizzo libmodbus all'interno di una funzione in una qtconcurrent per leggere la temperatura ambientale rilevata da uno strumentoche comunica appunto con un modbus.
Nella stessa gui visualizzo i dati in due formati con kplot e con qscale.Avolte però qscale e kplot si bloccano, mentre qcreator mi fa vedere che la funzione non è bloccata e continua a leggere dati dallo strumento.
in oltre nemmeno l'applicazione ha problemi, in fatti la stoppo la faccio ripartire, cambio gui etc etc...... quando si bloccano la kplot e qscale (è sempre la solita funzione che "disegna" e legge ivalori dallo strumento, basta minimizzare la mainwindow e riaprirla per vedere magicamente ripartire kplot e qscale.
in oltre a volte all'avvio dell'applicazione non viene "vista" la libreria kde...... che viene "vista" solo al sucessivo riavvio del programma.
sono su ubuntu 12.04. qt 4.8
-
bhè alla fine ho ovuto mettere un signal ed uno slot custom per passare un dato dalla funzione a kplot ...... in oltre kplot fà uso intenso del buffer che tende dopo poche plottate (oltre i 200-300 punti) a rallentare tutto il processo ..... uso già qtconcurrent per la generazione dei dati ..... non volevo creare un secondo qtconcurrent ..... così ho dovuto limitare il numero di punti per schermata (cancellando la schermata di kplot si svuota anche il suo buffer) ...... non ho capito come limitare o renere più veloce il buffer di kplot ma anche la gestione generale dei buffer di QT.
in oltre sul mio pc 2core era attivo l'hyperthread ..... che ho constatato fare a pugni con qtconcurrent ..... disabilitato l'hyperthread dal bios e aggiunto i signal tutto funziona decentemente.
1/2