Multifunction DAQ

cancel
Showing results for 
Search instead for 
Did you mean: 

Vérification qu'un sample est remplie

Bonjour,

 

Je bosse sur un logiciel, en C, utilisant la carte d'acquisition NI PCI-6220.

Mon problème est que j'ai créé une tache, j'ai configuré l'horloge comme ceci :

DAQmxErrChk (DAQmxCfgSampClkTiming(gTaskHandle,
                                NULL,
                                Frequence ,
                                DAQmx_Val_Rising,
                                DAQmx_Val_ContSamps,
                                SAMP_PAR_CHAN));

Frequence = 1600 et SAMP_PAR_CHAN = 1024

J'ai ensuite créé l'évènement :

            // Creation evenements
            DAQmxErrChk (DAQmxRegisterEveryNSamplesEvent(gTaskHandle,
                                    DAQmx_Val_Acquired_Into_Buffer,
                                    SAMP_PAR_CHAN,
                                    0,
                                    NI_Acquisition_RT,
                                    NULL));

 

J'ai bien évidement lancé la tache par la suite.

Mon problème est que j'ai cette erreur qui survient tout le temps au bout de plusieurs minutes :

Attempted to read samples that are no longer available.
The requested sample was previously available, but has since been overwritten.

Increasing the buffer size, reading the data more frequently, or specifying a fixed number of samples to read instead of reading all available samples might correct the problem.

 

J'ai vérifié, logiquement, un évènement devrais survenir toutes les 64 ms(et donc lancé NI_ACQUISITION_RT, fonction dans laquelle je récupère les 1024 données). Mais, des fois, l'évènement n'est pas lancé à temps, et l'erreur survient donc!

 

C'est pour quoi j'aimerais, après avoir récupéré le bloc de 1024 dans la fonction NI_ACQUISITION_RT, vérifié que le bloc suivant ne soit pas plein(et dans le cas où il est plein, je récupère directement les données, ce qui permettra d'éviter l'erreur si je ne me trompe pas?).

J'aimerais donc savoir si une fonction existe pour vérifié qu'un bloc de données est plein dans le buffer de la carte d'acquisition?

 

Merci d'avance pour vos réponses!

 

Ridbark

0 Kudos
Message 1 of 1
(3,083 Views)