summaryrefslogtreecommitdiff
path: root/2004/i/nono/src/ovision/ui.cc
diff options
context:
space:
mode:
Diffstat (limited to '2004/i/nono/src/ovision/ui.cc')
-rw-r--r--2004/i/nono/src/ovision/ui.cc104
1 files changed, 73 insertions, 31 deletions
diff --git a/2004/i/nono/src/ovision/ui.cc b/2004/i/nono/src/ovision/ui.cc
index 4475e08..85015a0 100644
--- a/2004/i/nono/src/ovision/ui.cc
+++ b/2004/i/nono/src/ovision/ui.cc
@@ -12,7 +12,7 @@
#include <unistd.h>
#include <signal.h>
-#include "oconfig.h"
+#include "ovision/oconfig.h"
#include "ui.h"
#include "mainui.h"
@@ -23,7 +23,7 @@ using namespace std;
/// Nombre d'items du menu
-#define NBITEMS 13
+#define NBITEMS 14
OConfig oconfig("rc/vision.conf");
@@ -33,6 +33,7 @@ char *itemsName[NBITEMS][2] = {{"Move color", "Permet d'ajuster les niveaux d'un
{"Merge colors", "Groupe plusieurs couleurs ensembles"},
{"Select color ball", "Selectionne l'index de la couleur des balles"},
{"Select color goal", "Selectionne l'index de la couleur des poteaux"},
+ {"Show objets found", "Affiche les balles et poteaux trouvés"},
{"Training", "Entraine le reseau de neurones"},
{"New network", "Regenere de nouveaux poids pour le reseau"},
{"Set dist point", "Fixe les points pour la distance"},
@@ -728,6 +729,52 @@ UI::GoChangeColor()
delwin(colorWindow);
}
+// Affiche les objets et poteaux trouvés
+void
+UI::ShowObjetsFound ()
+{
+ // Creation de la fenetre
+ WINDOW *winInfo = newwin(15, 60, 5, 4);
+
+ // Affichage du texte
+
+ SendSignal ("f\n");
+
+ char buf[20] = "start";
+ bool end = 1;
+ while ( end != 0 )
+ {
+ read (fifo, buf, 20);
+ end = strcmp ("end\n", buf);
+ if (end != 0) wprintw (winInfo, "%s", buf);
+ }
+
+ wrefresh(winInfo);
+
+ // Liberation de la memoire
+ delwin(winInfo);
+}
+
+void
+UI::NewNN (int nbColor)
+{
+ char buf[20];
+ if (nbColor != -1)
+ {
+ sprintf(buf, "p %i\n", nbColor);
+ SendSignal(buf);
+
+ if (oconfig.node) delete [] oconfig.node;
+ oconfig.node = new unsigned char[nbColor*3];
+
+ oconfig.nn_NbCouleurs = nbColor;
+
+ // Synchronisation des poids avec adjust
+ UpdateNodes();
+
+ PrintStatus("Nouveau reseau de neurones charge\n");
+ }
+}
/// Affiche le menu principale
void
@@ -803,18 +850,18 @@ UI::Menu()
case NBITEMS-2: // Quitte le programme
end=1;
break;
-
+
case 0: // Change les valeurs des poids du NN pour une couleur
GoChangeColor();
break;
-
+
case 1: // Supprime une couleur
GoDelColor();
break;
-
+
case 2: // Melange 2 couleurs
GoMergeWindow();
- break;
+ break;
case 3: // Selectionne la couleur a grouper
GoSelectGroup(BALL);
@@ -824,48 +871,39 @@ UI::Menu()
GoSelectGroup(GOAL);
break;
- case 5: // Entraine le NN
+ case 5: // Affiche les balles et potraux trouvés
+ ShowObjetsFound ();
+ wrefresh (mainWindow);
+ break;
+
+ case 6: // Entraine le NN
sprintf(buf, "t\n");
SendSignal(buf);
// Synchronisation des poids avec adjust
UpdateNodes();
-
+
PrintStatus("Reseau de neurones entraine\n");
break;
- case 6: // Regeneration de poids
+ case 7: // Regeneration de poids
int nbColor;
nbColor = ChooseColor(NB_COULEUR, oconfig.nn_NbCouleurs);
- if (nbColor != -1)
- {
- sprintf(buf, "p %i\n", nbColor);
- SendSignal(buf);
-
- if (oconfig.node) delete [] oconfig.node;
- oconfig.node = new unsigned char[nbColor*3];
-
- oconfig.nn_NbCouleurs = nbColor;
-
- // Synchronisation des poids avec adjust
- UpdateNodes();
-
- PrintStatus("Nouveau reseau de neurones charge\n");
- }
+ NewNN (nbColor);
break;
-
- case 7: // Set dist point
+
+ case 8: // Set dist point
SendSignal("v\n");
break;
- case 8: // Change mode rgb/yuv
+ case 9: // Change mode rgb/yuv
SendSignal("y\n");
if (oconfig.colorMode == RGB)
oconfig.colorMode = YUV;
else oconfig.colorMode = RGB;
break;
-
- case 9: // Annuler les changements
+
+ case 10:// Annuler les changements
// Reload du fichier de poids initial
oconfig.LoadNNFile();
@@ -877,7 +915,7 @@ UI::Menu()
PrintStatus("Les changements ont ete annules\n");
break;
- case 10: // Sauver les changements
+ case 11: // Sauver les changements
// Sauvegarde des poids dans le fichier poids
oconfig.CreateNNFile("rc/poids", oconfig.colorMode, oconfig.nn_NbCouleurs);
@@ -908,7 +946,11 @@ UI::Menu()
break;
case 'g':
- SendSignal("z\n");
+ ShowObjetsFound ();
+ break;
+
+ case 'n':
+ NewNN (oconfig.nn_NbCouleurs);
break;
}