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
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{

View file

@ -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();
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:
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;
}
}

View file

@ -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);
@ -408,5 +416,13 @@ namespace DMX2
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)
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;
}
}
}

View file

@ -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);

View file

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