software:qview:qview_6:qcl_library:vi10checkbufferready

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisione Revisione precedente
Prossima revisione
Revisione precedente
software:qview:qview_6:qcl_library:vi10checkbufferready [2025/01/13 12:15] – [Table] qem214software:qview:qview_6:qcl_library:vi10checkbufferready [2025/04/02 11:29] (versione attuale) qem214
Linea 1: Linea 1:
 ====== VI10CheckBufferReady ====== ====== VI10CheckBufferReady ======
- 
-PRELIMINARE- 
  
 Sostituisce [[software:qview:qview_6:qcl_library:vi10waitbufferreadyusingend|VI10WaitBufferReadyUsingEND]] Sostituisce [[software:qview:qview_6:qcl_library:vi10waitbufferreadyusingend|VI10WaitBufferReadyUsingEND]]
Linea 11: Linea 9:
 Funzione utilizzata per la gestione della funzionalità Vector Image (oggetto presente su alcune versioni di Qpaint). Funzione utilizzata per la gestione della funzionalità Vector Image (oggetto presente su alcune versioni di Qpaint).
  
-La funzione VI10CheckBufferReady viene utilizzata per poter ottenere lo stato di READY del buffer, utile __in un task a tempo__.\\+La funzione VI10CheckBufferReady viene utilizzata per poter ottenere lo stato di ''READY'' del buffer senza essere bloccante.
  
 Si usa all'interno di una macchina a stati per poter sapere quando procedere con lo stato successivo. Si usa all'interno di una macchina a stati per poter sapere quando procedere con lo stato successivo.
  
 ===== IMPLEMENTAZIONE ===== ===== IMPLEMENTAZIONE =====
- 
-FIXME 
  
 **VI10CheckBufferReady (awBuffer, gfState)** **VI10CheckBufferReady (awBuffer, gfState)**
Linea 25: Linea 21:
 ^ IN/OUT  ^ TIPO VARIABILE      ^ NOME DI ESEMPIO  ^ DIM                                                  || ^ IN/OUT  ^ TIPO VARIABILE      ^ NOME DI ESEMPIO  ^ DIM                                                  ||
 |  IN      ARRSYS /\\ ARRGBL  |  awBuffer        |  W   | Array che funge da buffer per istruzioni/dati  | |  IN      ARRSYS /\\ ARRGBL  |  awBuffer        |  W   | Array che funge da buffer per istruzioni/dati  |
-|  OUT    |  GLOBAL              gfState          F    Stato del buffer: 0 = pronto, 1 = occupato    |+|  OUT    |  GLOBAL              gfState          F    Stato del buffer: 0 = occupato, 1 = pronto    |
  
 === Esempio === === Esempio ===
Linea 31: Linea 27:
 //T_TIME00// //T_TIME00//
 <code qcl> <code qcl>
-MAIN: +;dichiarazione costanti 
-      IF gbSequenza EQ 1 +CONST
-             VI10DrawBuffer(awBuffer) ;Disegna il contenuto del Buffer +
-             gbSequenza = 2 +
-      ENDIF +
-      IF gbSequenza EQ 2 +
-             VI10WaitBufferReadyUsingEND(awBuffer) ;Attende la conclusione del disegno +
-             gbSequenza = 3 +
-      ENDIF +
-      IF gbSequenza EQ 3 +
-             glPippo = 1000                 ;(questa istruzione viene eseguita solo alla fine del processo di disegno) +
-             gbSequenza = 4 +
-      ENDIF +
-;....+
  
-END +BUFFPLOT_SIZE 500                        ;dimensione del buffer
-</code>+
  
-=== Note ===+;dichiarazione variabili 
 +GLOBAL 
  
-  * La funzione può interrompere l'esecuzione del task enel ciclo successivofarlo ripartire dalla prima istruzione.+gfState    F                               ;stato del buffer 
 +phase      B                               ;numero dello stato (macchina a stati) 
 + 
 +;dichiarazione array 
 +ARRGBL 
 + 
 +agwBuffPlotDemo11    W    BUFFPLOT_SIZE    ;buffer per VectorImage  
 + 
 +SUB DRAW 
 + SWITCH (phase)  
 + CASE 0 
 + NOP  
 + CASE 1 
 + VI10CheckBufferReady(agwBuffPlotDemo11gfState) 
 + VI10SetLayer (agwBuffPlotDemo110)  
 + VI10SetBackground (agwBuffPlotDemo11, COLOR.BLUE) 
 + VI10AddCls(agwBuffPlotDemo11)  
 + VI10SetLayer(agwBuffPlotDemo11, 0)  ;- LAYER 0 (zero), background 
 + gwFill = 1 
 + gwCoordX1 = 340 
 + gwCoordY1 = 50 
 + gwCoordX2 = gwCoordX1 + SIDE_SIZE 
 + gwCoordY2 = gwCoordY1 + SIDE_SIZE  
 + gwPenColor = COLOR.RED 
 +     VI10AddPen(agwBuffPlotDemo11, gwPenColor) 
 + VI10AddSet(agwBuffPlotDemo11, gwCoordX1, gwCoordY1) 
 + VI10AddRect(agwBuffPlotDemo11, gwCoordX2, gwCoordY2, gwFill)     
 + VI10DrawBuffer(agwBuffPlotDemo11)      
 + phase = 2  
 + CASE 2  
 + VI10CheckBufferReady(agwBuffPlotDemo11, gfState)  
 + IF NOT gfState 
 + VI10SetLayer(agwBuffPlotDemo11, 1) ;- LAYER 1 (one)  
 + gwCoordX1 = gwCoordX1 + OFFSET 
 + gwCoordY1 = gwCoordY1 + OFFSET 
 + gwCoordX2 = gwCoordX1 + SIDE_SIZE 
 + gwCoordY2 = gwCoordY1 + SIDE_SIZE  
 + gwPenColor = COLOR.GRAY 
 +     VI10AddPen(agwBuffPlotDemo11, gwPenColor) 
 + VI10AddSet(agwBuffPlotDemo11, gwCoordX1, gwCoordY1) 
 + VI10AddRect(agwBuffPlotDemo11, gwCoordX2, gwCoordY2, gwFill) 
 + VI10DrawBuffer(agwBuffPlotDemo11)      
 + phase = 3 
 + ENDIF  
 + CASE 3 
 +        VI10CheckBufferReady(agwBuffPlotDemo11, gfState) 
 +     IF NOT gfState 
 +     phase = 4 
 +     ENDIF  
 + CASE 4 
 +     phase = 0 
 + ENDSWITCH 
 +ENDSUB 
 +</code>
  
  • Ultima modifica: 2025/01/13 12:15