Suite drivers

ajout driver 2
This commit is contained in:
manu 2013-11-28 22:34:55 +00:00
parent 095ee07bd2
commit 7854119af6
9 changed files with 944 additions and 11 deletions

View file

@ -109,6 +109,9 @@
<Compile Include="gtk-gui\DMX2.GestionDriversUI.cs" /> <Compile Include="gtk-gui\DMX2.GestionDriversUI.cs" />
<Compile Include="DriverBoitierV1UI.cs" /> <Compile Include="DriverBoitierV1UI.cs" />
<Compile Include="gtk-gui\DMX2.DriverBoitierV1UI.cs" /> <Compile Include="gtk-gui\DMX2.DriverBoitierV1UI.cs" />
<Compile Include="DriverBoitierV2.cs" />
<Compile Include="DriverBoitierV2UI.cs" />
<Compile Include="gtk-gui\DMX2.DriverBoitierV2UI.cs" />
</ItemGroup> </ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<ProjectExtensions> <ProjectExtensions>

View file

@ -35,13 +35,14 @@ namespace DMX2
//Thread de boucle //Thread de boucle
Thread loopthread=null; Thread loopthread=null;
UniversDMX patch=null; public UniversDMX patch=null;
string portname = "/dev/ttyUSB0"; string portname = "";
SerialPort serial = null; SerialPort serial = null;
public DriverBoitierV1 (string serialport, string id): base(id) public DriverBoitierV1 (string serialport, string id): base(id)
{ {
portname = serialport;
//patch = Conduite.Courante.Patches[0]; //patch = Conduite.Courante.Patches[0];
//Start(); //Start();
//serial = serialport; //serial = serialport;

View file

@ -1,4 +1,7 @@
using System; using System;
using System.Collections.Generic;
using Gtk;
using System.IO;
namespace DMX2 namespace DMX2
{ {
@ -10,7 +13,44 @@ namespace DMX2
{ {
drv = _drv; drv = _drv;
this.Build (); this.Build ();
ConstruitCBUnivers();
} }
ListStore lsCbUnivers = new ListStore(typeof(UniversDMX));
void ConstruitCBUnivers ()
{
cbUnivers.Model = lsCbUnivers;
var cellCbUnivers = new CellRendererText();
cbUnivers.PackStart(cellCbUnivers,false);
cbUnivers.SetCellDataFunc(cellCbUnivers, new CellLayoutDataFunc(RenderUniversName));
foreach(UniversDMX u in Conduite.Courante.Patches)
lsCbUnivers.AppendValues(u);
TreeIter iter;
lsCbUnivers.GetIterFirst(out iter);
cbUnivers.SetActiveIter(iter);
}
void RenderUniversName (CellLayout cell_layout, CellRenderer cell, TreeModel tree_model, TreeIter iter)
{
UniversDMX univers = tree_model.GetValue (iter, 0) as UniversDMX;
if(univers != null)
(cell as Gtk.CellRendererText).Text = univers.Nom;
}
protected void OnCbUniversChanged (object sender, EventArgs e)
{
TreeIter iter;
if(cbUnivers.GetActiveIter(out iter))
{
drv.patch = lsCbUnivers.GetValue(iter,0) as UniversDMX;
}
}
} }
} }

282
DMX-2.0/DriverBoitierV2.cs Normal file
View file

@ -0,0 +1,282 @@
using System;
using System.Threading;
using System.IO.Ports;
namespace DMX2
{
public class DriverBoitierV2 : DriverDMX, IEventProvider
{
struct buttonState {
public buttonState(byte _button, bool _pressed){
button=_button; pressed=_pressed;
}
public byte button;
public bool pressed;
}
enum etatAutomate {
Deconnecte,
Transmission,
Erreur,
Reset,
Parametrage,
Fin
}
bool[] buttons = new bool[8];
bool[] watchButtons = new bool[8];
// tampons Entrée/Sortie
byte[] inputbuffer = new byte[1];
byte[] outputbuffer = new byte[260];
//Thread de boucle
Thread loopthread=null;
public UniversDMX patch=null;
string portname = "";
SerialPort serial = null;
public DriverBoitierV2 (string serialport, string id): base(id)
{
portname = serialport;
//patch = Conduite.Courante.Patches[0];
//Start();
//serial = serialport;
outputbuffer[0]=27;
outputbuffer[1]=68;
outputbuffer[4]=255;
}
void Start ()
{
if (loopthread == null) {
loopthread = new Thread(new ThreadStart(MainLoop));
loopthread.Start();
}
}
void Connection ()
{
if (serial != null) {
serial.Close();
serial.Dispose();
}
serial = new SerialPort(portname, 460800,Parity.None,8,StopBits.One);
serial.DtrEnable = false;
serial.ReadTimeout = 15;
serial.WriteTimeout = 200;
serial.Open();
etat = etatAutomate.Transmission;
}
volatile etatAutomate etat = etatAutomate.Deconnecte;
DateTime finAttente = DateTime.Now;
void MainLoop()
{
while(etat != etatAutomate.Fin)
{
switch (etat) {
case etatAutomate.Deconnecte:
Connection();
Attente(DateTime.Now.AddMilliseconds(200));
break;
case etatAutomate.Transmission:
finAttente = DateTime.Now.AddMilliseconds (22);
EnvoiTrame();
Reception();
Attente(finAttente);
break;
case etatAutomate.Erreur:
Deconnecte();
Attente(DateTime.Now.AddSeconds(2));
break;
// case etatAutomate.Parametrage:
// EnvoiParam();
// break;
// case etatAutomate.Reset:
// EnvoiReset();
// break;
}
}
Deconnecte();
}
void Attente (DateTime date)
{
int sleeptime = (int) (date - DateTime.Now).TotalMilliseconds;
if(sleeptime>2)
Thread.Sleep(sleeptime);
while (DateTime.Now<date) Thread.Sleep(1);
}
void Deconnecte ()
{
etat = etatAutomate.Deconnecte;
if(serial == null) return;
serial.Close();
serial.Dispose();
}
void EnvoiTrame ()
{
try {
if(!serial.IsOpen) {
etat = etatAutomate.Erreur;
}
if(patch!=null) patch.CalculUnivers(outputbuffer,5,255);
serial.Write(outputbuffer,0,outputbuffer.Length);
} catch (TimeoutException ex) {
etat = etatAutomate.Erreur;
}
}
// void EnvoiParam ()
// {
// throw new NotImplementedException ();
// }
//
// void EnvoiReset ()
// {
// throw new NotImplementedException ();
// }
void Reception ()
{
try {
if(!serial.IsOpen || etat == etatAutomate.Erreur) {
etat = etatAutomate.Erreur;
return;
}
serial.Read(inputbuffer,0,inputbuffer.Length);
ProcessInput();
} catch (TimeoutException ex) {
etat = etatAutomate.Erreur;
}
}
void ProcessInput ()
{
byte b = 1; bool pressed;
for (byte i = 0; i<8; i++) {
if(!watchButtons[i]) continue;
pressed = (inputbuffer[0] & b) != 0;
if(buttons[i]^pressed)
{
eventsPending.Enqueue(new buttonState(i,pressed));
buttons[i] = pressed;
}
b <<= 1;
}
}
public override void Dispose ()
{
disposed = true;
etat = etatAutomate.Fin;
if (loopthread != null) {
loopthread.Join ();
loopthread = null;
}
//TODO : Close Port
if(serial != null)
serial.Dispose();
}
#region implemented abstract members of DMX2.DriverDMX
public override Gtk.Widget GetUI ()
{
return new DriverBoitierV2UI(this);
}
#endregion
#region IEventProvider implementation
static System.Text.RegularExpressions.Regex regexEventID = new System.Text.RegularExpressions.Regex(
@"BV2-B(?<button>\d+)?",
System.Text.RegularExpressions.RegexOptions.Compiled);
System.Collections.Concurrent.ConcurrentQueue<buttonState> eventsPending =
new System.Collections.Concurrent.ConcurrentQueue<buttonState>();
bool IEventProvider.Bind (string eventId)
{
var res = regexEventID.Match (eventId);
if (res.Success) {
int bt = int.Parse (res.Groups ["button"].Value);
if(bt<0||bt>7) return false;
watchButtons[bt] = true;
return true;
}
return false;
}
void IEventProvider.Unbind (string eventId)
{
var res = regexEventID.Match (eventId);
if (res.Success) {
int bt = int.Parse (res.Groups ["button"].Value);
if(bt<0||bt>7) return ;
watchButtons[bt] = false;
}
return;
}
Gtk.Menu IEventProvider.GetProviderSubMenu (EventManager.EventMenuData state, Gtk.ButtonPressEventHandler handler)
{
Gtk.Menu retmenu = new Gtk.Menu ();
Gtk.MenuItem evmenuitem = new Gtk.MenuItem ("Boutons");
retmenu.Add (evmenuitem);
Gtk.Menu evmenu = new Gtk.Menu ();
evmenuitem.Submenu = evmenu;
for (int i= 0; i<8;i++ ) {
Gtk.MenuItem item = new Gtk.MenuItem(string.Format("Bouton {0}",i+1));
item.Data[EventManager.EventIdKey] = string.Format("BV2-B{0}",i);
item.Data[EventManager.StateKey] = state;
item.ButtonPressEvent += handler;
evmenu.Add (item);
}
return retmenu;
}
void IEventProvider.ProcessEvents (EventManagerCallback callback)
{
buttonState bt;
EventData evd;
while (eventsPending.TryDequeue(out bt)) {
evd.id= string.Format("BV2-B{0}",bt.button );
evd.value = bt.pressed?(byte)0xFF:(byte)0x00;
callback(evd);
}
}
string IEventProvider.MenuName {
get {
return "Boitier V2";
}
}
#endregion
}
}

View file

@ -0,0 +1,67 @@
using System;
using System.Collections.Generic;
using Gtk;
using System.IO;
namespace DMX2
{
[System.ComponentModel.ToolboxItem(true)]
public partial class DriverBoitierV2UI : Gtk.Bin
{
DriverBoitierV2 drv;
public DriverBoitierV2UI (DriverBoitierV2 _drv)
{
drv = _drv;
this.Build ();
ConstruitCBUnivers();
}
ListStore lsCbUnivers1 = new ListStore(typeof(UniversDMX));
ListStore lsCbUnivers2 = new ListStore(typeof(UniversDMX));
void ConstruitCBUnivers ()
{
cbUnivers1.Model = lsCbUnivers1;
var cellCbUnivers1 = new CellRendererText();
cbUnivers1.PackStart(cellCbUnivers1,false);
cbUnivers1.SetCellDataFunc(cellCbUnivers1, new CellLayoutDataFunc(RenderUniversName1));
foreach(UniversDMX u in Conduite.Courante.Patches)
lsCbUnivers1.AppendValues(u);
TreeIter iter;
lsCbUnivers1.GetIterFirst(out iter);
cbUnivers1.SetActiveIter(iter);
cbUnivers2.Model = lsCbUnivers2;
var cellCbUnivers2 = new CellRendererText();
cbUnivers2.PackStart(cellCbUnivers2,false);
cbUnivers2.SetCellDataFunc(cellCbUnivers2, new CellLayoutDataFunc(RenderUniversName2));
foreach(UniversDMX u in Conduite.Courante.Patches)
lsCbUnivers2.AppendValues(u);
//TreeIter iter;
lsCbUnivers2.GetIterFirst(out iter);
cbUnivers2.SetActiveIter(iter);
}
void RenderUniversName1 (CellLayout cell_layout, CellRenderer cell, TreeModel tree_model, TreeIter iter)
{
UniversDMX univers = tree_model.GetValue (iter, 0) as UniversDMX;
if(univers != null)
(cell as Gtk.CellRendererText).Text = univers.Nom;
}
void RenderUniversName2 (CellLayout cell_layout, CellRenderer cell, TreeModel tree_model, TreeIter iter)
{
UniversDMX univers = tree_model.GetValue (iter, 0) as UniversDMX;
if(univers != null)
(cell as Gtk.CellRendererText).Text = univers.Nom;
}
}
}

View file

@ -19,7 +19,6 @@ namespace DMX2
lsDriver = new Gtk.ListStore(typeof (String)); lsDriver = new Gtk.ListStore(typeof (String));
lsDriver.AppendValues("V1 256/0/0/8","0"); lsDriver.AppendValues("V1 256/0/0/8","0");
lsDriver.AppendValues("V2 512/512/16/16","1");
lsDriver.AppendValues("V2 1024/512/16/16","2"); lsDriver.AppendValues("V2 1024/512/16/16","2");
comboDriver.Model = lsDriver; comboDriver.Model = lsDriver;
@ -140,6 +139,10 @@ namespace DMX2
drv = new DriverBoitierV1(fi.FullName, fi.Name); drv = new DriverBoitierV1(fi.FullName, fi.Name);
Conduite.Courante.Drivers.Add(drv); Conduite.Courante.Drivers.Add(drv);
break; break;
case 1:
drv = new DriverBoitierV2(fi.FullName, fi.Name);
Conduite.Courante.Drivers.Add(drv);
break;
default: default:
return; return;
} }

View file

@ -7,7 +7,7 @@ namespace DMX2
private global::Gtk.VBox vbox2; private global::Gtk.VBox vbox2;
private global::Gtk.Label label1; private global::Gtk.Label label1;
private global::Gtk.Table table1; private global::Gtk.Table table1;
private global::Gtk.ComboBox combobox1; private global::Gtk.ComboBox cbUnivers;
private global::Gtk.Label label4; private global::Gtk.Label label4;
private global::Gtk.Label label5; private global::Gtk.Label label5;
private global::Gtk.Label lblEtat; private global::Gtk.Label lblEtat;
@ -37,10 +37,10 @@ namespace DMX2
this.table1.RowSpacing = ((uint)(6)); this.table1.RowSpacing = ((uint)(6));
this.table1.ColumnSpacing = ((uint)(6)); this.table1.ColumnSpacing = ((uint)(6));
// Container child table1.Gtk.Table+TableChild // Container child table1.Gtk.Table+TableChild
this.combobox1 = global::Gtk.ComboBox.NewText (); this.cbUnivers = global::Gtk.ComboBox.NewText ();
this.combobox1.Name = "combobox1"; this.cbUnivers.Name = "cbUnivers";
this.table1.Add (this.combobox1); this.table1.Add (this.cbUnivers);
global::Gtk.Table.TableChild w2 = ((global::Gtk.Table.TableChild)(this.table1 [this.combobox1])); global::Gtk.Table.TableChild w2 = ((global::Gtk.Table.TableChild)(this.table1 [this.cbUnivers]));
w2.TopAttach = ((uint)(1)); w2.TopAttach = ((uint)(1));
w2.BottomAttach = ((uint)(2)); w2.BottomAttach = ((uint)(2));
w2.LeftAttach = ((uint)(1)); w2.LeftAttach = ((uint)(1));
@ -68,7 +68,7 @@ namespace DMX2
// Container child table1.Gtk.Table+TableChild // Container child table1.Gtk.Table+TableChild
this.lblEtat = new global::Gtk.Label (); this.lblEtat = new global::Gtk.Label ();
this.lblEtat.Name = "lblEtat"; this.lblEtat.Name = "lblEtat";
this.lblEtat.LabelProp = "label6"; this.lblEtat.LabelProp = "Univer associé";
this.table1.Add (this.lblEtat); this.table1.Add (this.lblEtat);
global::Gtk.Table.TableChild w5 = ((global::Gtk.Table.TableChild)(this.table1 [this.lblEtat])); global::Gtk.Table.TableChild w5 = ((global::Gtk.Table.TableChild)(this.table1 [this.lblEtat]));
w5.LeftAttach = ((uint)(1)); w5.LeftAttach = ((uint)(1));

View file

@ -0,0 +1,218 @@
// This file has been generated by the GUI designer. Do not modify.
namespace DMX2
{
public partial class DriverBoitierV2UI
{
private global::Gtk.VBox vbox2;
private global::Gtk.Label label1;
private global::Gtk.Table table1;
private global::Gtk.ComboBox cbUnivers1;
private global::Gtk.ComboBox cbUnivers2;
private global::Gtk.Entry entry1;
private global::Gtk.Entry entry2;
private global::Gtk.Entry entry3;
private global::Gtk.Entry entry4;
private global::Gtk.Label label2;
private global::Gtk.Label label3;
private global::Gtk.Label label4;
private global::Gtk.Label label5;
private global::Gtk.Label label6;
private global::Gtk.Label label7;
private global::Gtk.HBox hbox1;
private global::Gtk.Button button120;
protected virtual void Build ()
{
global::Stetic.Gui.Initialize (this);
// Widget DMX2.DriverBoitierV2UI
global::Stetic.BinContainer.Attach (this);
this.Name = "DMX2.DriverBoitierV2UI";
// Container child DMX2.DriverBoitierV2UI.Gtk.Container+ContainerChild
this.vbox2 = new global::Gtk.VBox ();
this.vbox2.Name = "vbox2";
this.vbox2.Spacing = 6;
// Container child vbox2.Gtk.Box+BoxChild
this.label1 = new global::Gtk.Label ();
this.label1.Name = "label1";
this.label1.LabelProp = "Driver V2";
this.vbox2.Add (this.label1);
global::Gtk.Box.BoxChild w1 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.label1]));
w1.Position = 0;
w1.Expand = false;
w1.Fill = false;
// Container child vbox2.Gtk.Box+BoxChild
this.table1 = new global::Gtk.Table (((uint)(3)), ((uint)(4)), false);
this.table1.Name = "table1";
this.table1.RowSpacing = ((uint)(6));
this.table1.ColumnSpacing = ((uint)(6));
// Container child table1.Gtk.Table+TableChild
this.cbUnivers1 = global::Gtk.ComboBox.NewText ();
this.cbUnivers1.Name = "cbUnivers1";
this.table1.Add (this.cbUnivers1);
global::Gtk.Table.TableChild w2 = ((global::Gtk.Table.TableChild)(this.table1 [this.cbUnivers1]));
w2.TopAttach = ((uint)(1));
w2.BottomAttach = ((uint)(2));
w2.LeftAttach = ((uint)(1));
w2.RightAttach = ((uint)(2));
w2.XOptions = ((global::Gtk.AttachOptions)(4));
w2.YOptions = ((global::Gtk.AttachOptions)(4));
// Container child table1.Gtk.Table+TableChild
this.cbUnivers2 = global::Gtk.ComboBox.NewText ();
this.cbUnivers2.Name = "cbUnivers2";
this.table1.Add (this.cbUnivers2);
global::Gtk.Table.TableChild w3 = ((global::Gtk.Table.TableChild)(this.table1 [this.cbUnivers2]));
w3.TopAttach = ((uint)(2));
w3.BottomAttach = ((uint)(3));
w3.LeftAttach = ((uint)(1));
w3.RightAttach = ((uint)(2));
w3.XOptions = ((global::Gtk.AttachOptions)(4));
w3.YOptions = ((global::Gtk.AttachOptions)(4));
// Container child table1.Gtk.Table+TableChild
this.entry1 = new global::Gtk.Entry ();
this.entry1.CanFocus = true;
this.entry1.Name = "entry1";
this.entry1.IsEditable = true;
this.entry1.InvisibleChar = '•';
this.table1.Add (this.entry1);
global::Gtk.Table.TableChild w4 = ((global::Gtk.Table.TableChild)(this.table1 [this.entry1]));
w4.TopAttach = ((uint)(1));
w4.BottomAttach = ((uint)(2));
w4.LeftAttach = ((uint)(2));
w4.RightAttach = ((uint)(3));
w4.XOptions = ((global::Gtk.AttachOptions)(4));
w4.YOptions = ((global::Gtk.AttachOptions)(4));
// Container child table1.Gtk.Table+TableChild
this.entry2 = new global::Gtk.Entry ();
this.entry2.CanFocus = true;
this.entry2.Name = "entry2";
this.entry2.IsEditable = true;
this.entry2.InvisibleChar = '•';
this.table1.Add (this.entry2);
global::Gtk.Table.TableChild w5 = ((global::Gtk.Table.TableChild)(this.table1 [this.entry2]));
w5.TopAttach = ((uint)(1));
w5.BottomAttach = ((uint)(2));
w5.LeftAttach = ((uint)(3));
w5.RightAttach = ((uint)(4));
w5.XOptions = ((global::Gtk.AttachOptions)(4));
w5.YOptions = ((global::Gtk.AttachOptions)(4));
// Container child table1.Gtk.Table+TableChild
this.entry3 = new global::Gtk.Entry ();
this.entry3.CanFocus = true;
this.entry3.Name = "entry3";
this.entry3.IsEditable = true;
this.entry3.InvisibleChar = '•';
this.table1.Add (this.entry3);
global::Gtk.Table.TableChild w6 = ((global::Gtk.Table.TableChild)(this.table1 [this.entry3]));
w6.TopAttach = ((uint)(2));
w6.BottomAttach = ((uint)(3));
w6.LeftAttach = ((uint)(2));
w6.RightAttach = ((uint)(3));
w6.XOptions = ((global::Gtk.AttachOptions)(4));
w6.YOptions = ((global::Gtk.AttachOptions)(4));
// Container child table1.Gtk.Table+TableChild
this.entry4 = new global::Gtk.Entry ();
this.entry4.CanFocus = true;
this.entry4.Name = "entry4";
this.entry4.IsEditable = true;
this.entry4.InvisibleChar = '•';
this.table1.Add (this.entry4);
global::Gtk.Table.TableChild w7 = ((global::Gtk.Table.TableChild)(this.table1 [this.entry4]));
w7.TopAttach = ((uint)(2));
w7.BottomAttach = ((uint)(3));
w7.LeftAttach = ((uint)(3));
w7.RightAttach = ((uint)(4));
w7.XOptions = ((global::Gtk.AttachOptions)(4));
w7.YOptions = ((global::Gtk.AttachOptions)(4));
// Container child table1.Gtk.Table+TableChild
this.label2 = new global::Gtk.Label ();
this.label2.Name = "label2";
this.label2.LabelProp = "Etat";
this.table1.Add (this.label2);
global::Gtk.Table.TableChild w8 = ((global::Gtk.Table.TableChild)(this.table1 [this.label2]));
w8.XOptions = ((global::Gtk.AttachOptions)(4));
w8.YOptions = ((global::Gtk.AttachOptions)(4));
// Container child table1.Gtk.Table+TableChild
this.label3 = new global::Gtk.Label ();
this.label3.Name = "label3";
this.label3.LabelProp = "Univer associé";
this.table1.Add (this.label3);
global::Gtk.Table.TableChild w9 = ((global::Gtk.Table.TableChild)(this.table1 [this.label3]));
w9.LeftAttach = ((uint)(1));
w9.RightAttach = ((uint)(2));
w9.XOptions = ((global::Gtk.AttachOptions)(4));
w9.YOptions = ((global::Gtk.AttachOptions)(4));
// Container child table1.Gtk.Table+TableChild
this.label4 = new global::Gtk.Label ();
this.label4.Name = "label4";
this.label4.LabelProp = "Break";
this.table1.Add (this.label4);
global::Gtk.Table.TableChild w10 = ((global::Gtk.Table.TableChild)(this.table1 [this.label4]));
w10.LeftAttach = ((uint)(2));
w10.RightAttach = ((uint)(3));
w10.XOptions = ((global::Gtk.AttachOptions)(4));
w10.YOptions = ((global::Gtk.AttachOptions)(4));
// Container child table1.Gtk.Table+TableChild
this.label5 = new global::Gtk.Label ();
this.label5.Name = "label5";
this.label5.LabelProp = "MAB";
this.table1.Add (this.label5);
global::Gtk.Table.TableChild w11 = ((global::Gtk.Table.TableChild)(this.table1 [this.label5]));
w11.LeftAttach = ((uint)(3));
w11.RightAttach = ((uint)(4));
w11.XOptions = ((global::Gtk.AttachOptions)(4));
w11.YOptions = ((global::Gtk.AttachOptions)(4));
// Container child table1.Gtk.Table+TableChild
this.label6 = new global::Gtk.Label ();
this.label6.Name = "label6";
this.label6.LabelProp = "Block 1";
this.table1.Add (this.label6);
global::Gtk.Table.TableChild w12 = ((global::Gtk.Table.TableChild)(this.table1 [this.label6]));
w12.TopAttach = ((uint)(1));
w12.BottomAttach = ((uint)(2));
w12.XOptions = ((global::Gtk.AttachOptions)(4));
w12.YOptions = ((global::Gtk.AttachOptions)(4));
// Container child table1.Gtk.Table+TableChild
this.label7 = new global::Gtk.Label ();
this.label7.Name = "label7";
this.label7.LabelProp = "Block 2";
this.table1.Add (this.label7);
global::Gtk.Table.TableChild w13 = ((global::Gtk.Table.TableChild)(this.table1 [this.label7]));
w13.TopAttach = ((uint)(2));
w13.BottomAttach = ((uint)(3));
w13.XOptions = ((global::Gtk.AttachOptions)(4));
w13.YOptions = ((global::Gtk.AttachOptions)(4));
this.vbox2.Add (this.table1);
global::Gtk.Box.BoxChild w14 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.table1]));
w14.Position = 1;
w14.Expand = false;
w14.Fill = false;
// Container child vbox2.Gtk.Box+BoxChild
this.hbox1 = new global::Gtk.HBox ();
this.hbox1.Name = "hbox1";
this.hbox1.Spacing = 6;
// Container child hbox1.Gtk.Box+BoxChild
this.button120 = new global::Gtk.Button ();
this.button120.CanFocus = true;
this.button120.Name = "button120";
this.button120.UseUnderline = true;
this.button120.Label = "Valider";
this.hbox1.Add (this.button120);
global::Gtk.Box.BoxChild w15 = ((global::Gtk.Box.BoxChild)(this.hbox1 [this.button120]));
w15.Position = 1;
w15.Expand = false;
w15.Fill = false;
this.vbox2.Add (this.hbox1);
global::Gtk.Box.BoxChild w16 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.hbox1]));
w16.PackType = ((global::Gtk.PackType)(1));
w16.Position = 2;
w16.Expand = false;
w16.Fill = false;
this.Add (this.vbox2);
if ((this.Child != null)) {
this.Child.ShowAll ();
}
this.Hide ();
}
}
}

View file

@ -2048,7 +2048,7 @@ au sequenceur</property>
<placeholder /> <placeholder />
</child> </child>
<child> <child>
<widget class="Gtk.ComboBox" id="combobox1"> <widget class="Gtk.ComboBox" id="cbUnivers">
<property name="MemberName" /> <property name="MemberName" />
<property name="IsTextCombo">True</property> <property name="IsTextCombo">True</property>
<property name="Items" translatable="yes" /> <property name="Items" translatable="yes" />
@ -2108,7 +2108,7 @@ au sequenceur</property>
<child> <child>
<widget class="Gtk.Label" id="lblEtat"> <widget class="Gtk.Label" id="lblEtat">
<property name="MemberName" /> <property name="MemberName" />
<property name="LabelProp" translatable="yes">label6</property> <property name="LabelProp" translatable="yes">Univer associé</property>
</widget> </widget>
<packing> <packing>
<property name="LeftAttach">1</property> <property name="LeftAttach">1</property>
@ -2133,4 +2133,323 @@ au sequenceur</property>
</widget> </widget>
</child> </child>
</widget> </widget>
<widget class="Gtk.Bin" id="DMX2.DriverBoitierV2UI" design-size="480 300">
<property name="MemberName" />
<property name="Visible">False</property>
<child>
<widget class="Gtk.VBox" id="vbox2">
<property name="MemberName" />
<property name="Spacing">6</property>
<child>
<widget class="Gtk.Label" id="label1">
<property name="MemberName" />
<property name="LabelProp" translatable="yes">Driver V2</property>
</widget>
<packing>
<property name="Position">0</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
<child>
<widget class="Gtk.Table" id="table1">
<property name="MemberName" />
<property name="NRows">3</property>
<property name="NColumns">4</property>
<property name="RowSpacing">6</property>
<property name="ColumnSpacing">6</property>
<child>
<widget class="Gtk.ComboBox" id="cbUnivers1">
<property name="MemberName" />
<property name="IsTextCombo">True</property>
<property name="Items" translatable="yes" />
</widget>
<packing>
<property name="TopAttach">1</property>
<property name="BottomAttach">2</property>
<property name="LeftAttach">1</property>
<property name="RightAttach">2</property>
<property name="AutoSize">True</property>
<property name="XOptions">Fill</property>
<property name="YOptions">Fill</property>
<property name="XExpand">False</property>
<property name="XFill">True</property>
<property name="XShrink">False</property>
<property name="YExpand">False</property>
<property name="YFill">True</property>
<property name="YShrink">False</property>
</packing>
</child>
<child>
<widget class="Gtk.ComboBox" id="cbUnivers2">
<property name="MemberName" />
<property name="IsTextCombo">True</property>
<property name="Items" translatable="yes" />
</widget>
<packing>
<property name="TopAttach">2</property>
<property name="BottomAttach">3</property>
<property name="LeftAttach">1</property>
<property name="RightAttach">2</property>
<property name="AutoSize">True</property>
<property name="XOptions">Fill</property>
<property name="YOptions">Fill</property>
<property name="XExpand">False</property>
<property name="XFill">True</property>
<property name="XShrink">False</property>
<property name="YExpand">False</property>
<property name="YFill">True</property>
<property name="YShrink">False</property>
</packing>
</child>
<child>
<widget class="Gtk.Entry" id="entry1">
<property name="MemberName" />
<property name="CanFocus">True</property>
<property name="IsEditable">True</property>
<property name="InvisibleChar">•</property>
</widget>
<packing>
<property name="TopAttach">1</property>
<property name="BottomAttach">2</property>
<property name="LeftAttach">2</property>
<property name="RightAttach">3</property>
<property name="AutoSize">True</property>
<property name="XOptions">Fill</property>
<property name="YOptions">Fill</property>
<property name="XExpand">False</property>
<property name="XFill">True</property>
<property name="XShrink">False</property>
<property name="YExpand">False</property>
<property name="YFill">True</property>
<property name="YShrink">False</property>
</packing>
</child>
<child>
<widget class="Gtk.Entry" id="entry2">
<property name="MemberName" />
<property name="CanFocus">True</property>
<property name="IsEditable">True</property>
<property name="InvisibleChar">•</property>
</widget>
<packing>
<property name="TopAttach">1</property>
<property name="BottomAttach">2</property>
<property name="LeftAttach">3</property>
<property name="RightAttach">4</property>
<property name="AutoSize">True</property>
<property name="XOptions">Fill</property>
<property name="YOptions">Fill</property>
<property name="XExpand">False</property>
<property name="XFill">True</property>
<property name="XShrink">False</property>
<property name="YExpand">False</property>
<property name="YFill">True</property>
<property name="YShrink">False</property>
</packing>
</child>
<child>
<widget class="Gtk.Entry" id="entry3">
<property name="MemberName" />
<property name="CanFocus">True</property>
<property name="IsEditable">True</property>
<property name="InvisibleChar">•</property>
</widget>
<packing>
<property name="TopAttach">2</property>
<property name="BottomAttach">3</property>
<property name="LeftAttach">2</property>
<property name="RightAttach">3</property>
<property name="AutoSize">True</property>
<property name="XOptions">Fill</property>
<property name="YOptions">Fill</property>
<property name="XExpand">False</property>
<property name="XFill">True</property>
<property name="XShrink">False</property>
<property name="YExpand">False</property>
<property name="YFill">True</property>
<property name="YShrink">False</property>
</packing>
</child>
<child>
<widget class="Gtk.Entry" id="entry4">
<property name="MemberName" />
<property name="CanFocus">True</property>
<property name="IsEditable">True</property>
<property name="InvisibleChar">•</property>
</widget>
<packing>
<property name="TopAttach">2</property>
<property name="BottomAttach">3</property>
<property name="LeftAttach">3</property>
<property name="RightAttach">4</property>
<property name="AutoSize">True</property>
<property name="XOptions">Fill</property>
<property name="YOptions">Fill</property>
<property name="XExpand">False</property>
<property name="XFill">True</property>
<property name="XShrink">False</property>
<property name="YExpand">False</property>
<property name="YFill">True</property>
<property name="YShrink">False</property>
</packing>
</child>
<child>
<widget class="Gtk.Label" id="label2">
<property name="MemberName" />
<property name="LabelProp" translatable="yes">Etat</property>
</widget>
<packing>
<property name="AutoSize">True</property>
<property name="XOptions">Fill</property>
<property name="YOptions">Fill</property>
<property name="XExpand">False</property>
<property name="XFill">True</property>
<property name="XShrink">False</property>
<property name="YExpand">False</property>
<property name="YFill">True</property>
<property name="YShrink">False</property>
</packing>
</child>
<child>
<widget class="Gtk.Label" id="label3">
<property name="MemberName" />
<property name="LabelProp" translatable="yes">Univer associé</property>
</widget>
<packing>
<property name="LeftAttach">1</property>
<property name="RightAttach">2</property>
<property name="AutoSize">True</property>
<property name="XOptions">Fill</property>
<property name="YOptions">Fill</property>
<property name="XExpand">False</property>
<property name="XFill">True</property>
<property name="XShrink">False</property>
<property name="YExpand">False</property>
<property name="YFill">True</property>
<property name="YShrink">False</property>
</packing>
</child>
<child>
<widget class="Gtk.Label" id="label4">
<property name="MemberName" />
<property name="LabelProp" translatable="yes">Break</property>
</widget>
<packing>
<property name="LeftAttach">2</property>
<property name="RightAttach">3</property>
<property name="AutoSize">True</property>
<property name="XOptions">Fill</property>
<property name="YOptions">Fill</property>
<property name="XExpand">False</property>
<property name="XFill">True</property>
<property name="XShrink">False</property>
<property name="YExpand">False</property>
<property name="YFill">True</property>
<property name="YShrink">False</property>
</packing>
</child>
<child>
<widget class="Gtk.Label" id="label5">
<property name="MemberName" />
<property name="LabelProp" translatable="yes">MAB</property>
</widget>
<packing>
<property name="LeftAttach">3</property>
<property name="RightAttach">4</property>
<property name="AutoSize">True</property>
<property name="XOptions">Fill</property>
<property name="YOptions">Fill</property>
<property name="XExpand">False</property>
<property name="XFill">True</property>
<property name="XShrink">False</property>
<property name="YExpand">False</property>
<property name="YFill">True</property>
<property name="YShrink">False</property>
</packing>
</child>
<child>
<widget class="Gtk.Label" id="label6">
<property name="MemberName" />
<property name="LabelProp" translatable="yes">Block 1</property>
</widget>
<packing>
<property name="TopAttach">1</property>
<property name="BottomAttach">2</property>
<property name="AutoSize">True</property>
<property name="XOptions">Fill</property>
<property name="YOptions">Fill</property>
<property name="XExpand">False</property>
<property name="XFill">True</property>
<property name="XShrink">False</property>
<property name="YExpand">False</property>
<property name="YFill">True</property>
<property name="YShrink">False</property>
</packing>
</child>
<child>
<widget class="Gtk.Label" id="label7">
<property name="MemberName" />
<property name="LabelProp" translatable="yes">Block 2</property>
</widget>
<packing>
<property name="TopAttach">2</property>
<property name="BottomAttach">3</property>
<property name="AutoSize">True</property>
<property name="XOptions">Fill</property>
<property name="YOptions">Fill</property>
<property name="XExpand">False</property>
<property name="XFill">True</property>
<property name="XShrink">False</property>
<property name="YExpand">False</property>
<property name="YFill">True</property>
<property name="YShrink">False</property>
</packing>
</child>
</widget>
<packing>
<property name="Position">1</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
<child>
<widget class="Gtk.HBox" id="hbox1">
<property name="MemberName" />
<property name="Spacing">6</property>
<child>
<placeholder />
</child>
<child>
<widget class="Gtk.Button" id="button120">
<property name="MemberName" />
<property name="CanFocus">True</property>
<property name="Type">TextOnly</property>
<property name="Label" translatable="yes">Valider</property>
<property name="UseUnderline">True</property>
</widget>
<packing>
<property name="Position">1</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
<child>
<placeholder />
</child>
</widget>
<packing>
<property name="PackType">End</property>
<property name="Position">2</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
</widget>
</child>
</widget>
</stetic-interface> </stetic-interface>