Discussions au sujet des autres produits NI

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

[LabWindows] tcp/ip hexa

Résolu !
Accéder à la solution

Bonjour

 

J'ai besoin d'envoyer / recevoir des requetes pour le protocole TCP / IP en utilisant LabWindows.

 

Mes requetes sont sous forme de chaînes hexadécimales: '00, 00, 01, 02, 00, FF, 00'.

Dans l'exemple donné par LabWindows, les données sont envoyées à une chaîne de caractères.

J'ai donc inseré un convertiseur Hexadécimal en ASCII.

Le souci est que quand je dois envoyer le caractere "NUL" ou soit 0x00 en hexadécimal,

mais il n'est tout simplement pas envoyé.

En gros quand je veux envoyer '00, 00, 01, 02, 00, FF, 00' j'envoie en faite: '01, 02, FF'.

 

Avez-vous une idée de comment je pourrais envoyer ce type de requete ?

 

D'avance, merci.

 

Antelme P. S.

 

Esque les fonctions d'émission / réception sera facilement intégré pour créer une DLL dans TestStand?

Parce que les fonctions sont appelées dans le CALLBACK je me demande si il est compatible.

0 Compliments
Message 1 sur 3
7 689 Visites

Bonjour Antelme,

 

Merci d'avoir posé votre question sur le forum National Instruments.

 

Je vous invite à lire l'article suivant : http://digital.ni.com/public.nsf/allkb/46DE184C803AB1A086256A370078ADF2

 

Ce document vous informe comment envoyer des caractère ASCII qui ne sont pas affichables comme le caractère null par exemple.

 

Pour votre deuxième question, TestStand inclut un dll adapter qui permet d'appeller celles-ci facilement à travers vos séquences.

Romain P.
National Instruments France

0 Compliments
Message 2 sur 3
7 679 Visites
Solution
Accepté par l'auteur du sujet anthelme
    char    transmitBuf[512] = {0};
    char    debugLenDonnee[2];
    int     i, lenDonnee;
    unsigned char a[256];
    char   *item;
                  
    /* Convertiseur "41,42,43,44" to string array "41" "42" "43" "44" to hex array 0x41 0x42 0x43 0x44 */   
    lenDonnee = strlen(transmitBuf)/3;  // aa,bb,cc,dd/0 
    sprintf(debugLenDonnee, "%d", lenDonnee );  
    i = 0;
    item = strtok(transmitBuf, ",");  
    while (item) {
        a[i] = strtol(item, NULL, 16);
        item = strtok(NULL, ",");
        i++;
    }                
    /* FIN convertiseur */
                
    if (ClientTCPWrite(g_hconversation, a,
                        lenDonnee, 1000) < 0)

 

Le probleme vennait de la concaténation des chaines de caractere, écrasant automatiquement le caractere 'NUL', en envoyant un tableau d'unsigned char ça fonctionne.

0 Compliments
Message 3 sur 3
7 667 Visites