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 NA 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;
} |
Partager