Index: trunk/Poubelle/archediab.old/archediab.sources/c/acquisition_archeops.c
===================================================================
--- trunk/Poubelle/archediab.old/archediab.sources/c/acquisition_archeops.c	(revision 649)
+++ trunk/Poubelle/archediab.old/archediab.sources/c/acquisition_archeops.c	(revision 651)
@@ -339,4 +339,6 @@
 //  -------------     block type 8 : block_bolo   ------------------    ------------
 //-----------------------------------------------------------------------------------------	
+#define  temps_UT(block)	(8.0609925+0.00011673636*(double)(block))
+
 void	traite_block_bolo(block_type_bolo*	blk)
 {
@@ -354,4 +356,5 @@
 //printf("numblock=%d  sec=%d \n",num_block_local,secondes);
 ecritD(fenetre_controle,con_time,"%d",secondes);
+ecritD(fenetre_controle,con_time,"%6.3f",temps_UT(num_block_local));
 
 nb_coups= gg->reglage.horloge.nb_mesures/2 - gg->reglage.horloge.temp_mort;
Index: trunk/Poubelle/archediab.old/archediab.sources/c/arcunit.c
===================================================================
--- trunk/Poubelle/archediab.old/archediab.sources/c/arcunit.c	(revision 651)
+++ trunk/Poubelle/archediab.old/archediab.sources/c/arcunit.c	(revision 651)
@@ -0,0 +1,312 @@
+
+#include "manip.h"      
+#include "archeops.h"
+#include "arcunit.h"
+
+/**************************************************************************************/
+/*                                                                                    */
+/*          programme  contenant les conversions en mesure physique                   */
+/*                                                                                    */
+/*                                                                                    */
+/*                                                                                    */
+/**************************************************************************************/
+
+
+/* ----------------   block  dilution     ---------------------------------------------  */
+
+
+int	voyant_EVO(block_type_dilution*	blk)	{return((blk->switch_dil&switch_EVO)?0:1);}
+int	voyant_EVF(block_type_dilution*	blk)	{return((blk->switch_dil&switch_EVF)?0:1);}
+int	commande_EVO(block_type_dilution*	blk)	{return((blk->switch_dil&vanne_EVO)?0:1);}
+int	commande_EVF(block_type_dilution*	blk)	{return((blk->switch_dil&vanne_EVF)?0:1);}
+int	commande_EVB(block_type_dilution*	blk)	{return((blk->switch_dil&vanne_EVB)?0:1);}
+int	commande_EVV(block_type_dilution*	blk)	{return((blk->switch_dil&vanne_EVV)?0:1);}
+
+
+// les pressions et debits metres des injections de la dilution
+double pression_entree_3He(block_type_dilution*	blk)	
+		{return(40. *	val_multiplex(blk->ADC_dil[ p_R3])  -1.6);}	//	200 bars pour 5V et 1.6 bar d'offset
+
+double debit_3He(block_type_dilution*	blk)	
+		{return(2. 	* 	val_multiplex(blk->ADC_dil[ d_3He]) );}		//  10 MICRO MOLES  pour  5V
+
+double pression_sortie_3He(block_type_dilution*	blk)	
+		{return(20. 	*	val_multiplex(blk->ADC_dil[ p_C3]) );}		//	100 bars pour 5V
+	
+double pression_entree_4He(block_type_dilution*	blk)	
+		{return(40. 	*	val_multiplex(blk->ADC_dil[ p_R4])) ;}		//	200 bars pour 5V
+
+double debit_4He(block_type_dilution*	blk)	
+		{return(8. 	* 	val_multiplex(blk->ADC_dil[ d_4He]))	 ;}	//  40 MICRO MOLES  pour  5V
+//	,4. 	* 	val_multiplex(blk->ADC_dil[ d_4He])		//  20 MICRO MOLES  pour  5V
+
+double pression_sortie_4He(block_type_dilution*	blk)	
+		{return(20. 	*	val_multiplex(blk->ADC_dil[ p_C4]) );}		//	100 bars pour 5V
+	
+
+
+double pression_air_vanne(block_type_dilution*	blk)	
+		{return(20.*val_multiplex(blk->ADC_dil[ p_air]));}
+		
+double pression_pompe_charbon(block_type_dilution*	blk)	
+		{return(20.*val_multiplex(blk->ADC_dil[ p_charb]));}
+		
+
+double pression_membranne(block_type_dilution*	blk)	
+		{return(0.2*val_multiplex(blk->ADC_dil[ p_memb]));}
+		
+		
+double pression_externe(block_type_dilution*	blk)	
+		{return(0.2*val_multiplex(blk->ADC_dil[ p_haut]));}
+
+			
+		
+double tension_pile_10T(block_type_dilution*	blk)	
+		{return(2.03*val_multiplex(blk->ADC_dil[ p_10T]));}
+				
+double tension_pile_p18D(block_type_dilution*	blk)	
+		{return(3.90*val_multiplex(blk->ADC_dil[ p_p18D]));}
+				
+double tension_pile_m18D(block_type_dilution*	blk)	
+		{return(3.90*val_multiplex(blk->ADC_dil[ p_m18D]));}
+				
+double tension_pile_10B(block_type_dilution*	blk)	
+		{return(2.03*val_multiplex(blk->ADC_dil[ p_10B]));}
+				
+double tension_pile_p18B(block_type_dilution*	blk)	
+		{return(3.90*val_multiplex(blk->ADC_dil[ p_p18B]));}
+				
+double tension_pile_m18B(block_type_dilution*	blk)	
+		{return(3.90*val_multiplex(blk->ADC_dil[ p_m18B]));}
+				
+double tension_pile_Ch(block_type_dilution*	blk)	
+		{return(3.8*val_multiplex(blk->ADC_dil[ p_Ch]));}
+
+
+				
+int switch_pile_5(block_type_dilution*	blk)	
+		{return((blk->switch_dil&switch_pile_par_5)?1:0);}
+int switch_pile_15(block_type_dilution*	blk)	
+		{return((blk->switch_dil&switch_pile_par_15)?1:0);}
+
+
+double	temperature_caisson_haut1(block_type_dilution*	blk)
+		{return(val_temperature(blk->ADC_dil[ t_h2]));}
+		
+double	temperature_caisson_haut2(block_type_dilution*	blk)
+		{return(val_temperature(blk->ADC_dil[ t_h4]));}
+		
+double	temperature_caisson_bas1(block_type_dilution*	blk)
+		{return(val_temperature(blk->ADC_dil[ t_b1]));}
+		
+double	temperature_caisson_bas2(block_type_dilution*	blk)
+		{return(val_temperature(blk->ADC_dil[ t_b2]));}
+		
+double	temperature_caisson_tube_helium(block_type_dilution*	blk)
+		{return(val_temperature(blk->ADC_dil[ t_b3]));}
+		
+double	temperature_caisson_piles(block_type_dilution*	blk)
+		{return(val_temperature(blk->ADC_dil[ t_pile]));}
+		
+double	temperature_caisson_driver_moteur(block_type_dilution*	blk)
+		{return(val_temperature(blk->ADC_dil[ t_a1]));}
+		
+double	pression_helium_bain(block_type_dilution*	blk)
+		{return( 0.2*val_multiplex(blk->ADC_dil[ RP_He]));}
+		
+double	pression_pirani(block_type_dilution*	blk)
+		{return(val_multiplex(blk->ADC_dil[ pirani]));}
+
+
+
+#define	c(j,i)		(1e-4*(double)param_pt->nom_coef[param_pt->bolo[j].numero_nom_coef].coef[i])	
+
+// les temperatures sur les cartes modifiées
+
+double	resistance_service(param_bolo*	param_pt,	reglage_bolo*	reglage_pt, block_type_dilution*	blk, int indice_tempe)
+{
+double I,V,R;
+int j,k;
+def_gains;
+k=0;
+
+for(j=0;(j<nb_max_bolo) && (k<4);j++)
+	{
+	if(param_pt->bolo[j].bolo_code_util==bolo_thermo_simplifie)
+		{
+		if(k==indice_tempe)
+			{
+			I = 1e-3 * (double)dac_V(reglage_pt->bolo[j]) * 2441. / param_pt->bolo[j].bolo_capa;	//	I en µA
+			V=0.001*bol_micro_volt(blk->temperature[k],(double)param_pt->bolo[j].bolo_gain*gain_ampli(reglage_pt->bolo[j]));
+			if(I>0.0000001)		R=V/I;	else	R=0;				//	R  en 
+			return(R);
+			}
+		k++;		
+		}
+	}
+return(0);
+}
+
+
+double	temperature_service(param_bolo*	param_pt,	reglage_bolo*	reglage_pt, block_type_dilution*	blk, int indice_tempe)
+{
+double I,V,R,T,llR;
+int j,k;
+def_gains;
+k=0;
+
+for(j=0;(j<nb_max_bolo) && (k<4);j++)
+	{
+	if(param_pt->bolo[j].bolo_code_util==bolo_thermo_simplifie)
+		{
+		if(k==indice_tempe)
+			{
+			I = 1e-3 * (double)dac_V(reglage_pt->bolo[j]) * 2441. / param_pt->bolo[j].bolo_capa;	//	I en µA
+			V=0.001*bol_micro_volt(blk->temperature[k],(double)param_pt->bolo[j].bolo_gain*gain_ampli(reglage_pt->bolo[j]));
+			if(I>0.0000001)		R=V/I;	else	R=0;				//	R  en 
+ //------  calcul de l'etalonnage en temperature des cartes temperature simplifiées  
+ // j=numero de bebo	T[k] = R[k+4] en Kelvin
+			if ((R-c(j,6))>1.) 
+				{if((log(R-c(j,6))-c(j,0))>0.001) llR= log(log(R-c(j,6))-c(j,0)) ; else llR=0; 
+//				printf("\nk=%d j=%d R=%g c2=%g c3=%g llR=%g",k,j,R[k],c(j,2),c(j,3),llR);
+				} 
+			else llR=0;
+			T	= exp( 	c(j,1) + c(j,2)* llR + c(j,3)* llR* llR + c(j,4)* llR* llR* llR + c(j,5)* llR* llR* llR* llR) ; 
+			if(T>9999) T=9999;
+			return(T);
+			}
+		k++;		
+		}
+	}
+return(0);
+}
+
+#undef c
+
+
+
+/**********  coefficients  pour  les  mesures  bolo    **********************************/
+/*                         toutes les puissances en pW                                  */
+/*	-1-	loi de reponse thermique des bolos  avec R en ohms et T en Kelvin               */
+/*                                                                                      */
+/* 	T =  coef2  *   (   ln (  R / coef1) **  ( -1 / coef0 )                             */
+/*                                                                                      */
+/*	-2-	fuite thermique du bolo   coef 3,4                                              */
+/*                                                                                      */
+/*	Ptot =  coef3  *  ( (10*Tb) ** coef4    -    (10*Tcryo)  **  coef4 )                */
+/*                                                                                      */
+/*	-3-	calcul empirique de Pciel et de  tau	  coef  5,6                             */
+/*                                                                                      */
+/*	Pciel	=	coef5	- Pelec		coef5= I * Ai (tables xavier) 	                    */
+/*	tau	=	- ln ( 1 +  Pciel / coef6 )	coef6= I * Bi (tables xavier)                   */
+/*   										                                            */
+/* Pour les thermometres 1 à 4 (germanium et carbone Allan-Bradley) 		            */
+/* les coefficients sont utilisés differemment, ils permettent de convertir	            */
+/* R vers T		( c(6) est un offset sur la mesure de R par rapport  aux mesures 4 fils)*/
+/*   llR= log(log(R - c(6))-c(0))  						                                */
+/*    T	= exp(c(1) + c(2)* llR + c(3)* llR* llR + c(4)* llR* llR* llR +                 */
+/*            c(5)* llR* llR* llR* llR)                                                 */
+/*										                                                */
+/*	version vol Trapani									                                */
+/*	on corrige le biais de temperature coef2=1.1 old,  coef3=old/1.1^coef4	            */
+/*										                                                */
+/*										                                                */
+/*										                                                */
+/*										                                                */
+/*										                                                */
+/****************************************************************************************/
+
+
+
+
+/* ------------------------------------   corps  des fonctions	 ------------------------------ */
+/* -------------------------------------------------------------------------------------------- */
+
+
+
+
+double		DAC_muV		(param_bolo*	param_pt,	reglage_bolo*	reglage_pt, int indice_bolo)
+{
+double div,car;
+car= (double)dac_V(reglage_pt->bolo[indice_bolo])  ;
+div=(double)param_pt->bolo[indice_bolo].bolo_diviseur;
+if(div) return (car *2441. /  div );					
+else	return(0);
+}
+
+
+
+double		DAC_muA		(param_bolo*	param_pt,	reglage_bolo*	reglage_pt, int indice_bolo)
+{
+double capa,tri;
+tri= (double)dac_I(reglage_pt->bolo[indice_bolo])  ;
+capa=((param_pt->bolo[indice_bolo].bolo_bebo==10)?0.000868 * (double)param_pt->bolo[indice_bolo].bolo_capa:0.001 * (double)param_pt->bolo[indice_bolo].bolo_capa);
+		/* capa en pF	*/
+return (tri * capa / (4096. * 22. * 20.) );					
+}
+
+
+double		bolo_muV	(param_bolo*	param_pt,	reglage_bolo*	reglage_pt, int valbrut,int indice_bolo)										
+{
+double x;
+int nb_coups;
+int aa;
+def_gains
+
+nb_coups= reglage_pt->horloge.nb_mesures/2 - reglage_pt->horloge.temp_mort;
+
+aa = (nb_coups<<14) + (nb_coups*190) ;
+x=((double)((valbrut-aa)<<1))/(double)nb_coups;
+x=	bol_micro_volt(x,(double)param_pt->bolo[indice_bolo].bolo_gain*gain_ampli(reglage_pt->bolo[indice_bolo]));
+return(x);
+}
+
+
+
+
+#define	c(i)		(1e-4*(double)param_pt->nom_coef[param_pt->bolo[indice_bolo].numero_nom_coef].coef[i])	
+
+double		bolo_temp	(param_bolo*	param_pt,	reglage_bolo*	reglage_pt, double R,int indice_bolo)
+{
+double a,T;
+a=1;	if( (R>0) && (c(1) >0.01) )		a= log ( R / c(1) );
+T=0;	if( (a>0) && (c(0)>0.01) )		T= c(2) * pow( a , -1 / c(0) );
+return(T);
+}
+
+#undef c
+
+
+
+
+/* -------------------------------------------------------------  */
+
+
+unsigned int4	val_long(char x)
+{
+unsigned long a,xl;
+char aa;
+aa=x-2;
+a=aa;
+if(x<3)  xl=x;	else	xl=((a&1) + 2)<<(a>>1);
+return(xl);
+}
+
+
+double	val_double(char x)
+{
+unsigned long a,xl;
+if(x<0) x=-x;	a=x;	if(!a)  xl=0;	else	xl=((a&1) + 2)<<(a>>1);
+if(x>0)	return(1e-4*(double)xl);	else	return(-1e-4*(double)xl);
+}
+
+int	new_val_dac(int a,char  code)
+{
+if(code&0x80)	a=(code&0x7f) <<5 ;
+else	{
+	if(code&0x40)	a+=code&0x3f;	
+	else		a-=code&0x3f;	
+	}
+return(a);
+}
+
Index: trunk/Poubelle/archediab.old/archediab.sources/c/auto.c
===================================================================
--- trunk/Poubelle/archediab.old/archediab.sources/c/auto.c	(revision 649)
+++ trunk/Poubelle/archediab.old/archediab.sources/c/auto.c	(revision 651)
@@ -2,4 +2,5 @@
 #include "bolo.h" 
 #include "auto.h" 
+#include "arcunit.h" 
 #include "tm.h" 
 
Index: trunk/Poubelle/archediab.old/archediab.sources/c/corel.c
===================================================================
--- trunk/Poubelle/archediab.old/archediab.sources/c/corel.c	(revision 649)
+++ trunk/Poubelle/archediab.old/archediab.sources/c/corel.c	(revision 651)
@@ -1,4 +1,5 @@
 #include "diabolo.h"
 #include "corel.h" 
+#include "arcunit.h" 
 
 /*
Index: trunk/Poubelle/archediab.old/archediab.sources/c/courbeVI.c
===================================================================
--- trunk/Poubelle/archediab.old/archediab.sources/c/courbeVI.c	(revision 649)
+++ trunk/Poubelle/archediab.old/archediab.sources/c/courbeVI.c	(revision 651)
@@ -4,4 +4,5 @@
 #include "courbeVI.h"
 #include "fenetres_diabolo.h"
+#include "arcunit.h"
 
 int voie_bit;		// octet contenant dans chaque bit le flag qui dit si on equiloibre cette voie
Index: trunk/Poubelle/archediab.old/archediab.sources/c/diabolo.c
===================================================================
--- trunk/Poubelle/archediab.old/archediab.sources/c/diabolo.c	(revision 649)
+++ trunk/Poubelle/archediab.old/archediab.sources/c/diabolo.c	(revision 651)
@@ -46,5 +46,6 @@
 //flag=alerte(3,"   Archeops ou Planck  \r\r acquisition avec carte PCI ??"); // vaut 1 pour acquisition PCI
 //flag=2;	// en mode simulation
-if(clavier(touche_alt) ) flag=2; else flag=1;		// en mode acquisition
+flag=2;
+if(clavier(touche_alt) ) flag=1;			 		// en mode acquisition
 if(clavier(touche_controle) ) flag=4;				// avec emission des telecommandes au demarrage
 if(clavier(touche_alt) && clavier(touche_controle) ) {
@@ -54,5 +55,5 @@
 #endif
 
-
+//alerte(1,"on a flag=%d ",flag);
 
 init_struct(flag);
@@ -71,4 +72,5 @@
 nouveautypefichier('DIA2',exec_DIA2);
 nouveautypefichier('ARCH',exec_ARCH);
+nouveautypefichier('TEXT',exec_ARCH);
 
 //nouveautypefichier('TEXT',exec_DIA2);
Index: trunk/Poubelle/archediab.old/archediab.sources/c/dilution.c
===================================================================
--- trunk/Poubelle/archediab.old/archediab.sources/c/dilution.c	(revision 649)
+++ trunk/Poubelle/archediab.old/archediab.sources/c/dilution.c	(revision 651)
@@ -2,4 +2,5 @@
 #include "dilution.h" 
 #include "controle.h" 
+#include "arcunit.h" 
 
 
Index: trunk/Poubelle/archediab.old/archediab.sources/c/fichier_archeops.c
===================================================================
--- trunk/Poubelle/archediab.old/archediab.sources/c/fichier_archeops.c	(revision 649)
+++ trunk/Poubelle/archediab.old/archediab.sources/c/fichier_archeops.c	(revision 651)
@@ -151,5 +151,5 @@
      			{
 #ifdef _archeops
-     			ouvre('ACTI',0,10,"lit_fichier_arch",exec_lit_fichier_ARCH,(void*)fen);
+     			ouvre('ACTI',0,1,"lit_fichier_arch",exec_lit_fichier_ARCH,(void*)fen);
 #else
 			printf(" ne peut pas relire les fichiers archeops \n");
Index: trunk/Poubelle/archediab.old/archediab.sources/c/fichier_relit_ARCH.c
===================================================================
--- trunk/Poubelle/archediab.old/archediab.sources/c/fichier_relit_ARCH.c	(revision 649)
+++ trunk/Poubelle/archediab.old/archediab.sources/c/fichier_relit_ARCH.c	(revision 651)
@@ -21,5 +21,11 @@
 	{
 	case ouverture	: 	printf("\nlecture du fichier %s  \n",titre(fich));
+					{
+					char cc[12];
+					litF(fich,12,cc);
+					printf("debut fich= %x %x %x %x %x %x %x %x \n",cc[0],cc[1],cc[2],cc[3],cc[4],cc[5],cc[6],cc[7]);
+					}
 				pos=0;
+				select(fen);
 				break;
 
@@ -30,26 +36,38 @@
 	case tache_de_fond :
 
-			if (  (pos+12) >  longueur(fich) )
-				{
-				printf("fin du fichier \n");
-				ferme(fen);
+			{
+			int u;
+			int nn,nb,ll;
+			def_nom_block
+				
+			nn=0;
+			do	{
+				
+				if (  (pos+12) >  longueur(fich) )
+					{
+					printf("fin du fichier \n");
+					ferme(fen);nn=-1;nb=0;
+					}
+				else	{
+
+					position(fich,pos);
+					litF(fich,sizeof(block_type_modele),&bkt);
+					type=type_block(&bkt);
+					ll=longueur_block(&bkt);
+					if( (ll<16) ou (ll>50000) ) {pos+=4;printf(" erreur longueur ");nn=-1;nb=0;}
+					else	{
+						pos+=ll;
+						printf("block %d  :  %s \n",numero_block(&bkt),nom_block[type]);
+						if(!nn)	nn=numero_block(&bkt);
+						u=tt->tm.pos_ecrit;
+						tt->tm.btm[u].tmtrx=bkt;
+						u++; if(u>=longueur_table_tm) u=0;
+						tt->tm.pos_ecrit=u;
+						nb=numero_block(&bkt);
+						}
+					}
 				}
-
-			else
-				{
-				int u;
-				def_nom_block
-				
-				position(fich,pos);
-				litF(fich,sizeof(block_type_modele),&bkt);
-				type=type_block(&bkt);
-				pos+=longueur_block(&bkt);
-				printf("block %d  :  %s \n",numero_block(&bkt),nom_block[type]);
-				
-				u=tt->tm.pos_ecrit;
-				tt->tm.btm[u].tmtrx=bkt;
-				u++; if(u>=longueur_table_tm) u=0;
-				tt->tm.pos_ecrit=u;
-				}
+			while(nb==nn);
+			}
 
 			break;
Index: trunk/Poubelle/archediab.old/archediab.sources/c/fichier_relit_DIA2.c
===================================================================
--- trunk/Poubelle/archediab.old/archediab.sources/c/fichier_relit_DIA2.c	(revision 649)
+++ trunk/Poubelle/archediab.old/archediab.sources/c/fichier_relit_DIA2.c	(revision 651)
@@ -2,4 +2,5 @@
 #include "fichier.h"
 #include "bolo.h"
+#include "arcunit.h"
 
 
Index: trunk/Poubelle/archediab.old/archediab.sources/c/mesures_bolo.c
===================================================================
--- trunk/Poubelle/archediab.old/archediab.sources/c/mesures_bolo.c	(revision 649)
+++ trunk/Poubelle/archediab.old/archediab.sources/c/mesures_bolo.c	(revision 651)
@@ -1,4 +1,5 @@
 #include "diabolo.h"
 #include "bolo.h"
+#include "arcunit.h"
 
 //*********  coefficients  pour  les  mesures  bolo    ***************************************************
Index: trunk/Poubelle/archediab.old/archediab.sources/c/sstbrut-ab.c
===================================================================
--- trunk/Poubelle/archediab.old/archediab.sources/c/sstbrut-ab.c	(revision 651)
+++ trunk/Poubelle/archediab.old/archediab.sources/c/sstbrut-ab.c	(revision 651)
@@ -0,0 +1,216 @@
+#include "diabolo.h" 
+#include "sstbrut.h" 
+#include "compress.h" 
+
+
+
+//--------------------  fonction  exec  de  la  fenetre : senseur_stellaire  -------------------------------
+
+
+void exec_sstbrut(int fen,int item,double valeur,...) 
+{
+if(item>1000) item-=1000;		// pour appeler le case pour tous les cara d'un edit texte
+
+switch(item)
+    {
+    case ouverture               :
+    			
+                 break;
+    case fermeture               :
+                 break;
+    case sstb_azer :
+                 break;
+    case sstb_sortie_brute :
+                 break;
+    default  :   break;
+    }
+}
+
+//#define	bit_sst(i,j,k)  (((blk->sst[i][i*3+k/4])>>(j+8*k%4))&1)   
+
+
+//   i est le numero du point dans le block de 72
+//	j	est le numero de la diode  de 0 a 47
+//  	j%8	est la place du bit dans le mot de 8 bit 
+//	j/8	(de 0 a 5 ) est la serie de mesure
+//	k est le numero du bit dans le mot de 12 bits
+//		les k se suivent dans les données
+
+//   k est le numero du point dans le block de 72
+//	i	est le numero de la diode  de 0 a 47
+//  	j	est le paquet de 4 bits de 0 a 2 
+
+
+// on prend des paquets de 4 bits
+// chaque diode est formee de 3 paquets
+// dans l'ordre :  les paquets de 8 diodes  (8 paquets)
+//  recommencer 3 fois	(24 paquets)
+// enfin, faire 6 fois cette operation  (144 paquets)
+
+// soit q  la place du paquet  i,j,k
+#define place_paquet(i,j)	 (i/8) * 24  + j*8 + (i%8) 
+
+void	traite_block_sst_comprime_brut	(block_type_sst_comprime*	blk)
+{
+int i,q,k,j,prem_d;
+double x;
+int temps_cntl;
+double secondes;
+double	y[15];
+
+long sst[nb_photo_diodes][nb_per_block*2];
+
+if(!fenetre(fenetre_sstbrut)) return;
+
+printf(" k de la photodiode N03  (2 dans tableau = %d \n",blk->sst[2][1]&0xf);
+
+for(j=0;j<nb_photo_diodes;j++)	 decompress_4_1((long *)blk->sst[j],sst[j],nb_per_block*2);
+
+prem_d=litD(fenetre_sstbrut,sstb_prem_diode,0L);
+
+for(k=0;k<72;k++)
+	{
+	for(i=0;i<10;i++)		//  seulement 12 diodes 
+		{
+		q=i+prem_d-1;
+					
+		if(q<nb_photo_diodes) x=(double)(sst[q][k]&0xfff) ;	else x=0;
+		x-=2048;
+		y[i]=x;
+		}
+	//	printf(" y = %g %g %g %g %g \n",y[0],y[1],y[2],y[3],y[4]);
+	temps_cntl =numero_block(blk)*nb_per_block*2+k;
+	secondes=gg->periode_echantillonage*(double)temps_cntl-gg->temps_origine;
+	tracen(fenetre_sstbrut,10,secondes,y);
+	}
+
+
+
+}
+
+
+
+void	traite_block_sst_brut(block_type_sst*	blk)
+{
+int i,j,k;
+double	y[15];
+double	x;
+
+int temps_cntl;
+double secondes;
+int a,b,b0,b1,b2;
+int prem_d;
+
+if(!fenetre(fenetre_sstbrut)) return;
+//  ecriture des valeurs brutes du senseur stellaire
+//  les numero 0 et 4  sont dediés aux thermometres
+//  pour l'instant machent bien 1 2 3   8 9 10 11   
+if(litD(fenetre_sstbrut,sstb_sortie_brute,0))
+	{
+	if(!fenetre(fenetre_senseur_stellaire_lecture_brute)) nouveauT(fenetre_senseur_stellaire_lecture_brute,0,"lecture senseur stellaire");
+
+	ecritT(fenetre_senseur_stellaire_lecture_brute,fin_f,"\nsenseur stellaire  \n");
+
+
+//	k=0;
+	for(k=0;k<4;k++)
+		{
+	    	for(i=0;i<16;i++)		//  16 senseurs 
+			{
+			for(j=0;j<3;j++)		//  3 paquets
+	    			{
+	    			a=place_paquet(i,j);
+	    			b= ( blk->sst[k][a/8] >>( (a%8)*4) ) & 0xf;
+				ecritT(fenetre_senseur_stellaire_lecture_brute,fin_f,"%x",b);
+				}
+			ecritT(fenetre_senseur_stellaire_lecture_brute,fin_f,"  ");
+			}
+	 	ecritT(fenetre_senseur_stellaire_lecture_brute,fin_f,"\n");
+	 	}
+
+	 ecritT(fenetre_senseur_stellaire_lecture_brute,fin_f,"\n");
+
+	 }
+
+//k=0;
+prem_d=litD(fenetre_sstbrut,sstb_prem_diode,0L);
+for(k=0;k<72;k++)
+	{
+	 for(i=0;i<12;i++)		//  seulement 12 diodes 
+		{
+		int q;
+		q=i+prem_d-1;
+				
+		a=place_paquet(q,0);
+	    	b0= ( blk->sst[k][a/8] >>( (a%8)*4) ) & 0xf;
+		a=place_paquet(q,1);
+	    	b1= ( blk->sst[k][a/8] >>( (a%8)*4) ) & 0xf;
+		a=place_paquet(q,2);
+	    	b2= ( blk->sst[k][a/8] >>( (a%8)*4) ) & 0xf;
+		
+
+		x=(double)( (b0<<8) | (b1<<4) |  b2 ) ;
+		if(x>2047) x-=4096;
+		y[i]=x;
+		}
+//	printf(" y = %g %g %g %g %g \n",y[0],y[1],y[2],y[3],y[4]);
+	temps_cntl =numero_block(blk)*nb_per_block*2+k;
+	secondes=gg->periode_echantillonage*(double)temps_cntl-gg->temps_origine;
+	tracen(fenetre_sstbrut,12,secondes,y);
+	}
+}
+
+
+		
+//	les 46 valeurs en hexa
+//	i=0;			//  juste le premier point du block
+//	for(i=0;i<72;i++)
+/*
+for(i=0;i<72;i++)
+	{
+
+	 for(j=0;j<12;j++)		//  seulement les 12 premieres diodes 
+		{
+		x=0;
+		for(k=0;k<12;k++)	x=(x<<1)  | bit_sst(i,j,k);
+		y[j]=(double)x;
+		}
+	temps_cntl =numero_block(blk)*nb_per_block*2+i;
+	secondes=gg->periode_echantillonage*(double)temps_cntl-gg->temps_origine;
+	tracen(fenetre_senseur_stellaire,12,secondes,y);
+	}
+			
+*/
+/*	i=1;			//  juste le premier point du block
+//	for(i=0;i<72;i++)
+		{
+		for(k=0;k<12;k++)		//  12 bits
+	    		{
+	    		for(j=0;j<35;j++)		//  46 senseurs 
+				{
+				ecritT(fenetre_senseur_stellaire_lecture_brute,fin_f,"%d   ",bit_sst(i,j,k));
+				}
+	 		ecritT(fenetre_senseur_stellaire_lecture_brute,fin_f,"\n");
+			}
+	 	ecritT(fenetre_senseur_stellaire_lecture_brute,fin_f,"\n");
+	 	}
+		
+//	les 46 valeurs en hexa
+//	i=0;			//  juste le premier point du block
+//	for(i=0;i<72;i++)
+	for(i=0;i<10;i++)
+		{
+	    	for(j=0;j<35;j++)		//  46 senseurs 
+			{
+			x=0;
+			for(k=0;k<12;k++)	x=(x<<1)  | bit_sst(i,j,k);
+			ecritT(fenetre_senseur_stellaire_lecture_brute,fin_f,"%3x ",x);
+			}
+	 	ecritT(fenetre_senseur_stellaire_lecture_brute,fin_f,"\n");
+	 	}
+			
+	
+	}
+
+			
+*/	
Index: trunk/Poubelle/archediab.old/archediab.sources/c/telecommande.c
===================================================================
--- trunk/Poubelle/archediab.old/archediab.sources/c/telecommande.c	(revision 649)
+++ trunk/Poubelle/archediab.old/archediab.sources/c/telecommande.c	(revision 651)
@@ -253,5 +253,5 @@
 				if(ss[16]!='7') erreur("adresse not equal to 7");
 				if(ss[25]!='7') erreur("adresse not equal to 7");
-				while( (TickCount()>t) et (TickCount()<(t+60*15)) ) 	// 15sec 
+/*				while( (TickCount()>t) et (TickCount()<(t+60*15)) ) 	// 15sec 
 					{
 					static int q;
@@ -261,5 +261,5 @@
 					controlemanip(0);
 					}
-				son(133);
+*/				son(133);
 
 				printf(" envoi de la telecommande : %s \n",ss);
@@ -267,12 +267,4 @@
 				t=TickCount();	               	//  10 secondes  (tick = 1/60 sec) 
 				}
-/*			else	{
-				tc_char(0x11);	//  synchro
-				tc_int(debut_telecommande);
-				for(j=0;j<8;j++)	tc_char(mot[j]);
-				tc_int(fin_telecommande);
-				tc_char(0x00);tc_char(0x00);	//  synchro
-				}
-*/
 			break;
 
