From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabWindows/CVI

cancel
Showing results for 
Search instead for 
Did you mean: 

ComCallback

Bonjour,

avec CVI6, sur un port serie, je cherche a attraper une trame récurente (toutes les 100ms a peu prés) qui commence toujours pas une entete de 2 octets (0xFF, 0x00), et qui peut avoir une longueur variables.

j'ai voulut donc utliser la fonction ComCallback qui a premiere vue semble intérréssante, sauf qu'apriori on ne peut triguer que sur un seul octet (avec le masque LWRS_RXFLAG).

donc j'ai voulu ruser en utilisant le trig par nombre d'octet (en admettant que je connaisse un peu la longueur de ma trame) et enfin rechercher dans le buffer la position de l'entete pour tout remettre dans le bon ordre. L'inconvéniant de cette méthode c'est que je rate parfois des trames et donc j'ai quelques pertes.

en fait si le masque LWRS_RXFLAG pouvait prend
re plusieurs octet au lieu d'un ça serait plus simple.

j'aimerais avoir votre avis et si vous avez de bonne idées je suis preneur 😛
0 Kudos
Message 1 of 2
(2,452 Views)
Pardonnez encore mon attemtp au Fran�ais

Les biblioth�ques des commications CVI sont vraiment limit�es
en termes de processus et responce vraiment � grande vitesse de
volont� de rappel de service de COM seulement apr�s qu'une certaine
quantit� de donn�es ait �t� re�ue dans les m�moires tampons de
mat�riel, de ce fait vous ralentissant de processus.

Alors ayant dit toute la cela vous devez �tre s�r que votre
dispositif s�quentiel peut r�pondre ce fasrt de toute fa�on. Il y a un certain temps de r�ponse et au moins l'heure de baudtare de
consid�rer pendant des applications � grande vitesse, i.e. si vous demandez des donn�es de votre dispositif s�quentiel vous
devez faire le n�cessaire pour le retarder dans le responce apr�s
la demande plus les limitations sur les biblioth�ques CVI
d'entretenir les demandes s�quentielles.

Dans mon exp�rience si vous allez beaucoup plus rapidement que 100 �
250ms vous un joli beaucoup pilotant le syst�me l�-dessus est des
limites et vous risquez des donn�es perdantes. En ce moment vous devriez regarder en utilisant des fonctions de WIN32
SDK et �crire vos propres sous-programmes s�quentiels uing des
appels de SDK.


The CVI commications libraries are really limited in terms of really high speed processes and com callback will only responce after a certain amount of data was received in the hardware buffers, thus slowing down you process.

Then having said all of that you have to be sure that your serial device can respond that fasrt in any case. There is a certain response time and at least the baudtare time to consider during high speed applications, i.e. if you request data from your serial device you have to make provision for the delay in responce after the request plus the limitations on the CVI libraries to service the serial requests.

In my experience if you go a lot faster than 100 to 250ms you a pretty much driving the system on it's limits and you risk losing data. At this point you should look at using WIN32 SDK functions and write your own serial routines uing SDK calls.
Jattie van der Linde
Engineering Manager, Software & Automation
TEL Magnetic Solutions Ltd
0 Kudos
Message 2 of 2
(2,452 Views)