summaryrefslogtreecommitdiff
path: root/2004/i/nono/src/io/test_io.cc
diff options
context:
space:
mode:
Diffstat (limited to '2004/i/nono/src/io/test_io.cc')
-rw-r--r--2004/i/nono/src/io/test_io.cc73
1 files changed, 28 insertions, 45 deletions
diff --git a/2004/i/nono/src/io/test_io.cc b/2004/i/nono/src/io/test_io.cc
index 8b01554..5af38bf 100644
--- a/2004/i/nono/src/io/test_io.cc
+++ b/2004/i/nono/src/io/test_io.cc
@@ -23,10 +23,14 @@
//
// }}}
#include "gpio_servo_pp.h"
+#include "gpio_asserv.h"
+#include "gpio_concat.h"
#include "servo.h"
#include "date/date.h"
+#include "motor/asserv.h"
+#include "io_cmd.h"
-#include <stdexcept>
+#include <exception>
#include <iostream>
void
@@ -34,9 +38,8 @@ syntax (void)
{
std::cout <<
"test_io - teste les entrées/sorties.\n"
- " s <n> <bits> <nb> set des sorties.\n"
- " g <n> <nb> get des entrées.\n"
- " <timeout> attend un certain temps (qui augmente avec timeout)\n"
+ << ioHelp <<
+ " <timeout> attend\n"
" ? cet ecran d'aide" << std::endl;
}
@@ -45,57 +48,37 @@ main (int argc, char **argv)
{
try
{
+ AsservTracker at;
+ Asserv a (at);
+ a.reset ();
GpioServoPp gspp;
+ GpioAsserv ga (a);
+ GpioConcat gc (ga, gspp, ga.getNbIo ());
int i = 1;
while (i < argc)
{
- switch (argv[i][0])
+ if (!ioCmd (argc, argv, i, gc))
{
- case 's':
- i++;
- int n, bits, nb;
- if (i >= argc) break;
- n = atoi (argv[i++]);
- if (i >= argc) break;
- bits = atoi (argv[i++]);
- if (i >= argc) break;
- nb = atoi (argv[i++]);
- std::cout << "set " << n << ' ' << std::hex << bits <<
- std::dec << ' ' << nb << std::endl;
- gspp.set (n, bits, nb);
- break;
- case 'g':
- i++;
- int n, bits, nb;
- if (i >= argc) break;
- n = atoi (argv[i++]);
- if (i >= argc) break;
- nb = atoi (argv[i++]);
- for (int i = 0; i < 20; ++i)
+ switch (argv[i][0])
{
- std::cout << "preget " << n << ' ' << nb << std::endl;
- if (gspp.preget (n, nb))
+ case '?':
+ syntax ();
+ return 0;
+ default:
+ int s;
+ s = atoi (argv[i++]);
+ if (s == 0)
{
- bits = gspp.get (n, nb);
- std::cout << "get " << std::hex << bits << std::dec <<
- std::endl;
- break;
+ syntax ();
+ return 1;
}
- Date::wait (50);
- }
- break;
- default:
- int s;
- s = atoi (argv[i++]);
- if (s == 0)
- {
- syntax ();
- return 1;
+ cout << "test: sleep " << s << endl;
+ Date::wait (s * 1000);
+ break;
}
- cout << "test: sleep " << s << endl;
- Date::wait (s * 1000);
- break;
}
+ a.waitOk ();
+ gspp.update ();
}
return 0;
}