From d201c6b9e46b79b6dabb5a7cd753b95c108c0915 Mon Sep 17 00:00:00 2001 From: schodet Date: Thu, 22 May 2003 18:02:01 +0000 Subject: Ajoute des cli/sti. Lecture du fichier de conf pour les servos. Capteurs. --- 2003/i/buzz/src/busp/test_busp.cc | 56 ++++++++++++++++++++++++++++++++++----- 1 file changed, 49 insertions(+), 7 deletions(-) (limited to '2003/i/buzz/src/busp/test_busp.cc') 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] << " []" << 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] << " []" << 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 : goto \n"; + "y : -1, h : +1, u : -5, j : +5, i : -20, k : +20\n" + "r : reset, g : goto \n" + "p : 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); + } +} -- cgit v1.2.3