Modifs diverses apres tests sur stager

This commit is contained in:
manu 2013-12-08 16:14:33 +00:00
parent 4968abe429
commit 9efb590fea
6 changed files with 79 additions and 23 deletions

View file

@ -74,7 +74,7 @@ namespace DMX2
// Démarrage du thread // Démarrage du thread
tickThread = new Thread (new ThreadStart (ThreadLoop)); tickThread = new Thread (new ThreadStart (ThreadLoop));
tickThread.Start (); tickThread.Start ();
derniereMaj = dernierTick = DateTime.Now;
} }
public EventManager EventManager { public EventManager EventManager {
@ -195,7 +195,7 @@ namespace DMX2
{ {
Thread.CurrentThread.Priority = ThreadPriority.AboveNormal; Thread.CurrentThread.Priority = ThreadPriority.AboveNormal;
DateTime next; DateTime next;
dernierTick = DateTime.Now;
while (running) { while (running) {
try{ try{

View file

@ -46,6 +46,7 @@ namespace DMX2
portname = serialport; portname = serialport;
outputbuffer[0]=27; outputbuffer[0]=27;
outputbuffer[1]=68; outputbuffer[1]=68;
Start();
} }
@ -59,20 +60,26 @@ namespace DMX2
void Connection () void Connection ()
{ {
Console.WriteLine ("DriverV2.Connection()");
if (serial != null) { if (serial != null) {
serial.Close(); serial.Close ();
serial.Dispose(); serial.Dispose ();
} }
serial = new SerialPort(portname, 460800,Parity.None,8,StopBits.One); serial = new SerialPort (portname, 460800, Parity.None, 8, StopBits.One);
serial.DtrEnable = false; //serial.DtrEnable = false;
serial.ReadTimeout = 15; serial.ReadTimeout = 200;
serial.WriteTimeout = 200; serial.WriteTimeout = 200;
serial.Open(); try {
serial.Open ();
etat = etatAutomate.Transmission; etat = etatAutomate.Transmission;
} catch {
etat = etatAutomate.Deconnecte;
}
} }
volatile etatAutomate etat = etatAutomate.Deconnecte; volatile etatAutomate etat = etatAutomate.Deconnecte;
DateTime finAttente = DateTime.Now; DateTime finAttente = DateTime.Now;
int compteErreur = 0;
void MainLoop() void MainLoop()
{ {
@ -81,7 +88,9 @@ namespace DMX2
switch (etat) { switch (etat) {
case etatAutomate.Deconnecte: case etatAutomate.Deconnecte:
Connection(); Connection();
Attente(DateTime.Now.AddMilliseconds(200)); compteErreur= 0;
Attente(DateTime.Now.AddMilliseconds(1000));
serial.DiscardInBuffer();
break; break;
case etatAutomate.Transmission: case etatAutomate.Transmission:
finAttente = DateTime.Now.AddMilliseconds (22); finAttente = DateTime.Now.AddMilliseconds (22);
@ -90,8 +99,15 @@ namespace DMX2
Attente(finAttente); Attente(finAttente);
break; break;
case etatAutomate.Erreur: case etatAutomate.Erreur:
compteErreur ++;
if(compteErreur>3){
Deconnecte(); Deconnecte();
Attente(DateTime.Now.AddSeconds(2)); Attente(DateTime.Now.AddSeconds(2));
}
else {
Attente(DateTime.Now.AddSeconds(1));
etat = etatAutomate.Transmission;
}
break; break;
// case etatAutomate.Parametrage: // case etatAutomate.Parametrage:
// EnvoiParam(); // EnvoiParam();
@ -115,6 +131,7 @@ namespace DMX2
void Deconnecte () void Deconnecte ()
{ {
Console.WriteLine("DriverV2.Deconnection");
etat = etatAutomate.Deconnecte; etat = etatAutomate.Deconnecte;
if(serial == null) return; if(serial == null) return;
@ -129,11 +146,12 @@ namespace DMX2
etat = etatAutomate.Erreur; 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); serial.Write(outputbuffer,0,outputbuffer.Length);
} catch (TimeoutException ex) { } catch (Exception ex) {
Console.WriteLine("Exception Envoi {0}",ex);
etat = etatAutomate.Erreur; etat = etatAutomate.Erreur;
} }
} }
@ -158,9 +176,12 @@ namespace DMX2
} }
serial.Read(inputbuffer,0,inputbuffer.Length); serial.Read(inputbuffer,0,inputbuffer.Length);
ProcessInput(); //ProcessInput();
//Console.WriteLine(inputbuffer[0]);
} catch (TimeoutException ex) { compteErreur= 0;
} catch (Exception ex) {
Console.WriteLine(serial.BytesToRead);
Console.WriteLine("Exception Reception {0}",ex);
etat = etatAutomate.Erreur; etat = etatAutomate.Erreur;
} }
} }

View file

@ -35,7 +35,12 @@ namespace DMX2
TreeIter iter; TreeIter iter;
lsCbUnivers.GetIterFirst(out iter); lsCbUnivers.GetIterFirst(out iter);
cbUnivers.SetActiveIter(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) void RenderUniversName (CellLayout cell_layout, CellRenderer cell, TreeModel tree_model, TreeIter iter)
@ -223,6 +228,9 @@ namespace DMX2
majencour = true; majencour = true;
int id = (int)(spinDimmer.Value); int id = (int)(spinDimmer.Value);
universEdite.AllumageForce[currDimm] = false;
btAllume.Active = false;
currDimm = id - 1; currDimm = id - 1;
tvDimm.SetCursor( new TreePath( new int[1] { currDimm }) ,null,false); tvDimm.SetCursor( new TreePath( new int[1] { currDimm }) ,null,false);
@ -408,5 +416,13 @@ namespace DMX2
MajListeDimmer(); MajListeDimmer();
} }
protected void OnBtAllumeClicked (object sender, EventArgs e)
{
if (majencour)
return;
universEdite.AllumageForce[currDimm] = btAllume.Active;
}
} }
} }

View file

@ -105,19 +105,23 @@ namespace DMX2
if (fi == null) if (fi == null)
return; return;
DriverDMX drv = Conduite.Courante.GetDriverByID (fi.Name); drv = Conduite.Courante.GetDriverByID (fi.Name);
if (drv == null) { if (drv == null) {
btnConnect.Visible = btnConnect.Sensitive = true; btnConnect.Visible = btnConnect.Sensitive = true;
btnDisconnect.Visible = btnDisconnect.Sensitive = false; btnDisconnect.Visible = btnDisconnect.Sensitive = false;
comboDriver.Sensitive = true; comboDriver.Sensitive = true;
comboDriver.Active=-1; comboDriver.Active=-1;
if(frmDrvChild.Child!=null)
frmDrvChild.Remove(frmDrvChild.Child);
return; return;
} }
AfficheDriverUI(drv); AfficheDriverUI();
} }
DriverDMX drv=null;
protected void OnBtnConnectClicked (object sender, EventArgs e) protected void OnBtnConnectClicked (object sender, EventArgs e)
{ {
// Instancie // Instancie
@ -132,7 +136,7 @@ namespace DMX2
if (fi == null) if (fi == null)
return; return;
DriverDMX drv=null; drv=null;
switch (comboDriver.Active) { switch (comboDriver.Active) {
case 0: case 0:
@ -147,16 +151,20 @@ namespace DMX2
return; return;
} }
AfficheDriverUI(drv); AfficheDriverUI();
} }
protected void OnBtnDisConnectClicked (object sender, EventArgs e) 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; btnConnect.Visible = false;
comboDriver.Sensitive = false; comboDriver.Sensitive = false;
@ -166,6 +174,15 @@ namespace DMX2
frmDrvChild.ShowAll(); frmDrvChild.ShowAll();
} }
void EffaceDriverUI(){
btnConnect.Visible = true;
comboDriver.Sensitive = true;
btnDisconnect.Visible = btnDisconnect.Sensitive = false;
}
} }
} }

View file

@ -376,6 +376,7 @@ namespace DMX2
this.btAdd.Clicked += new global::System.EventHandler (this.OnBtAddClicked); this.btAdd.Clicked += new global::System.EventHandler (this.OnBtAddClicked);
this.btPatchDroit.Clicked += new global::System.EventHandler (this.OnBtPatchDroitClicked); this.btPatchDroit.Clicked += new global::System.EventHandler (this.OnBtPatchDroitClicked);
this.btReset.Clicked += new global::System.EventHandler (this.OnBtResetClicked); 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.spinDimmer.ValueChanged += new global::System.EventHandler (this.OnSpinDimmerValueChanged);
this.cbCircuit.Changed += new global::System.EventHandler (this.OnCbCircuitChanged); this.cbCircuit.Changed += new global::System.EventHandler (this.OnCbCircuitChanged);
this.cbFT.Changed += new global::System.EventHandler (this.OnCbFTChanged); this.cbFT.Changed += new global::System.EventHandler (this.OnCbFTChanged);

View file

@ -1366,6 +1366,7 @@ au sequenceur</property>
<property name="Icon">stock:gtk-find Menu</property> <property name="Icon">stock:gtk-find Menu</property>
<property name="Label" translatable="yes">Allumer !</property> <property name="Label" translatable="yes">Allumer !</property>
<property name="UseUnderline">True</property> <property name="UseUnderline">True</property>
<signal name="Clicked" handler="OnBtAllumeClicked" />
</widget> </widget>
<packing> <packing>
<property name="Position">0</property> <property name="Position">0</property>