//lecture et decodage des données enregistrées (9 octects par label) f.seekg(321,std::ios::beg ); //On se positionne sur le premier octect du premier mot enregistré int posu; posu=f.tellg(); posu=posu+9; while(posu::iterator k(read.begin()); k!= read.end();++k) { m=0; sec=0; usec=0; t2=0; par=0; info *x = new info; unsigned char * const word = new unsigned char[9]; wordcopy_2(word,(*k).word); std::ostringstream label,c1,c2,c3,c4,c5; // label<(word[0]); //Conversion du label en octal std::istringstream l1(label.str()); // l1>>(*x).label; //On affecte la valeur du label a la variable label de la structure x std::bitset<8> b1(word[0]); // std::bitset<8> b2(word[1]); // std::bitset<8> b3(word[2]); // std::bitset<8> b4(word[3]); // std::ostringstream a1,a2,a3,a4; //Conversion en binaire des 4 octet du mot ARINC a1<>7;//Bit de parité (*x).parite=par; //On affecte la parité a la valeur par de la structure x (*x).test_par=test_parite(word,par); //On affecte le resultat du test de parité a la valeur test_par de la structure x (*x).ssm=(word[3]-128*par)>>5;//Calcul du SSM sdi_tmp=word[1]>>2; // (*x).sdi=word[1]-4*sdi_tmp; //Calcul du SDI m=word[7]>>2; //Minutes sec=word[6]>>4; //Première partie des secondes usec=(word[6]-16*sec)*puiss(256,2)+word[5]*puiss(256,1)+word[4]; // Calcul des µsec sec=sec+(word[7]-4*m)*16; //Calcul des secondes t2=word[8]*3600+m*60+sec; //Temps en secondes xxxxx,xxxxxx s (*x).sec=t2; //On affecte le nombre de sec a la valeur sec de la structure x (*x).misec=usec; //On affecte le nombre de µsec a la valeur misec de la structure x Decoded.push_back((*x)); //On insére x dans la liste L*/ delete x; delete[] word; } read.clear(); //On efface la liste lue dans le fichier