summaryrefslogtreecommitdiff
path: root/2003/i/buzz/src/busp/test_busp.cc
diff options
context:
space:
mode:
authorschodet2003-05-22 18:02:01 +0000
committerschodet2003-05-22 18:02:01 +0000
commitd201c6b9e46b79b6dabb5a7cd753b95c108c0915 (patch)
treeb39117bb658ba4c072d97c92196f79c10ea11de0 /2003/i/buzz/src/busp/test_busp.cc
parent524be5fa549d7c598740b53aeda1c4432d546b01 (diff)
Ajoute des cli/sti.
Lecture du fichier de conf pour les servos. Capteurs.
Diffstat (limited to '2003/i/buzz/src/busp/test_busp.cc')
-rw-r--r--2003/i/buzz/src/busp/test_busp.cc56
1 files changed, 49 insertions, 7 deletions
diff --git a/2003/i/buzz/src/busp/test_busp.cc b/2003/i/buzz/src/busp/test_busp.cc
index a63417b..9feaeaa 100644
--- a/2003/i/buzz/src/busp/test_busp.cc
+++ b/2003/i/buzz/src/busp/test_busp.cc
@@ -13,6 +13,9 @@
// Mode de controle des servos.
void testServos (void);
+// Mode capteurs.
+void testCapteurs (void);
+
int
main (int argc, char **argv)
{
@@ -26,7 +29,9 @@ main (int argc, char **argv)
// Ecriture.
addr = strtol (argv[1], 0, 0);
data = strtol (argv[2], 0, 0);
+ busp.cli ();
busp.write (addr, data);
+ busp.sti ();
break;
case 2:
if (strcmp (argv[1], "irq") == 0)
@@ -41,6 +46,11 @@ main (int argc, char **argv)
// Passe en mode contrôle servos.
testServos ();
}
+ else if (strcmp (argv[1], "capteurs") == 0)
+ {
+ // Passe en mode capteurs.
+ testCapteurs ();
+ }
else if (strcmp (argv[1], "reset") == 0)
{
// Ne fait rien, juste reset.
@@ -51,14 +61,28 @@ main (int argc, char **argv)
{
// Lecture.
addr = strtol (argv[1], 0, 0);
+ busp.cli ();
+ busp.read (addr);
+ busp.sti ();
}
break;
default:
- cerr << argv[0] << ": teste le bus parallèle." << endl
- << "\t" << argv[0] << " <adresse> [<donnée>]" << endl
- << "\t" << argv[0] << " reset" << endl
- << "\t" << argv[0] << " irq" << endl
- << "\t" << argv[0] << " servo" << endl;
+ if (argc >= 4 && strcmp (argv[1], "servo") == 0 && argc % 2 == 0)
+ {
+ for (int i = 2; i < argc; i += 2)
+ {
+ busp.getServo ().moveTo (atoi (argv[i]),
+ atoi (argv[i + 1]));
+ }
+ }
+ else
+ {
+ cerr << argv[0] << ": teste le bus parallèle." << endl
+ << "\t" << argv[0] << " <adresse> [<donnée>]" << endl
+ << "\t" << argv[0] << " reset" << endl
+ << "\t" << argv[0] << " irq" << endl
+ << "\t" << argv[0] << " servo [servo pos...]" << endl;
+ }
return 1;
}
}
@@ -78,8 +102,9 @@ testServos (void)
int diff, servo = 0;
cout << "Mode servos\n"
"0-9 : choix du servo.\n"
- "y : -1, h : +1, u : -1, j : +1, i : -20, k : +20\n"
- "r : reset, g<pos> : goto <pos>\n";
+ "y : -1, h : +1, u : -5, j : +5, i : -20, k : +20\n"
+ "r : reset, g<pos> : goto <pos>\n"
+ "p<pos> : position préprogrammée\n";
while (!cin.eof ())
{
cin >> c;
@@ -125,9 +150,26 @@ testServos (void)
cin >> pos;
Busp::getInstance ().getServo ().moveTo (servo, pos);
}
+ else if (c == 'p')
+ {
+ int pos;
+ cin >> pos;
+ Busp::getInstance ().getServo ().position (pos);
+ }
else if (c == 'r')
{
Busp::getInstance ().reset ();
}
}
}
+
+// Mode capteurs.
+void
+testCapteurs (void)
+{
+ while (1)
+ {
+ Busp::getInstance ().getCapteurs ().dump ();
+ sleep (1);
+ }
+}