Bonjour,
je suis un tres gros debutant en programmation a t elle point que je ne sais meme pas en quoi est le code que j ai ecrit est! Je sais que je develope sous le logiciel LabWindow/CVI.
Le but de mon programme est d'automatiser une mesure, je pilote par GPIB une source laser et un lambdametre. Voila je vous explique en detail qu'est ce que je doit faire.
Je cherche a mesurer le temps de stabilisation en longueur d'onde de ma source laser pour cela :
  • Je mesure la temperature de mon laser (TempAmbian).
  • J'allume mon laser + Depart chrono (T1)
  • Je mesure la longueur d'onde
  • Je reboucle la mesure de longueur donde juska ce que j'ai 2 valeur de longueur donde egale qui se suivent (3 valeur egal qui se suivent seraient l'ideal).
  • J'eteint mon laser + Fin du chrono (T2)
  • Calcul du temps de stabilisatioon (T=T2-T1)
  • Je mesure la temperature de mon laser (TempOsics)
  • Si TempOsics=TempAmbian, alors je recommence la mesure en longueur d'onde

J'effectue ces mesures dans un temps donne.

Si vou spouvez m'aider a finir ce code, je met en majuscule les commande que j'aimerai faire mais que j'arrive pas a transcrire
Enfin j'aimerai aussi, recuperer les valeur de temperature (TempOsics) de longueur d'onde (Lambda) et de temps (duree) dans un fichier excel

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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
int main (int argc, char *argv[])
{
	int Start, Duree, T1, T2;
	long entier;
	float L=0,Temp=0, Delta=1, *test, TempOsics=0, TempAmbian,a;
	int i=1, x, NbrMes=10000, j=NbrMes/2+1, z;
	int HandleB, HandleO, Lambda=1,pLambda=0 ;
	float buffer[20000];  
	char reponseT[50], question[50], duree[8];
	int Time=0, MesTime=5;
 
 
	if (InitCVIRTE (0, argv, 0) == 0)
		return -1;    /* out of memory */
 
//Init 
	HandleB = Initialise_Burleigh(4);
	HandleO = Initialise_hp(10);
	envoi_osics(HandleO,"CH2:PASS OPTO");	//autorise les fonction cachées
 
//Mesure TempAmbiante
	sprintf (question, "ch2:tmes?");
	envoi_question_osics(HandleO, question ,reponseT);
	sscanf (reponseT, "CH2:TMES=%f", &TempAmbian);
	printf("Temp Ambiante : %f \n",TempAmbian);	
 
	while (Time<MesTime) \\ J EFFECTUE TOUTE LES MESURE TANT QUE LE TEMPS DE FONCTIONNEMENT N’A PAS DEPASSER LA CONSIGNE QUE JE CHOISI{
//Mesure temperature Osics
	sprintf (question, "ch2:tmes?");
	envoi_question_osics(HandleO, question ,reponseT);
	sscanf (reponseT, "CH2:TMES=%f", &TempOsics);
	printf("Temp osics : %f \n",TempOsics);
 
 
	if (TempOsics == TempAmbian )// SI LA TEMPERATURE OSICS EST A LA TEMPERATURE AMBIANTE ALORS J EFFECTUE LES MESURE DE LONGUEUR D ONDE		{
		envoi_osics(HandleO,"CH2:ENABLE");	//allume LASER
		T1=GetSystemTime; \\START CHONO (T1)
		Delay(1);	//delay pour que le burleigh est le tps de lire une valeur
 
		// Si lambda different que lambda precedent on continue de mesurer
		while (Lambda!=pLambda)
			{
//Mesure de la longueur d'onde 
			L =  Lit_Burleigh(HandleB);	//lecture burleigh
			z =  (L*1000);	   //arrondi a lentier le plus proche
			Lambda= RoundRealToNearestInteger (z);
			buffer[i] = Lambda;	//converti float en char
			pLambda=buffer[i-1];
			printf("%i\n",Lambda);
			i++;
 
//Mesure de la temperature
			sprintf (question, "ch2:tmes?");
			envoi_question_osics(HandleO, question ,reponseT);
			sscanf (reponseT, "CH2:TMES=%f", &TempOsics);
			buffer[j]=TempOsics;
			j++;
			} 
 
		envoi_osics(HandleO,"CH2:DISABLE"); //eteint laser si lambda stable
		T2=GetSystemTime;  // FIN CHRONO T1
		Duree=T2-T1;
		printf("%i\n",Duree);
		}
 
	Delay(1);
		}
//creation fichier excel
//RECUPERE LES VALEUR DE TempOsics, Duree, Lambda
	ArrayToFile ("C:\\DFB\\mesure.xls", buffer, VAL_FLOAT, NbrMes, 2,
				 VAL_GROUPS_TOGETHER, VAL_GROUPS_AS_COLUMNS,
				 VAL_SEP_BY_TAB, 10, VAL_ASCII, VAL_TRUNCATE); 
 
	Delay(5);				 	
	return 0;
}
Je me rend compte que je demande beaucoup de chose, mais je suis vraiment tres embeter par ce programme ca fait deja @ semaine que je travail dessus et la je suis bloque.
Tous ce qu'il y a ecrit plus haut je l'ai fait de moi meme, je suis super fiere mais franchement je n'y connais rien
Alors MERCI a tous, je reste dispo pour fournir davantage d'info au cas ou ca ne serai pas clair.