[chronojump] Chronopics managed better, cleaner code (untested on windows)
- From: Xavier de Blas <xaviblas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [chronojump] Chronopics managed better, cleaner code (untested on windows)
- Date: Sun, 21 Feb 2010 06:40:22 +0000 (UTC)
commit ab2eaa6d222a550816f21e60ab23c0f2e2c080ef
Author: Xavier de Blas <xaviblas gmail com>
Date: Sun Feb 21 14:39:00 2010 +0800
Chronopics managed better, cleaner code (untested on windows)
src/gui/chronojump.cs | 7 ++-
src/gui/chronopic.cs | 201 +++++++++++++++++++++++++++++++++++++------------
2 files changed, 160 insertions(+), 48 deletions(-)
---
diff --git a/src/gui/chronojump.cs b/src/gui/chronojump.cs
index 96061ff..f7d626f 100644
--- a/src/gui/chronojump.cs
+++ b/src/gui/chronojump.cs
@@ -434,7 +434,12 @@ public class ChronoJumpWindow
repetitiveConditionsWin = RepetitiveConditionsWindow.Create();
- chronopicWin = ChronopicWindow.Create();
+ ArrayList cpd = new ArrayList();
+ for(int i=1; i<=4;i++) {
+ ChronopicPortData a = new ChronopicPortData(i,"",false);
+ cpd.Add(a);
+ }
+ chronopicWin = ChronopicWindow.Create(cpd);
//We have no session, mark some widgets as ".Sensitive = false"
diff --git a/src/gui/chronopic.cs b/src/gui/chronopic.cs
index 08aff27..db6af0b 100644
--- a/src/gui/chronopic.cs
+++ b/src/gui/chronopic.cs
@@ -27,7 +27,20 @@ using System.IO.Ports;
using Mono.Unix;
using System.Threading;
using System.IO; //"File" things
+using System.Collections; //ArrayList
+public class ChronopicPortData
+{
+ public int Num;
+ public string Port; //port filename
+ public bool Connected;
+
+ public ChronopicPortData(int num, string port, bool connected) {
+ this.Num = num;
+ this.Port = port;
+ this.Connected = connected;
+ }
+}
public class ChronopicWindow
{
@@ -73,11 +86,16 @@ public class ChronopicWindow
bool isWindows;
+ /*
//preferences variables
- private static string chronopicPort1;
- private static string chronopicPort2;
- private static string chronopicPort3;
- private static string chronopicPort4;
+ private static string chronopicPort1 = "";
+ private static string chronopicPort2 = "";
+ private static string chronopicPort3 = "";
+ private static string chronopicPort4 = "";
+ */
+ //ArrayList of ChronopicPortData
+ static ArrayList cpd;
+ //ArrayList cpd;
//platform state variables
enum States {
@@ -110,13 +128,14 @@ public class ChronopicWindow
States loggedState; //log of last state
- public ChronopicWindow()
+ public ChronopicWindow(ArrayList myCpd)
{
Glade.XML gxml;
gxml = Glade.XML.FromAssembly (Util.GetGladePath() + "chronojump.glade", "chronopic_window", null);
gxml.Autoconnect(this);
- //put an icon to window
+ cpd=myCpd;
+
UtilGtk.IconWindow(chronopic_window);
if(Util.IsWindows())
@@ -129,6 +148,7 @@ public class ChronopicWindow
Pixbuf pixbuf = new Pixbuf (null, Util.GetImagePath(false) + "chronopic_128.png");
chronopic_image.Pixbuf = pixbuf;
+ /*
chronopicPort1 = SqlitePreferences.Select("chronopicPort");
chronopicPort2 = "";
chronopicPort3 = "";
@@ -140,12 +160,15 @@ public class ChronopicWindow
ConfirmWindow confirmWin = ConfirmWindow.Show(Catalog.GetString("Do you want to connect to Chronopic now?"), "", "");
confirmWin.Button_accept.Clicked += new EventHandler(chronopicAtStart);
}
+ */
}
- static public ChronopicWindow Create ()
+ static public ChronopicWindow Create (ArrayList myCpd)
{
if (ChronopicWindowBox == null) {
- ChronopicWindowBox = new ChronopicWindow ();
+ ChronopicWindowBox = new ChronopicWindow (myCpd);
+
+ //put an icon to window
}
//don't show until View is called
@@ -157,7 +180,7 @@ public class ChronopicWindow
static public ChronopicWindow View ()
{
if (ChronopicWindowBox == null) {
- ChronopicWindowBox = new ChronopicWindow ();
+ ChronopicWindowBox = new ChronopicWindow (cpd);
}
ChronopicWindowBox.createCombos();
@@ -200,28 +223,55 @@ public class ChronopicWindow
}
private void createCombos() {
- if(isWindows) {
- ChronopicWindowBox.createComboWindows(chronopicPort1, combo_windows1);
- ChronopicWindowBox.createComboWindows(chronopicPort2, combo_windows2);
- ChronopicWindowBox.createComboWindows(chronopicPort3, combo_windows3);
- ChronopicWindowBox.createComboWindows(chronopicPort4, combo_windows4);
- } else {
- ChronopicWindowBox.createComboLinux(chronopicPort1, combo_linux1);
- ChronopicWindowBox.createComboLinux(chronopicPort2, combo_linux2);
- ChronopicWindowBox.createComboLinux(chronopicPort3, combo_linux3);
- ChronopicWindowBox.createComboLinux(chronopicPort4, combo_linux4);
- }
+ if(isWindows)
+ ChronopicWindowBox.createComboWindows();
+ else
+ ChronopicWindowBox.createComboLinux();
}
- private void createComboWindows(string myPort, Gtk.ComboBox myCombo) {
+ //private void createComboWindows(string myPort, Gtk.ComboBox myCombo) {
+ private void createComboWindows() {
//combo port stuff
comboWindowsOptions = new string[257];
int count = 0;
for (int i=1; i <= 257; i ++)
comboWindowsOptions[i-1] = "COM" + i;
-
+
+ UtilGtk.ComboUpdate(combo_windows1, comboWindowsOptions, Constants.ChronopicDefaultPortWindows);
+ UtilGtk.ComboUpdate(combo_windows2, comboWindowsOptions, Constants.ChronopicDefaultPortWindows);
+ UtilGtk.ComboUpdate(combo_windows3, comboWindowsOptions, Constants.ChronopicDefaultPortWindows);
+ UtilGtk.ComboUpdate(combo_windows4, comboWindowsOptions, Constants.ChronopicDefaultPortWindows);
+
+ foreach(ChronopicPortData a in cpd) {
+ if(a.Num == 1) {
+ combo_windows1.Active = UtilGtk.ComboMakeActive(comboWindowsOptions, a.Port);
+ combo_windows1.Changed += new EventHandler (on_combo_changed);
+ if(a.Connected) {
+ UtilGtk.ComboDelThisValue(combo_windows2, a.Port);
+ UtilGtk.ComboDelThisValue(combo_windows3, a.Port);
+ UtilGtk.ComboDelThisValue(combo_windows4, a.Port);
+ }
+ } else if(a.Num == 2) {
+ combo_windows2.Active = UtilGtk.ComboMakeActive(comboWindowsOptions, a.Port);
+ combo_windows2.Changed += new EventHandler (on_combo_changed);
+ if(a.Connected) {
+ UtilGtk.ComboDelThisValue(combo_windows3, a.Port);
+ UtilGtk.ComboDelThisValue(combo_windows4, a.Port);
+ }
+ } else if(a.Num == 3) {
+ combo_windows3.Active = UtilGtk.ComboMakeActive(comboWindowsOptions, a.Port);
+ combo_windows3.Changed += new EventHandler (on_combo_changed);
+ if(a.Connected)
+ UtilGtk.ComboDelThisValue(combo_windows4, a.Port);
+ } else { //4
+ combo_windows4.Active = UtilGtk.ComboMakeActive(comboWindowsOptions, a.Port);
+ combo_windows4.Changed += new EventHandler (on_combo_changed);
+ }
+ }
+ /*
UtilGtk.ComboUpdate(myCombo, comboWindowsOptions, comboWindowsOptions[0]);
+ //TODO: fix this
if(myPort.Length > 0) {
if (myCombo == combo_windows1)
myCombo.Active = UtilGtk.ComboMakeActive(comboWindowsOptions, myPort);
@@ -233,28 +283,77 @@ public class ChronopicWindow
myCombo.Active = 0; //first option
myCombo.Changed += new EventHandler (on_combo_changed);
+ */
+
+
+
+ /*
+ foreach(ChronopicPortData a in cpd) {
+ if(a.Port.Length > 0) {
+ if(a.Num == 1) {
+ combo_windows1.Active = UtilGtk.ComboMakeActive(comboWindowsOptions, a.Port);
+ UtilGtk.ComboDelThisValue(combo_windows2, a.Port);
+ UtilGtk.ComboDelThisValue(combo_windows3, a.Port);
+ UtilGtk.ComboDelThisValue(combo_windows4, a.Port);
+ combo_windows1.Changed += new EventHandler (on_combo_changed);
+ } else if(a.Num == 2) {
+ combo_windows2.Active = UtilGtk.ComboMakeActive(comboWindowsOptions, a.Port);
+ UtilGtk.ComboDelThisValue(combo_windows3, a.Port);
+ UtilGtk.ComboDelThisValue(combo_windows4, a.Port);
+ combo_windows2.Changed += new EventHandler (on_combo_changed);
+ } else if(a.Num == 3) {
+ combo_windows3.Active = UtilGtk.ComboMakeActive(comboWindowsOptions, a.Port);
+ UtilGtk.ComboDelThisValue(combo_windows4, a.Port);
+ combo_windows3.Changed += new EventHandler (on_combo_changed);
+ } else { //4
+ combo_windows4.Active = UtilGtk.ComboMakeActive(comboWindowsOptions, a.Port);
+ combo_windows4.Changed += new EventHandler (on_combo_changed);
+ }
+ }
+// else
+// myCombo.Active = 0; //first option
+ }
+ */
}
- private void createComboLinux(string myPort, Gtk.ComboBox myCombo) {
+ private void createComboLinux() {
string [] usbSerial = Directory.GetFiles("/dev/", "ttyUSB*");
string [] serial = Directory.GetFiles("/dev/", "ttyS*");
string [] all = Util.AddArrayString(usbSerial, serial);
string [] def = Util.StringToStringArray(Constants.ChronopicDefaultPortLinux);
string [] allWithDef = Util.AddArrayString(def, all);
- UtilGtk.ComboUpdate(myCombo, allWithDef, Constants.ChronopicDefaultPortLinux);
-
- if(myPort.Length > 0) {
- if(myCombo == combo_linux1)
- myCombo.Active = UtilGtk.ComboMakeActive(allWithDef, myPort);
- else { //don't show connected port as an option for other ports
- UtilGtk.ComboDelThisValue(myCombo, myPort);
- myCombo.Active = 0; //first option
+ UtilGtk.ComboUpdate(combo_linux1, allWithDef, Constants.ChronopicDefaultPortLinux);
+ UtilGtk.ComboUpdate(combo_linux2, allWithDef, Constants.ChronopicDefaultPortLinux);
+ UtilGtk.ComboUpdate(combo_linux3, allWithDef, Constants.ChronopicDefaultPortLinux);
+ UtilGtk.ComboUpdate(combo_linux4, allWithDef, Constants.ChronopicDefaultPortLinux);
+
+ foreach(ChronopicPortData a in cpd) {
+ if(a.Num == 1) {
+ combo_linux1.Active = UtilGtk.ComboMakeActive(allWithDef, a.Port);
+ combo_linux1.Changed += new EventHandler (on_combo_changed);
+ if(a.Connected) {
+ UtilGtk.ComboDelThisValue(combo_linux2, a.Port);
+ UtilGtk.ComboDelThisValue(combo_linux3, a.Port);
+ UtilGtk.ComboDelThisValue(combo_linux4, a.Port);
+ }
+ } else if(a.Num == 2) {
+ combo_linux2.Active = UtilGtk.ComboMakeActive(allWithDef, a.Port);
+ combo_linux2.Changed += new EventHandler (on_combo_changed);
+ if(a.Connected) {
+ UtilGtk.ComboDelThisValue(combo_linux3, a.Port);
+ UtilGtk.ComboDelThisValue(combo_linux4, a.Port);
+ }
+ } else if(a.Num == 3) {
+ combo_linux3.Active = UtilGtk.ComboMakeActive(allWithDef, a.Port);
+ combo_linux3.Changed += new EventHandler (on_combo_changed);
+ if(a.Connected)
+ UtilGtk.ComboDelThisValue(combo_linux4, a.Port);
+ } else { //4
+ combo_linux4.Active = UtilGtk.ComboMakeActive(allWithDef, a.Port);
+ combo_linux4.Changed += new EventHandler (on_combo_changed);
}
- } else
- myCombo.Active = 0; //first option
-
- myCombo.Changed += new EventHandler (on_combo_changed);
+ }
}
private void on_combo_changed(object o, EventArgs args) {
@@ -398,23 +497,23 @@ public class ChronopicWindow
if(isWindows){
if (o == button_connect_cp1)
- chronopicPort1 = UtilGtk.ComboGetActive(combo_windows1);
+ ((ChronopicPortData) cpd[0]).Port = UtilGtk.ComboGetActive(combo_windows1);
else if (o == button_connect_cp2)
- chronopicPort2 = UtilGtk.ComboGetActive(combo_windows2);
+ ((ChronopicPortData) cpd[1]).Port = UtilGtk.ComboGetActive(combo_windows2);
else if (o == button_connect_cp3)
- chronopicPort3 = UtilGtk.ComboGetActive(combo_windows3);
+ ((ChronopicPortData) cpd[2]).Port = UtilGtk.ComboGetActive(combo_windows3);
else if (o == button_connect_cp4)
- chronopicPort4 = UtilGtk.ComboGetActive(combo_windows4);
+ ((ChronopicPortData) cpd[3]).Port = UtilGtk.ComboGetActive(combo_windows4);
}
else {
if (o == button_connect_cp1)
- chronopicPort1 = UtilGtk.ComboGetActive(combo_linux1);
+ ((ChronopicPortData) cpd[0]).Port = UtilGtk.ComboGetActive(combo_linux1);
else if (o == button_connect_cp2)
- chronopicPort2 = UtilGtk.ComboGetActive(combo_linux2);
+ ((ChronopicPortData) cpd[1]).Port = UtilGtk.ComboGetActive(combo_linux2);
else if (o == button_connect_cp3)
- chronopicPort3 = UtilGtk.ComboGetActive(combo_linux3);
+ ((ChronopicPortData) cpd[2]).Port = UtilGtk.ComboGetActive(combo_linux3);
else if (o == button_connect_cp4)
- chronopicPort4 = UtilGtk.ComboGetActive(combo_linux4);
+ ((ChronopicPortData) cpd[3]).Port = UtilGtk.ComboGetActive(combo_linux4);
}
if (o == button_connect_cp1)
@@ -614,9 +713,10 @@ public class ChronopicWindow
*/
if(currentCp == 1) {
- myPort = chronopicPort1;
+ myPort = ((ChronopicPortData) cpd[0]).Port;
cp = chronopicInit(cp, out sp, platformState, myPort, out message, out success);
if(success) {
+ ((ChronopicPortData) cpd[0]).Connected=true;
button_connect_cp1.Sensitive = false;
image_cp1_no.Hide();
image_cp1_yes.Show();
@@ -643,9 +743,10 @@ public class ChronopicWindow
}
}
else if(currentCp == 2) {
- myPort = chronopicPort2;
+ myPort = ((ChronopicPortData) cpd[1]).Port;
cp2 = chronopicInit(cp2, out sp2, platformState2, myPort, out message, out success);
if(success) {
+ ((ChronopicPortData) cpd[1]).Connected=true;
button_connect_cp2.Sensitive = false;
image_cp2_no.Hide();
image_cp2_yes.Show();
@@ -668,9 +769,10 @@ public class ChronopicWindow
}
}
else if(currentCp == 3) {
- myPort = chronopicPort3;
+ myPort = ((ChronopicPortData) cpd[2]).Port;
cp3 = chronopicInit(cp3, out sp3, platformState3, myPort, out message, out success);
if(success) {
+ ((ChronopicPortData) cpd[2]).Connected=true;
button_connect_cp3.Sensitive = false;
image_cp3_no.Hide();
image_cp3_yes.Show();
@@ -689,9 +791,10 @@ public class ChronopicWindow
}
}
else if(currentCp == 4) {
- myPort = chronopicPort4;
+ myPort = ((ChronopicPortData) cpd[3]).Port;
cp4 = chronopicInit(cp4, out sp4, platformState4, myPort, out message, out success);
if(success) {
+ ((ChronopicPortData) cpd[3]).Connected=true;
button_connect_cp4.Sensitive = false;
image_cp4_no.Hide();
image_cp4_yes.Show();
@@ -729,6 +832,10 @@ public class ChronopicWindow
updateChronopicWinValuesState= false; //disconnected
updateChronopicWinValuesMessage= message;
}
+
+ foreach(ChronopicPortData a in cpd)
+ Log.WriteLine(a.Num + ", " + a.Port + ", " + a.Connected);
+
needUpdateChronopicWin = true;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]