Bonjour,

je dois récupérer des données depuis un comparateur Mitutoyo depuis un programme en C sous Labwindows CVI mais je ne récupère rien pour le moment

Quand je passe par un hyperterminal cela fonctionne bien. Pour récupérer les données il suffit d'envoyer "1" et CR et le comparateur renvoi sa donnée.

Je n'ai pas d'erreur remontée lorsque j'ouvre le port dans mon programme, non plus lorsque j'écris, mais je me fais visiblement sortir de la réception par le timeout.

Si quelqu'un a une idée qui pourrait me sortir de ma boucle de réflexion cela serait sympa...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
   int main (int argc, char *argv[])
{
 
	char tempBuf[512] = {0};
	char  Bufn[512]   = {0};
	int nn;
	int 	err;
 
	if (InitCVIRTE (0, argv, 0) == 0)
	return -1;
 
	if ((g_hmainPanel = LoadPanel(0, "Interface.uir", MAINPNL)) < 0)
	return -1;
	DisableBreakOnLibraryErrors();
 
	SetCtrlVal (g_hmainPanel, MAINPNL_AFFICHAGE, "Hello"); 
 
 
 
	//Init port com 
	err = OpenComConfig (1, "COM1", 9600, 0, 8, 1, 512, 512);
	if (err != 0) SetCtrlVal (g_hmainPanel, MAINPNL_AFFICHAGE, 
	"Erreur lors de l'init port COM \n"); 
 
 
	err =FlushInQ(1);
	if (err != 0) SetCtrlVal (g_hmainPanel, MAINPNL_AFFICHAGE, "Erreur en vidant le in port COM\n"); 
 
 
	err =FlushOutQ(1);
	if (err != 0) SetCtrlVal (g_hmainPanel, MAINPNL_AFFICHAGE, "Erreur en vidant le out port COM\n"); 
 
 
 
	sprintf(tempBuf,"1\n"); 
	ComWrt (1, tempBuf,strlen(tempBuf));
 
 
	nn=ComRdTerm (1, Bufn, 512, 10);   //				 
	Bufn[nn] =0;
 
	SetCtrlVal (g_hmainPanel, MAINPNL_AFFICHAGE, Bufn); 
 
 
 
 
 
 
	/* display the panel and run the UI */
	DisplayPanel (g_hmainPanel);
 
 
	//SetActiveCtrl (g_hmainPanel, MAINPNL_STRING);
	RunUserInterface ();
 
 
	/* Free resources and return */
	DiscardPanel (g_hmainPanel);
	CloseCVIRTE ();
	return 0;
}