diff --git a/DMX-2.0/Conduite.cs b/DMX-2.0/Conduite.cs
index b73abd8..1fa23c8 100644
--- a/DMX-2.0/Conduite.cs
+++ b/DMX-2.0/Conduite.cs
@@ -74,7 +74,7 @@ namespace DMX2
// Démarrage du thread
tickThread = new Thread (new ThreadStart (ThreadLoop));
tickThread.Start ();
- derniereMaj = dernierTick = DateTime.Now;
+
}
public EventManager EventManager {
@@ -195,7 +195,7 @@ namespace DMX2
{
Thread.CurrentThread.Priority = ThreadPriority.AboveNormal;
DateTime next;
-
+ dernierTick = DateTime.Now;
while (running) {
try{
diff --git a/DMX-2.0/DriverBoitierV2.cs b/DMX-2.0/DriverBoitierV2.cs
index 1818856..eb718b9 100644
--- a/DMX-2.0/DriverBoitierV2.cs
+++ b/DMX-2.0/DriverBoitierV2.cs
@@ -46,6 +46,7 @@ namespace DMX2
portname = serialport;
outputbuffer[0]=27;
outputbuffer[1]=68;
+ Start();
}
@@ -59,20 +60,26 @@ namespace DMX2
void Connection ()
{
+ Console.WriteLine ("DriverV2.Connection()");
if (serial != null) {
- serial.Close();
- serial.Dispose();
+ serial.Close ();
+ serial.Dispose ();
}
- serial = new SerialPort(portname, 460800,Parity.None,8,StopBits.One);
- serial.DtrEnable = false;
- serial.ReadTimeout = 15;
+ serial = new SerialPort (portname, 460800, Parity.None, 8, StopBits.One);
+ //serial.DtrEnable = false;
+ serial.ReadTimeout = 200;
serial.WriteTimeout = 200;
- serial.Open();
- etat = etatAutomate.Transmission;
+ try {
+ serial.Open ();
+ etat = etatAutomate.Transmission;
+ } catch {
+ etat = etatAutomate.Deconnecte;
+ }
}
volatile etatAutomate etat = etatAutomate.Deconnecte;
DateTime finAttente = DateTime.Now;
+ int compteErreur = 0;
void MainLoop()
{
@@ -81,7 +88,9 @@ namespace DMX2
switch (etat) {
case etatAutomate.Deconnecte:
Connection();
- Attente(DateTime.Now.AddMilliseconds(200));
+ compteErreur= 0;
+ Attente(DateTime.Now.AddMilliseconds(1000));
+ serial.DiscardInBuffer();
break;
case etatAutomate.Transmission:
finAttente = DateTime.Now.AddMilliseconds (22);
@@ -90,8 +99,15 @@ namespace DMX2
Attente(finAttente);
break;
case etatAutomate.Erreur:
- Deconnecte();
- Attente(DateTime.Now.AddSeconds(2));
+ compteErreur ++;
+ if(compteErreur>3){
+ Deconnecte();
+ Attente(DateTime.Now.AddSeconds(2));
+ }
+ else {
+ Attente(DateTime.Now.AddSeconds(1));
+ etat = etatAutomate.Transmission;
+ }
break;
// case etatAutomate.Parametrage:
// EnvoiParam();
@@ -115,6 +131,7 @@ namespace DMX2
void Deconnecte ()
{
+ Console.WriteLine("DriverV2.Deconnection");
etat = etatAutomate.Deconnecte;
if(serial == null) return;
@@ -129,11 +146,12 @@ namespace DMX2
etat = etatAutomate.Erreur;
}
- if(patch1!=null) patch1.CalculUnivers(outputbuffer,3,512);
+ if(patch1!=null) patch1.CalculUnivers(outputbuffer,2,512);
serial.Write(outputbuffer,0,outputbuffer.Length);
- } catch (TimeoutException ex) {
+ } catch (Exception ex) {
+ Console.WriteLine("Exception Envoi {0}",ex);
etat = etatAutomate.Erreur;
}
}
@@ -158,9 +176,12 @@ namespace DMX2
}
serial.Read(inputbuffer,0,inputbuffer.Length);
- ProcessInput();
-
- } catch (TimeoutException ex) {
+ //ProcessInput();
+ //Console.WriteLine(inputbuffer[0]);
+ compteErreur= 0;
+ } catch (Exception ex) {
+ Console.WriteLine(serial.BytesToRead);
+ Console.WriteLine("Exception Reception {0}",ex);
etat = etatAutomate.Erreur;
}
}
diff --git a/DMX-2.0/EditionUnivers.cs b/DMX-2.0/EditionUnivers.cs
index 4209128..ff3bcf9 100644
--- a/DMX-2.0/EditionUnivers.cs
+++ b/DMX-2.0/EditionUnivers.cs
@@ -35,7 +35,12 @@ namespace DMX2
TreeIter iter;
lsCbUnivers.GetIterFirst(out iter);
cbUnivers.SetActiveIter(iter);
+ this.Destroyed += HandleDestroyed;
+ }
+ void HandleDestroyed (object sender, EventArgs e)
+ {
+ universEdite.AllumageForce[currDimm] = false;
}
void RenderUniversName (CellLayout cell_layout, CellRenderer cell, TreeModel tree_model, TreeIter iter)
@@ -223,6 +228,9 @@ namespace DMX2
majencour = true;
int id = (int)(spinDimmer.Value);
+ universEdite.AllumageForce[currDimm] = false;
+ btAllume.Active = false;
+
currDimm = id - 1;
tvDimm.SetCursor( new TreePath( new int[1] { currDimm }) ,null,false);
@@ -406,7 +414,15 @@ namespace DMX2
universEdite.Dimmers[i].param1 = 100;
}
MajListeDimmer();
+ }
+
+ protected void OnBtAllumeClicked (object sender, EventArgs e)
+ {
+ if (majencour)
+ return;
+ universEdite.AllumageForce[currDimm] = btAllume.Active;
}
+
}
}
diff --git a/DMX-2.0/GestionDriversUI.cs b/DMX-2.0/GestionDriversUI.cs
index 9f5b4cd..7ad49b7 100644
--- a/DMX-2.0/GestionDriversUI.cs
+++ b/DMX-2.0/GestionDriversUI.cs
@@ -105,19 +105,23 @@ namespace DMX2
if (fi == null)
return;
- DriverDMX drv = Conduite.Courante.GetDriverByID (fi.Name);
+ drv = Conduite.Courante.GetDriverByID (fi.Name);
if (drv == null) {
btnConnect.Visible = btnConnect.Sensitive = true;
btnDisconnect.Visible = btnDisconnect.Sensitive = false;
comboDriver.Sensitive = true;
comboDriver.Active=-1;
+ if(frmDrvChild.Child!=null)
+ frmDrvChild.Remove(frmDrvChild.Child);
return;
}
- AfficheDriverUI(drv);
+ AfficheDriverUI();
}
+
+ DriverDMX drv=null;
protected void OnBtnConnectClicked (object sender, EventArgs e)
{
// Instancie
@@ -132,7 +136,7 @@ namespace DMX2
if (fi == null)
return;
- DriverDMX drv=null;
+ drv=null;
switch (comboDriver.Active) {
case 0:
@@ -147,16 +151,20 @@ namespace DMX2
return;
}
- AfficheDriverUI(drv);
+ AfficheDriverUI();
}
protected void OnBtnDisConnectClicked (object sender, EventArgs e)
{
- //Dispose;
+ if (drv != null) {
+ drv.Dispose ();
+ Conduite.Courante.Drivers.Remove (drv);
+ }
+
}
- void AfficheDriverUI(DriverDMX drv){
+ void AfficheDriverUI(){
btnConnect.Visible = false;
comboDriver.Sensitive = false;
@@ -166,6 +174,15 @@ namespace DMX2
frmDrvChild.ShowAll();
}
+
+ void EffaceDriverUI(){
+ btnConnect.Visible = true;
+ comboDriver.Sensitive = true;
+
+ btnDisconnect.Visible = btnDisconnect.Sensitive = false;
+
+
+ }
}
}
diff --git a/DMX-2.0/gtk-gui/DMX2.EditionUnivers.cs b/DMX-2.0/gtk-gui/DMX2.EditionUnivers.cs
index da56e52..c0f319f 100644
--- a/DMX-2.0/gtk-gui/DMX2.EditionUnivers.cs
+++ b/DMX-2.0/gtk-gui/DMX2.EditionUnivers.cs
@@ -376,6 +376,7 @@ namespace DMX2
this.btAdd.Clicked += new global::System.EventHandler (this.OnBtAddClicked);
this.btPatchDroit.Clicked += new global::System.EventHandler (this.OnBtPatchDroitClicked);
this.btReset.Clicked += new global::System.EventHandler (this.OnBtResetClicked);
+ this.btAllume.Clicked += new global::System.EventHandler (this.OnBtAllumeClicked);
this.spinDimmer.ValueChanged += new global::System.EventHandler (this.OnSpinDimmerValueChanged);
this.cbCircuit.Changed += new global::System.EventHandler (this.OnCbCircuitChanged);
this.cbFT.Changed += new global::System.EventHandler (this.OnCbFTChanged);
diff --git a/DMX-2.0/gtk-gui/gui.stetic b/DMX-2.0/gtk-gui/gui.stetic
index 2bb68d6..095aa0f 100644
--- a/DMX-2.0/gtk-gui/gui.stetic
+++ b/DMX-2.0/gtk-gui/gui.stetic
@@ -1366,6 +1366,7 @@ au sequenceur
stock:gtk-find Menu
Allumer !
True
+
0