Index: trunk/XSUCLWF/Cxfel.cpp
===================================================================
--- trunk/XSUCLWF/Cxfel.cpp	(revision 18)
+++ trunk/XSUCLWF/Cxfel.cpp	(revision 25)
@@ -224,5 +224,5 @@
 						size=1;
 						tab_rp_registers[0] = Convert::ToInt16(valNumP->Text);
-						modbus_write_registers(ctx, 2070,size, tab_rp_registers);//NumP
+						rc=modbus_write_registers(ctx, 2070,size, tab_rp_registers);//NumP
 						if (rc != size)
 							Console::WriteLine(S"CGroupBox::::AppliquerBtn_Clicked : write holding failed...");		
@@ -231,5 +231,5 @@
 						tab_rp_registers[0] = Convert::ToInt16(valNumC1->Text);
 						tab_rp_registers[1] = Convert::ToInt16(valNumC2->Text);
-						modbus_write_registers(ctx, 2050,size, tab_rp_registers);//NumC1 et NumC2
+						rc=modbus_write_registers(ctx, 2050,size, tab_rp_registers);//NumC1 et NumC2
 						if (rc != size)
 							Console::WriteLine(S"CGroupBox::::AppliquerBtn_Clicked : write holding failed...");		
@@ -275,5 +275,5 @@
 						size=1;
 						tab_rp_registers[0] = Convert::ToInt16(valNumP->Text);
-						modbus_write_registers(ctx, 2071,size, tab_rp_registers);//NumP
+						rc=modbus_write_registers(ctx, 2071,size, tab_rp_registers);//NumP
 						if (rc != size)
 							Console::WriteLine(S"CGroupBox::::AppliquerBtn_Clicked : write holding failed...");		
@@ -282,5 +282,5 @@
 						tab_rp_registers[0] = Convert::ToInt16(valNumC1->Text);
 						tab_rp_registers[1] = Convert::ToInt16(valNumC2->Text);
-						modbus_write_registers(ctx, 2052,size, tab_rp_registers);//NumC1 et NumC2
+						rc=modbus_write_registers(ctx, 2052,size, tab_rp_registers);//NumC1 et NumC2
 						if (rc != size)
 							Console::WriteLine(S"CGroupBox::::AppliquerBtn_Clicked : write holding failed...");		
@@ -326,5 +326,5 @@
 						size=1;
 						tab_rp_registers[0] = Convert::ToInt16(valNumP->Text);
-						modbus_write_registers(ctx, 2072,size, tab_rp_registers);//NumP
+						rc=modbus_write_registers(ctx, 2072,size, tab_rp_registers);//NumP
 						if (rc != size)
 							Console::WriteLine(S"CGroupBox::::AppliquerBtn_Clicked : write holding failed...");		
@@ -333,5 +333,5 @@
 						tab_rp_registers[0] = Convert::ToInt16(valNumC1->Text);
 						tab_rp_registers[1] = Convert::ToInt16(valNumC2->Text);
-						modbus_write_registers(ctx, 2054,size, tab_rp_registers);//NumC1 et NumC2
+						rc=modbus_write_registers(ctx, 2054,size, tab_rp_registers);//NumC1 et NumC2
 						if (rc != size)
 							Console::WriteLine(S"CGroupBox::::AppliquerBtn_Clicked : write holding failed...");		
@@ -377,5 +377,5 @@
 						size=1;
 						tab_rp_registers[0] = Convert::ToInt16(valNumP->Text);
-						modbus_write_registers(ctx, 2073,size, tab_rp_registers);//NumP
+						rc=modbus_write_registers(ctx, 2073,size, tab_rp_registers);//NumP
 						if (rc != size)
 							Console::WriteLine(S"CGroupBox::::AppliquerBtn_Clicked : write holding failed...");		
@@ -384,5 +384,5 @@
 						tab_rp_registers[0] = Convert::ToInt16(valNumC1->Text);
 						tab_rp_registers[1] = Convert::ToInt16(valNumC2->Text);
-						modbus_write_registers(ctx, 2056,size, tab_rp_registers);//NumC1 et NumC2
+						rc=modbus_write_registers(ctx, 2056,size, tab_rp_registers);//NumC1 et NumC2
 						if (rc != size)
 							Console::WriteLine(S"CGroupBox::::AppliquerBtn_Clicked : write holding failed...");		
@@ -419,16 +419,4 @@
         Controls->Add(sortirBtn);
 
-/*	GroupBox* gbox = new GroupBox();
-	gbox->Text = S"name";
-	gbox->Size = System::Drawing::Size(200, 150);//taille du groupbox en pixels
-	gbox->Location = Point(200,90);
-	Label* labNumP= new Label();
-	labNumP->Location = Point(10, 20);
-	labNumP->Size = System::Drawing::Size(50,16);
-	labNumP->Text = "Num_P";//zone de texte initialisée 
-	labNumP->TextAlign = ContentAlignment::MiddleRight;
-	gbox->Controls->Add(labNumP);
-	Controls->Add(gbox);
-*/
 		pal = new ArrayList();
 		int j=20;//depart affichage
@@ -438,7 +426,4 @@
 			j+=250;
 			CGroupBox* gboxPtr = (CGroupBox *) pal->get_Item(indexGroupBox);
-//			gboxPtr->Controls->Add(gboxPtr->GetLabelNumP());
-//			gboxPtr->GetGroupBox()->Controls->Add(gboxPtr->GetLabelNumC1());
-//			gboxPtr->Controls->Add(gboxPtr->GetLabelNumC2());
 			Controls->Add(gboxPtr->GetGroupBox());
 			String* str;
@@ -456,4 +441,49 @@
         AcceptButton = sortirBtn;
 
+		//Tp_max
+		labTp_max = new Label();
+		valTp_max = new TextBox();
+		labN_cur = new Label();
+		valN_cur = new ComboBox();
+		btnAppliquer = new Button();
+		labTp_max->Location = Point(200,600);
+		labTp_max->Size = System::Drawing::Size(80,16);
+		labTp_max->Text = "Tp_max(h):";
+		labTp_max->TextAlign = ContentAlignment::MiddleRight;
+		labTp_max->Font = new System::Drawing::Font(S"Arial", 9, FontStyle::Bold);;
+		Controls->Add(labTp_max);
+		valTp_max->Location = Point(290,600);
+		valTp_max->Size = System::Drawing::Size(50,20);
+		valTp_max->Text = "";
+		valTp_max->Font = new System::Drawing::Font(S"Arial", 9, FontStyle::Bold);;
+		valTp_max->ForeColor = Color::Blue;
+		Controls->Add(valTp_max);
+		labN_cur->Location = Point(200,625);
+		labN_cur->Size = System::Drawing::Size(80,16);
+		labN_cur->Text = "N_cur:";
+		labN_cur->TextAlign = ContentAlignment::MiddleRight;
+		labN_cur->Font = new System::Drawing::Font(S"Arial", 9, FontStyle::Bold);;
+		Controls->Add(labN_cur);
+		valN_cur->DropDownWidth=121;
+		valN_cur->Location = Point(290,625);
+		valN_cur->Size = System::Drawing::Size(50,121);
+		valN_cur->Items->Add(S"1");
+		valN_cur->Items->Add(S"2");
+		valN_cur->Items->Add(S"3");
+		valN_cur->Items->Add(S"4");
+		valN_cur->Items->Add(S"5");
+		valN_cur->Items->Add(S"6");
+		valN_cur->Items->Add(S"7");
+		valN_cur->Font = new System::Drawing::Font(S"Arial", 9, FontStyle::Bold);;
+		valN_cur->ForeColor = Color::Blue;
+        valN_cur->SelectedIndex = 0;//affiche la 1ere chaine par defaut
+		Controls->Add(valN_cur);
+		btnAppliquer = new Button();
+		btnAppliquer->Location = Point(350, 600);
+		btnAppliquer->Name = "Bouton Appliquer";
+		btnAppliquer->Text = "Appliquer";
+		btnAppliquer->Click += new EventHandler(this, &CDialogConfig::BtnAppliquer_Clicked);
+		Controls->Add(btnAppliquer);
+
 		//gestionnnaire associé au bouton OK
 		sortirBtn->Click += new EventHandler(this, &CDialogConfig::SortirBtn_Clicked);
@@ -479,16 +509,4 @@
         Controls->Add(sortirBtn);
 
-/*	GroupBox* gbox = new GroupBox();
-	gbox->Text = S"name";
-	gbox->Size = System::Drawing::Size(200, 150);//taille du groupbox en pixels
-	gbox->Location = Point(200,90);
-	Label* labNumP= new Label();
-	labNumP->Location = Point(10, 20);
-	labNumP->Size = System::Drawing::Size(50,16);
-	labNumP->Text = "Num_P";//zone de texte initialisée 
-	labNumP->TextAlign = ContentAlignment::MiddleRight;
-	gbox->Controls->Add(labNumP);
-	Controls->Add(gbox);
-*/
 		pal = new ArrayList();
 		int j=20;//depart affichage
@@ -498,7 +516,4 @@
 			j+=250;
 			CGroupBox* gboxPtr = (CGroupBox *) pal->get_Item(indexGroupBox);
-//			gboxPtr->Controls->Add(gboxPtr->GetLabelNumP());
-//			gboxPtr->GetGroupBox()->Controls->Add(gboxPtr->GetLabelNumC1());
-//			gboxPtr->Controls->Add(gboxPtr->GetLabelNumC2());
 			Controls->Add(gboxPtr->GetGroupBox());
 			String* str;
@@ -525,4 +540,51 @@
 		Close();
 	}
+
+void CDialogConfig::BtnAppliquer_Clicked(Object* pSender, EventArgs* pArgs)//gestionnaire d'evenement associé à la liste deroulante
+    {
+		int nCur=0;
+
+//		String* ps = String::Concat(S"index is ",__box(valN_cur->SelectedIndex)->ToString());
+//		MessageBox::Show(ps,S"index");
+        String* ps = __box(valN_cur->SelectedIndex)->ToString();
+		if(String::Compare(ps,"0")==0)
+			nCur=1;
+		if(String::Compare(ps,"1")==0)
+			nCur=2;
+		if(String::Compare(ps,"2")==0)
+			nCur=3;
+		if(String::Compare(ps,"3")==0)
+			nCur=4;
+		if(String::Compare(ps,"4")==0)
+			nCur=5;
+		if(String::Compare(ps,"5")==0)
+			nCur=6;
+		if(String::Compare(ps,"6")==0)
+			nCur=7;
+		if (getTp_max()!=NULL)//case non vide uniquement
+		{
+			int result = Convert::ToInt16(getTp_max());
+			if ((result<=0)||(result>=15))
+			{
+				MessageBox::Show(S"1 heure <= Tp_max <= 14 heures");
+				return;
+			}
+			Console::WriteLine(S"ecriture Tp_max");
+			uint16_t tab_rp_registers[1];
+			int rc;
+			int size;
+			Console::WriteLine(S"CDialogConfig::BtnAppliquer_Clicked : write Tp_max...");
+			size=1;
+			tab_rp_registers[0] = result;
+			rc=modbus_write_registers(ctx, 2106+(nCur-1),size, tab_rp_registers);//NumP
+			if (rc != size)
+				Console::WriteLine(S"CDialogConfig::BtnAppliquer_Clicked : write Tp_max failed...");
+		}
+    }
+
+String* CDialogConfig::getTp_max() 
+{ 
+	return valTp_max->Text; 
+}
 
 
@@ -547,4 +609,6 @@
 	val->Size = System::Drawing::Size(sizeText, 20);
 	val->Text = "";//zone de texte initialisée vide
+	val->Font = new System::Drawing::Font(S"Arial", 9, FontStyle::Bold);;
+	val->ForeColor = Color::Brown;
 }
 
@@ -576,8 +640,15 @@
 void CLabelTextBox::SetColor(int value)
 {
-	if(value)
+/*	if(value)
 		val->BackColor=Color::Red;
 	else
 		val->BackColor=Color::White;
+		*/
+	if(!value)
+		val->BackColor=Color::White;
+	if(value==1)
+		val->BackColor=Color::Red;
+	if(value==2)
+		val->BackColor=Color::LemonChiffon;
 }
 
@@ -587,6 +658,10 @@
         // définit les paramètres du formulaire
 		Text = S"XSUC - lecture serveur";
-        FormBorderStyle = FormBorderStyle::Fixed3D;//impossible de modifier la taille
-        Size = System::Drawing::Size(1000,800);
+ //       FormBorderStyle = FormBorderStyle::Fixed3D;//impossible de modifier la taille
+		FormBorderStyle = FormBorderStyle::FixedDialog;
+		MaximizeBox = false;
+		MinimizeBox = false;
+		this->ControlBox=false;
+		Size = System::Drawing::Size(1250,800);
 
         // Creation de controle
@@ -611,5 +686,5 @@
         EcritureBtn->Name = "Bouton Ecriture";
         EcritureBtn->Text = "Ecriture";
-		EcritureBtn->DialogResult = DialogResult::OK;
+//		EcritureBtn->DialogResult = DialogResult::OK;//sinon fermera aussi la fenetre parente
 
         // Ajoute les controles dans le formaulaire
@@ -641,5 +716,7 @@
 			Controls->Add(cltbPtr->GetTextBox());
 		}
+
 		Setup_Group_Conditionning();
+
 		// Mode tt seul
 		pal->Add(new CLabelTextBox("MODE",20,100,50,16,75));
@@ -647,4 +724,89 @@
 		Controls->Add(cltbPtr->GetLabel());
 		Controls->Add(cltbPtr->GetTextBox());
+
+		//sauve l'index condionning
+		indexTextBoxSave=indexTextBox;//04-07-2013 : nouveaux controles
+		// Ln
+		// Ln tt seul
+		Label* ln= new Label();
+		ln->Location = Point(950, 300);
+		ln->Size = System::Drawing::Size(70,16);
+		ln->Text = nameLab_5[1];//zone de texte initialisée 
+		ln->TextAlign = ContentAlignment::MiddleCenter;
+		Controls->Add(ln);
+		int j=0;
+		for (;indexTextBox<(indexTextBoxSave+8);indexTextBox++)//creation des controles dans le formulaire
+		{
+			int posX=850;int posY=300;
+			int sizeText=70;
+			pal->Add(new CLabelTextBox(nameLab_6[indexTextBox-indexTextBoxSave],posX,posY+(j+=20),100,16,sizeText));
+			CLabelTextBox* cltbPtr = (CLabelTextBox *) pal->get_Item(indexTextBox);
+			Controls->Add(cltbPtr->GetLabel());
+			Controls->Add(cltbPtr->GetTextBox());
+//			Console::WriteLine(indexTextBox);
+//			Console::WriteLine(posX);
+//			Console::WriteLine(posY);
+		}
+
+		//sauve l'index condionning
+		indexTextBoxSave=indexTextBox;//04-07-2013 : nouveaux controles
+		//Tp_max
+		//Tp_max tt seul
+		Label* tp_max= new Label();
+		tp_max->Location = Point(1050, 300);
+		tp_max->Size = System::Drawing::Size(70,16);
+		tp_max->Text = nameLab_5[2];//zone de texte initialisée 
+		tp_max->TextAlign = ContentAlignment::MiddleCenter;
+		Controls->Add(tp_max);
+		j=0;
+		for (;indexTextBox<(indexTextBoxSave+7);indexTextBox++)//creation des controles dans le formulaire
+		{
+			int posX=950;int posY=300;
+			int sizeText=70;
+			pal->Add(new CLabelTextBox(nameLab_6[indexTextBox-indexTextBoxSave],posX,posY+(j+=20),100,16,sizeText));
+			CLabelTextBox* cltbPtr = (CLabelTextBox *) pal->get_Item(indexTextBox);
+			Controls->Add(cltbPtr->GetLabel());
+			Controls->Add(cltbPtr->GetTextBox());
+//			Console::WriteLine(indexTextBox);
+//			Console::WriteLine(posX);
+//			Console::WriteLine(posY);
+		}
+
+		//sauve l'index condionning
+		indexTextBoxSave=indexTextBox;//04-07-2013 : nouveaux controles
+		//Pi_max
+		//Pi_max tt seul
+		Label* pi_max= new Label();
+		pi_max->Location = Point(1150, 300);
+		pi_max->Size = System::Drawing::Size(70,16);
+		pi_max->Text = nameLab_5[3];//zone de texte initialisée 
+		pi_max->TextAlign = ContentAlignment::MiddleCenter;
+		Controls->Add(pi_max);
+		j=0;
+		for (;indexTextBox<(indexTextBoxSave+8);indexTextBox++)//creation des controles dans le formulaire
+		{
+			int posX=1050;int posY=300;
+			int sizeText=70;
+			pal->Add(new CLabelTextBox(nameLab_6[indexTextBox-indexTextBoxSave],posX,posY+(j+=20),100,16,sizeText));
+			CLabelTextBox* cltbPtr = (CLabelTextBox *) pal->get_Item(indexTextBox);
+			Controls->Add(cltbPtr->GetLabel());
+			Controls->Add(cltbPtr->GetTextBox());
+//			Console::WriteLine(indexTextBox);
+//			Console::WriteLine(posX);
+//			Console::WriteLine(posY);
+		}
+
+		// ERREUR tt seul
+		//sauve l'index condionning
+		indexTextBoxSave=indexTextBox;//04-07-2013 : nouveaux controles
+		for (;indexTextBox<(indexTextBoxSave+1);indexTextBox++)//creation des controles dans le formulaire
+		{
+			int sizeText=100;
+			pal->Add(new CLabelTextBox("Erreur",900,550,100,16,sizeText));
+			CLabelTextBox* cltbPtr = (CLabelTextBox *) pal->get_Item(indexTextBox);
+			Controls->Add(cltbPtr->GetLabel());
+			Controls->Add(cltbPtr->GetTextBox());
+		}
+
 
 		//configure les 2 propriétés : AcceptButton contient la réf du bouton par défaut du formulaire..
@@ -676,5 +838,11 @@
 void MaDialogUser::OKMaDBtn_Clicked(Object* pSender,EventArgs* pArgs)//gestionnaire d'evenement de la boite dialogue
 	{
-		//fermer le formulaire lorsqu'on clique sur le bouton
+		//arrete le lecture si activée et fermer le formulaire lorsqu'on clique sur le bouton
+		if ((uThread!=NULL)&&(uThread->IsAlive))
+		{
+			// Stop the thread.  
+			uThread->Suspend();
+			uThread=NULL;
+		}
 		Close();
 	}
@@ -732,7 +900,9 @@
 			cltbPtr = (CLabelTextBox *) pal->get_Item(indexArrayList++);
 			cltbPtr->SetVal(Convert::ToString(tab_rp_registers_low[42]));
+			cltbPtr->SetColor(2);
 			//P_cde : float32
 			cltbPtr = (CLabelTextBox *) pal->get_Item(indexArrayList++);
 			cltbPtr->SetVal(Convert::ToString(PermutToReversed(tab_rp_registers_low,43)));
+			cltbPtr->SetColor(2);
 			//Pp : float32
 			cltbPtr = (CLabelTextBox *) pal->get_Item(indexArrayList++);
@@ -747,5 +917,9 @@
 			//N_cur : ui16
 			cltbPtr = (CLabelTextBox *) pal->get_Item(indexArrayList++);
-			cltbPtr->SetVal(Convert::ToString(tab_rp_registers_low[27]));
+			if (tab_rp_registers_low[27]==(NB_ETAPES-4))//N_cur s'arrete a 8
+				cltbPtr->SetVal("Balayage...");
+			else
+				cltbPtr->SetVal(Convert::ToString(tab_rp_registers_low[27]));
+			cltbPtr->SetColor(2);
 
 			//SVd : ui16
@@ -765,4 +939,5 @@
 			cltbPtr = (CLabelTextBox *) pal->get_Item(indexArrayList++);
 			cltbPtr->SetVal(Convert::ToString(tab_rp_registers_low[37]));
+			cltbPtr->SetColor(2);
 			//Pic : float32
 			cltbPtr = (CLabelTextBox *) pal->get_Item(indexArrayList++);
@@ -771,4 +946,5 @@
 			cltbPtr = (CLabelTextBox *) pal->get_Item(indexArrayList++);
 			cltbPtr->SetVal(Convert::ToString((tab_rp_registers_low[40]<<16)+(tab_rp_registers_low[41])));
+			cltbPtr->SetColor(2);
 
 			//SVil : ui16
@@ -788,17 +964,24 @@
 				cltbPtr->SetColor(1);
 			else
-				cltbPtr->SetColor(0);
+				cltbPtr->SetColor(2);
 			//Nil : ui16
 			cltbPtr = (CLabelTextBox *) pal->get_Item(indexArrayList++);
 			cltbPtr->SetVal(Convert::ToString(tab_rp_registers_low[30]));
+			if(tab_rp_registers_low[30])//echec changer couleur
+				cltbPtr->SetColor(1);
+			else
+				cltbPtr->SetColor(2);
 			//Nil_stat : ui16
 			cltbPtr = (CLabelTextBox *) pal->get_Item(indexArrayList++);
 			cltbPtr->SetVal(Convert::ToString(tab_rp_registers_low[31]));
+			cltbPtr->SetColor(2);
 			//P_last : float32
 			cltbPtr = (CLabelTextBox *) pal->get_Item(indexArrayList++);
 			cltbPtr->SetVal(Convert::ToString(PermutToReversed(tab_rp_registers_low,32)));
+			cltbPtr->SetColor(2);
 			//N_last : ui16
 			cltbPtr = (CLabelTextBox *) pal->get_Item(indexArrayList++);
 			cltbPtr->SetVal(Convert::ToString(tab_rp_registers_low[34]));
+			cltbPtr->SetColor(2);
 			//DPil : float32
 			cltbPtr = (CLabelTextBox *) pal->get_Item(indexArrayList++);
@@ -810,4 +993,5 @@
 				cltbPtr = (CLabelTextBox *) pal->get_Item(indexArrayList++);
 				cltbPtr->SetVal(Convert::ToString(tab_rp_registers_low[indexMbArray]));
+				cltbPtr->SetColor(2);
 			}
 
@@ -817,9 +1001,9 @@
 				cltbPtr = (CLabelTextBox *) pal->get_Item(indexArrayList++);
 				cltbPtr->SetVal(Convert::ToString(tab_rp_bits[indexMbArray]));
-				if(!tab_rp_bits[indexMbArray])//echec changer couleur
+/*				if(!tab_rp_bits[indexMbArray])//echec changer couleur
 					cltbPtr->SetColor(1);
 				else
 					cltbPtr->SetColor(0);
-			}
+*/			}
 
 			//Temp_cond : tab ui16
@@ -828,8 +1012,10 @@
 				cltbPtr = (CLabelTextBox *) pal->get_Item(indexArrayList++);
 				cltbPtr->SetVal(Convert::ToString(tab_rp_registers_low[indexMbArray]));
+				cltbPtr->SetColor(2);
 			}
 
 			//status : ui16
 			cltbPtr = (CLabelTextBox *) pal->get_Item(indexArrayList++);
+			cltbPtr->SetColor(2);
 			if (tab_rp_registers_low[49] != 4)//on n'est pas ds le mode pulsing
 			{
@@ -877,4 +1063,5 @@
 			cltbPtr = (CLabelTextBox *) pal->get_Item(indexArrayList++);
 			cltbPtr->SetVal(Convert::ToString(tab_rp_registers_low[47]));
+			cltbPtr->SetColor(2);
 
 			Thread::Sleep(500);
@@ -897,4 +1084,5 @@
 			cltbPtr = (CLabelTextBox *) pal->get_Item(indexArrayList++);
 			cltbPtr->SetVal(str);
+			cltbPtr->SetColor(2);
 			String* strHD[] = {
 				Convert::ToString(tab_rp_registers_high[87]),
@@ -906,4 +1094,5 @@
 			cltbPtr = (CLabelTextBox *) pal->get_Item(indexArrayList++);
 			cltbPtr->SetVal(str);
+			cltbPtr->SetColor(2);
 
 			//DateF HeureF : tab ui16
@@ -917,4 +1106,5 @@
 			cltbPtr = (CLabelTextBox *) pal->get_Item(indexArrayList++);
 			cltbPtr->SetVal(str);
+			cltbPtr->SetColor(2);
 			String* strHF[] = {
 				Convert::ToString(tab_rp_registers_high[93]),
@@ -926,4 +1116,5 @@
 			cltbPtr = (CLabelTextBox *) pal->get_Item(indexArrayList++);
 			cltbPtr->SetVal(str);
+			cltbPtr->SetColor(2);
 
 			//Vides : tab ui16
@@ -932,4 +1123,5 @@
 				cltbPtr = (CLabelTextBox *) pal->get_Item(indexArrayList++);
 				cltbPtr->SetVal(Convert::ToString(tab_rp_registers_high[indexMbArray]));
+				cltbPtr->SetColor(2);
 			}
 
@@ -939,4 +1131,5 @@
 				cltbPtr = (CLabelTextBox *) pal->get_Item(indexArrayList++);
 				cltbPtr->SetVal(Convert::ToString(PermutToReversed(tab_rp_registers_high,indexMbArray)));
+				cltbPtr->SetColor(2);
 			}
 
@@ -946,4 +1139,5 @@
 				cltbPtr = (CLabelTextBox *) pal->get_Item(indexArrayList++);
 				cltbPtr->SetVal(Convert::ToString(PermutToReversed(tab_rp_registers_high,indexMbArray)));
+				cltbPtr->SetColor(2);
 			}
 
@@ -953,4 +1147,5 @@
 				cltbPtr = (CLabelTextBox *) pal->get_Item(indexArrayList++);
 				cltbPtr->SetVal(Convert::ToString(PermutToReversed(tab_rp_registers_high,indexMbArray)));
+				cltbPtr->SetColor(2);
 			}
 
@@ -960,4 +1155,5 @@
 				cltbPtr = (CLabelTextBox *) pal->get_Item(indexArrayList++);
 				cltbPtr->SetVal(Convert::ToString(PermutToReversed(tab_rp_registers_low,indexMbArray)));
+				cltbPtr->SetColor(2);
 			}
 
@@ -967,4 +1163,5 @@
 				cltbPtr = (CLabelTextBox *) pal->get_Item(indexArrayList++);
 				cltbPtr->SetVal(Convert::ToString(tab_rp_registers_low[indexMbArray]));
+				cltbPtr->SetColor(2);
 			}
 
@@ -991,6 +1188,62 @@
 					break;
 			}
-//
-//
+
+			//Ln : tab ui16
+			for (int indexMbArray=0;indexMbArray<8;indexMbArray++)
+			{
+				cltbPtr = (CLabelTextBox *) pal->get_Item(indexArrayList++);
+				cltbPtr->SetVal(Convert::ToString(tab_rp_registers_high[indexMbArray]));
+			}
+
+			//Tp_max : tab ui16
+			for (int indexMbArray=24;indexMbArray<31;indexMbArray++)
+			{
+				cltbPtr = (CLabelTextBox *) pal->get_Item(indexArrayList++);
+				cltbPtr->SetVal(Convert::ToString(tab_rp_registers_high[indexMbArray]));
+			}
+
+			//Pi_max : tab float32
+			for (int indexMbArray=36;indexMbArray<52;indexMbArray+=2)
+			{
+				cltbPtr = (CLabelTextBox *) pal->get_Item(indexArrayList++);
+				cltbPtr->SetVal(Convert::ToString(PermutToReversed(tab_rp_registers_high,indexMbArray)));
+			}
+
+			//Erreur : ui16
+			cltbPtr = (CLabelTextBox *) pal->get_Item(indexArrayList++);
+			switch (tab_rp_registers_low[29]){//Erreur
+					case 1:
+						cltbPtr->SetVal("erreur 1");
+						cltbPtr->SetColor(1);
+					break;
+					case 2:
+						cltbPtr->SetVal("erreur 2");
+						cltbPtr->SetColor(1);
+					break;
+					case 3:
+						cltbPtr->SetVal("erreur 3");
+						cltbPtr->SetColor(1);
+					break;
+					case 4:
+						cltbPtr->SetVal("erreur 4");
+						cltbPtr->SetColor(1);
+					break;
+					case 5:
+						cltbPtr->SetVal("erreur 5");
+						cltbPtr->SetColor(1);
+					break;
+					case 6:
+						cltbPtr->SetVal("erreur 6");
+						cltbPtr->SetColor(1);
+					break;
+					case 7:
+						cltbPtr->SetVal("erreur 7");
+						cltbPtr->SetColor(1);
+					break;
+					default:
+						cltbPtr->SetVal("pas d'erreur");
+						cltbPtr->SetColor(0);
+					break;
+				}
 		}
  	}
@@ -1000,5 +1253,5 @@
         // Creation
         gbox = new GroupBox();
-        gbox->Text = S"enable lecture";
+        gbox->Text = S"lecture";
 		gbox->Size = System::Drawing::Size(200, 150);//taille du groupbox en pixels
         gbox->Location = Point(200, 90);
@@ -1043,9 +1296,29 @@
 		Controls->Add(num_C);
 		int j=60;//depart affichage
-//		for (int i=0;indexTextBox<34;indexTextBox++,i++,j+=80)//creation des controles dans le formulaire
-		for (int i=0;i<NB_COUPLEURS;indexTextBox++,i++,j+=80)//creation des controles dans le formulaire
+/*		for (int i=0;i<NB_COUPLEURS;indexTextBox++,i++,j+=80)//creation des controles dans le formulaire
 		{
 			int posX=70;
 			pal->Add(new CLabelTextBox(nameLab_2[i],posX+j,390,25,16,50));
+			CLabelTextBox* cltbPtr = (CLabelTextBox *) pal->get_Item(indexTextBox);
+			Controls->Add(cltbPtr->GetLabel());
+			Controls->Add(cltbPtr->GetTextBox());
+		}
+*/
+		int posX;
+		for (int i=0;i<NB_COUPLEURS;indexTextBox++,i++)//creation des controles dans le formulaire
+		{
+			switch (i)
+			{
+				case 0:posX=120;break;
+				case 1:posX=190;break;
+				case 2:posX=300;break;
+				case 3:posX=370;break;
+				case 4:posX=480;break;
+				case 5:posX=550;break;
+				case 6:posX=660;break;
+				case 7:posX=730;break;
+			}
+			Console::WriteLine(posX);
+			pal->Add(new CLabelTextBox(nameLab_2[i],posX,390,25,16,50));
 			CLabelTextBox* cltbPtr = (CLabelTextBox *) pal->get_Item(indexTextBox);
 			Controls->Add(cltbPtr->GetLabel());
@@ -1059,5 +1332,5 @@
 		stat_C->Text = "Stat_C";//zone de texte initialisée 
 		stat_C->TextAlign = ContentAlignment::MiddleRight;
-		Controls->Add(stat_C);
+//4-07-13		Controls->Add(stat_C);
 		j=20;//depart affichage
 //		for (int i=0;indexTextBox<46;indexTextBox++,i++,j+=60)//creation des controles dans le formulaire
@@ -1067,17 +1340,16 @@
 			pal->Add(new CLabelTextBox(Convert::ToString(i+1),posX+j,630,25,16,20));
 			CLabelTextBox* cltbPtr = (CLabelTextBox *) pal->get_Item(indexTextBox);
-			Controls->Add(cltbPtr->GetLabel());
-			Controls->Add(cltbPtr->GetTextBox());
+//4-07-13			Controls->Add(cltbPtr->GetLabel());
+//4-07-13			Controls->Add(cltbPtr->GetTextBox());
 		}
 
 		// Temp_cond label tt seul
 		Label* temp_cond= new Label();
-		temp_cond->Location = Point(50, 670);
-		temp_cond->Size = System::Drawing::Size(70,16);
-		temp_cond->Text = "Temp_cond";//zone de texte initialisée 
+		temp_cond->Location = Point(50, 665);
+		temp_cond->Size = System::Drawing::Size(65,32);
+		temp_cond->Text = "Temp_cond       (min)";//zone de texte initialisée 
 		temp_cond->TextAlign = ContentAlignment::MiddleRight;
 		Controls->Add(temp_cond);
 		j=20;//depart affichage
-//		for (int i=0;indexTextBox<58;indexTextBox++,i++,j+=60)//creation des controles dans le formulaire
 		for (int i=0;i<NB_ETAPES;indexTextBox++,i++,j+=60)//creation des controles dans le formulaire
 		{
@@ -1085,6 +1357,9 @@
 			pal->Add(new CLabelTextBox(Convert::ToString(i+1),posX+j,670,25,16,40));
 			CLabelTextBox* cltbPtr = (CLabelTextBox *) pal->get_Item(indexTextBox);
-			Controls->Add(cltbPtr->GetLabel());
-			Controls->Add(cltbPtr->GetTextBox());
+			if (i<8)//7 etapes et 1 balayage
+			{
+				Controls->Add(cltbPtr->GetLabel());
+				Controls->Add(cltbPtr->GetTextBox());
+			}
 		}
 
@@ -1237,5 +1512,5 @@
 			Controls->Add(cltbPtr->GetTextBox());
 		}
-
+/*
 		// crée un objet graphique
 		Graphics* pg = this->CreateGraphics();
@@ -1246,5 +1521,5 @@
 		//dispose l'objet Graphics
 		pg->Dispose();
-
+*/
         // ajout du groupe dans le formulaire.
         Controls->Add(gboxC);
@@ -1282,6 +1557,6 @@
         btnPause->Size = System::Drawing::Size(70, 20);
         btnPause->Location = Point(230, 720);
-        btnPause->Click += new EventHandler(this, &MaDialogUser::BtnPause_Clicked);
-        Controls->Add(btnPause);
+//        btnPause->Click += new EventHandler(this, &MaDialogUser::BtnPause_Clicked);
+//        Controls->Add(btnPause);
 
        // idem bouton REPRISE
@@ -1302,15 +1577,19 @@
 			// Create the thread, passing a ThreadStart delegate that
 			// represents the ThreadReadModbus::ThreadProc method.
-			uThread = new Thread(new ThreadStart(0, &MaDialogUser::ThreadProc));
-			// Start the thread.  
-			uThread->Start();
+			if (uThread==NULL)
+			{
+				uThread = new Thread(new ThreadStart(0, &MaDialogUser::ThreadProc));
+				// Start the thread.  
+				uThread->Start();
+			}
 		}
         else if (pSender == rb2)
 		{
 			Console::WriteLine(S"MaDialogUser::Radio_Clicked : lecture désactivée...");
-			if (uThread->IsAlive)
+			if ((uThread!=NULL)&&(uThread->IsAlive))
 			{
 				// Stop the thread.  
 				uThread->Suspend();
+				uThread=NULL;
 			}
 		}	
@@ -1407,15 +1686,8 @@
 
 void AboutBox::OKButton_Clicked(Object* pSender,EventArgs* pArgs)//gestionnaire d'evenement de la boite dialogue
-	{
-
-		//se contente de fermer le formulaire lorsqu'on clique sur le bouton
-		Close();
-	}
-
-void MaDialog::OKMaDBtn_Clicked(Object* pSender,EventArgs* pArgs)//gestionnaire d'evenement de la boite dialogue
-	{
-		//fermer le formulaire lorsqu'on clique sur le bouton
-		Close();
-	}
+{
+	//se contente de fermer le formulaire lorsqu'on clique sur le bouton
+	Close();
+}
 
 AboutBox::AboutBox()//constructeur
@@ -1518,5 +1790,5 @@
         // bouton Cancel
         CancelBtn->Location = Point(192, 136);
-        CancelBtn->Name = "Bouton Cancel";
+        CancelBtn->Name = "Bouton Annuler";
         CancelBtn->Text = "Annuler";
         CancelBtn->DialogResult = DialogResult::Cancel;
@@ -1543,4 +1815,10 @@
 	}
 
+void MaDialog::OKMaDBtn_Clicked(Object* pSender,EventArgs* pArgs)//gestionnaire d'evenement de la boite dialogue
+{
+	//se contente de fermer le formulaire lorsqu'on clique sur le bouton
+	Close();
+}
+
 void MaDialog::setIp(String* theIp)
 {
@@ -1601,12 +1879,11 @@
 void CppForm::Btn1_Clicked(Object* pSender, EventArgs* pArgs)//gestionnaire d'evenements associés au bouton 1
     {
-		MessageBox::Show(S"ça marche!", S"Message...");//MessageBox fait partie de l'espace de noms Forms
+		MessageBox::Show(S"ça marche!", S"A FAIRE...");//MessageBox fait partie de l'espace de noms Forms
 		//unique methode Show surchargée acceptant differents parametres
     }
 
-
 void CppForm::Btn2_Clicked(Object* pSender, EventArgs* pArgs)//gestionnaire d'evenements associés au bouton 2
     {
-        MessageBox::Show(S"ça marche aussi!", S"Message...");//MessageBox fait partie de l'espace de noms Forms
+        MessageBox::Show(S"ça marche aussi!", S"A FAIRE...");//MessageBox fait partie de l'espace de noms Forms
   		//unique methode Show surchargée acceptant differents parametres
     }
@@ -1614,5 +1891,5 @@
 void CppForm::Btn3_Clicked(Object* pSender, EventArgs* pArgs)//gestionnaire d'evenements associés au bouton 3
     {
-        MessageBox::Show(S"connexion et lecture serveur", S"Message...");//MessageBox fait partie de l'espace de noms Forms
+        MessageBox::Show(S"connexion et lecture serveur", S"A FAIRE...");//MessageBox fait partie de l'espace de noms Forms
   		//unique methode Show surchargée acceptant differents parametres
     }
@@ -1673,5 +1950,5 @@
         {
 			//affiche la boite de dialogue modale qui doit etre fermée avant de pouvoir revenir à l'application
-			MessageBox::Show(S"ITEM  à propos", S"Menu");
+//			MessageBox::Show(S"ITEM  à propos", S"Menu");
 			AboutBox* box = new AboutBox();
 			box->ShowDialog();
@@ -1700,4 +1977,7 @@
 				String* line = sr->ReadLine();
 				box->setIp(line);
+				sr->Close;
+				fs->Flush();
+				fs->Close();
 			}
 			catch (System::Exception* pe)
@@ -1708,9 +1988,10 @@
 			box->setPort(S"502");
 			box->setTimeout(1);
+
 			//affiche la boite de dialogue
 			if (box->ShowDialog() == DialogResult::OK)
             {
                 //si la valeur OK est renvoyée, on affiche le nom
-                MessageBox::Show(box->getIp(), S"le n° IP était...");
+                MessageBox::Show(box->getIp(), S"IP du serveur");
             }
 
@@ -1728,5 +2009,5 @@
             {
                 //si la valeur OK est renvoyée, on affiche le nom
-                MessageBox::Show(S"Lecture");
+//                MessageBox::Show(S"Lecture");
             }
 		}
@@ -1753,4 +2034,7 @@
 					StreamReader* sr = new StreamReader(fs);
 					lineIp = sr->ReadLine();
+					sr->Close;
+					fs->Flush();
+					fs->Close();
 				}
 				catch (System::Exception* pe)
@@ -1898,5 +2182,4 @@
         Controls->Add(btn4);//..
 		                    //..
- 
     }
 
@@ -2028,5 +2311,5 @@
         // Cree les elements du menu et les affiche.
         item1 = new MenuItem("&A propos...");
-		item11 = new MenuItem("&MaDialogBox...");
+		item11 = new MenuItem("&Choisir Serveur...");
 		fontDlgItem = new MenuItem("&Choisir la police...");
         item2 = new MenuItem("S&ortie");
@@ -2076,6 +2359,9 @@
 
 		text1->ReadOnly = true;
-		text1->Text = "Pour se connecter au Serveur : cliquer sur le bouton Connexion \r\n\r\n"
-			"Pour configurer des paramètres : cliquer sur le bouton Ecriture \r\n\r\n";
+//		text1->Text = "Pour se connecter au Serveur : cliquer sur le bouton Connexion \r\n\r\n"
+//			"Pour configurer des paramètres : cliquer sur le bouton Ecriture \r\n\r\n";
+		text1->Text = "Pour se connecter au Serveur : dans le menu 'Action', cliquer sur 'Faire' puis sur 'connexion serveur'.\r\n\r\n"
+			"on peut alors accéder aux paramètres : dans le menu 'Action', cliquer sur 'Faire' puis sur 'lecture serveur'\r\n\r\n"
+			"ou bien configurer des paramètres : cliquer sur le bouton Ecriture \r\n\r\n";
 
 
