diff options
Diffstat (limited to 'client/main.vala')
-rw-r--r-- | client/main.vala | 58 |
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; + } +} |