summaryrefslogtreecommitdiffstats
path: root/client/main.vala
diff options
context:
space:
mode:
Diffstat (limited to 'client/main.vala')
-rw-r--r--client/main.vala58
1 files changed, 58 insertions, 0 deletions
diff --git a/client/main.vala b/client/main.vala
new file mode 100644
index 0000000..2c676a5
--- /dev/null
+++ b/client/main.vala
@@ -0,0 +1,58 @@
+public static void main(string[] args) {
+ var engines = new EngineController("/dev/ttyAMA0");
+
+ if(args.length < 2) {
+ stderr.printf("%s <cmd>\n", args[0]);
+ stderr.printf("cmds: engine, enable, disable, nop\n");
+ return;
+ }
+
+ switch(args[1]) {
+ case "engine":
+ if(args.length < 4) {
+ stderr.printf("%s engine <engine> <speed>\n", args[0]);
+ return;
+ }
+
+ uint8 engine = (uint8) int.parse(args[2]);
+ if("%u".printf(engine) != args[2])
+ error("engine must be an integer");
+
+ uint8 speed = (uint8) int.parse(args[3]);
+ if("%u".printf(speed) != args[3])
+ error("speed must be an integer");
+
+ if(engine == 6)
+ if(engines.set_speed_all(speed))
+ stdout.printf("set speed of all engines to %u: ok\n", speed);
+ else
+ stdout.printf("set speed of all engines to %u: fail\n", speed);
+ if(engine <= 5)
+ if(engines.set_speed(engine, speed))
+ stdout.printf("set speed of engine %u to %u: ok\n", engine, speed);
+ else
+ stdout.printf("set speed of engine %u to %u: fail\n", engine, speed);
+ break;
+ case "enable":
+ if(engines.enable())
+ stdout.printf("enable motors: ok\n");
+ else
+ stdout.printf("enable motors: fail\n");
+ break;
+ case "disable":
+ if(engines.disable())
+ stdout.printf("disable motors: ok\n");
+ else
+ stdout.printf("disable motors: fail\n");
+ break;
+ case "nop":
+ if(engines.no_operation())
+ stdout.printf("no operation: ok\n");
+ else
+ stdout.printf("no operation: fail\n");
+ break;
+ default:
+ stderr.printf("cmd not supported!\n");
+ break;
+ }
+}