le 07-06-2012 08:46 AM
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.
Résolu ! Accéder à la solution.
le 07-09-2012 02:43 AM
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
le 07-10-2012 02:47 AM
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.