Les événements logiciels fournissent un mécanisme de notification asynchrone pour un ensemble d'événements DAQ. Contrairement aux événements matériels, les événements logiciels ne nécessitent pas l'utilisation d'un thread pour attendre que des données soient disponibles. Grâce à la programmation événementielle, vous pouvez écrire une application qui peut continuer à travailler tout en attendant des données ; vous n'avez donc pas besoin de développer une application multithread.

NI-DAQmx supporte les événements logiciels suivants :

  • Événement Tous les N échantillons acquis dans le buffer—Se produit lorsque le nombre d'échantillons définis par l'utilisateur est transféré du périphérique au buffer du PC. Cet événement n'est valide que sur les périphériques qui supportent les tâches bufférisées.
    Remarque Pour certains périphériques (les périphériques des séries AO, E et M, par exemple), la taille du buffer doit être un multiple de l'intervalle d'échantillonnage si vous utilisez le DMA comme mécanisme de transfert des données. Par exemple, si la taille du buffer est 1000 échantillons, vous recevrez une erreur si vous spécifiez 103 pour cet événement logiciel. Par contre, vous ne recevrez pas d'erreur si vous spécifiez 100. Si vous utilisez IRQ comme méthode de transfert de données, la valeur n'a pas besoin d'être un multiple. Toutefois, avec IRQ, l'attribut/propriété Condition de requête de transfert de données peut affecter le moment auquel cet événement logiciel se produit.
  • Événement Tous les N échantillons transférés du buffer—Se produit lorsque le nombre d'échantillons définis par l'utilisateur est transféré du buffer du PC au périphérique. Cet événement n'est valide que sur les périphériques qui supportent les tâches bufférisées.
    Remarque Pour certains périphériques (les périphériques des séries AO, E et M, par exemple), la taille du buffer doit être un multiple de l'intervalle d'échantillonnage si vous utilisez le DMA comme mécanisme de transfert des données. Par exemple, si la taille du buffer est 1000 échantillons, vous recevrez une erreur si vous spécifiez 103 pour cet événement logiciel. Par contre, vous ne recevrez pas d'erreur si vous spécifiez 100. Si vous utilisez IRQ comme méthode de transfert de données, la valeur n'a pas besoin d'être un multiple. Toutefois, avec IRQ, l'attribut/propriété Condition de requête de transfert de données peut affecter le moment auquel cet événement logiciel se produit.
  • Événement Terminé—Se produit lorsque la tâche termine son exécution ou qu'elle s'arrête suite à une erreur. Les erreurs récupérables qui n'arrêtent pas la tâche ne déclenchent pas cet événement. De même, cet événement ne survient pas si vous appelez la fonction ou le VI Arrêter une tâche pour terminer l'exécution.
  • Événement Signal—Se produit lorsque le signal matériel spécifié se produit. Les signaux supportés sont l'événement Sortie compteur, l'événement Détection de changement, l'événement Échantillonnage terminé et l'horloge d'échantillonnage.