summaryrefslogtreecommitdiffstats
path: root/test-shell.vala
diff options
context:
space:
mode:
Diffstat (limited to 'test-shell.vala')
-rw-r--r--test-shell.vala158
1 files changed, 0 insertions, 158 deletions
diff --git a/test-shell.vala b/test-shell.vala
deleted file mode 100644
index 4e78406..0000000
--- a/test-shell.vala
+++ /dev/null
@@ -1,158 +0,0 @@
-/* Copyright 2012, Sebastian Reichel <sre@ring0.de>
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-static int i;
-
-public static string? generator(string cmd, int state) {
- string[] commands = { "firmware", "get", "set", "stop", "play", "help", "pressure", "temperature", "altitude", "gyro-temperature", "gyro-data" };
-
- if(state == 0)
- i = -1;
-
- while(i < commands.length-1) {
- i++;
- if(commands[i].has_prefix(cmd)) {
- return commands[i];
- }
- }
-
- return null;
-}
-
-public static string[]? completion(string cmd, int start, int end) {
- string[] matches = null;
-
- if(start == 0)
- matches = Readline.completion_matches(cmd, generator);
-
- return matches;
-}
-
-public static bool shell(out string cmd) {
- cmd = Readline.readline("[blinkm] $ ");
- Readline.History.add(cmd);
-
- if(cmd == "exit")
- cmd = null;
-
- if(cmd == null)
- stdout.printf("exit\n");
-
- return (cmd != null) ? true : false;
-}
-
-public static int main(string[] args) {
- Readline.attempted_completion_function = completion;
- Readline.bind_key('\t', Readline.complete);
-
- try {
- string cmd;
- BlinkM led = new BlinkM(3, 0x10);
-#if BMP085
- BMP085 bmp085 = new BMP085(3);
-#endif
- ITG3200 itg3200 = new ITG3200(3);
-
- while(shell(out cmd)) {
- var cmdparts = cmd.split(" ");
- switch(cmdparts[0]) {
- case null:
- break;
- case "firmware":
- char major, minor;
- led.get_firmware_version(out major, out minor);
- stdout.printf("firmware: (%c.%c)\n", major, minor);
- break;
- case "get":
- switch(cmdparts[1]) {
- case "address":
- stdout.printf("address: %02x\n", led.get_address());
- break;
- default:
- stdout.printf("unknown get parameter!\n");
- break;
- }
- break;
- case "stop":
- led.script_stop();
- break;
- case "play":
- led.script_play((BlinkM.Script) uint64.parse(cmdparts[1]));
- break;
- case "set":
- if(cmdparts[1] == "fade" && cmdparts[2] == "speed") {
- if(cmdparts.length == 4)
- led.set_fade_speed((uint8) uint64.parse(cmdparts[3]));
- else
- stdout.printf("\tset fade speed <speed>\n");
- } else if(cmdparts[1] == "time" && cmdparts[2] == "adjust") {
- if(cmdparts.length == 4)
- led.set_time_adjust((int8) int.parse(cmdparts[3]));
- else
- stdout.printf("\tset time adjust <time>\n");
- } else {
- if(cmdparts.length == 4)
- led.set((uint8) uint64.parse(cmdparts[1]), (uint8) uint64.parse(cmdparts[2]), (uint8) uint64.parse(cmdparts[3]));
- else
- stdout.printf("\tset <red> <green> <blue>\n");
- }
- break;
-#if BMP085
- case "temperature":
- var temp = bmp085.get_temperature();
- stdout.printf("temperature: %d.%d °C\n", temp / 10, temp % 10);
- break;
- case "pressure":
- var pressure = bmp085.get_pressure();
- stdout.printf("pressure: %d.%d hPa\n", pressure / 100, pressure % 100);
- break;
- case "altitude":
- var altitude = bmp085.get_altitude();
- stdout.printf("altitude: %f m\n", altitude);
- break;
-#endif
- case "gyro-temperature":
- var temp = itg3200.get_temperature();
- stdout.printf("temperature 2: %d.%d °C\n", temp / 10, temp % 10);
- break;
- case "gyro-data":
- int16 x, y, z;
- itg3200.get_data(out x, out y, out z);
- stdout.printf("data: %d %d %d\n", x, y, z);
- break;
- case "help":
- stdout.printf("commands: \n");
- stdout.printf("\tfirmware\n");
- stdout.printf("\taddress get\n");
- stdout.printf("\tset <red> <green> <blue>\n");
- stdout.printf("\tset fade speed <speed>\n");
- stdout.printf("\tset time adjust <time>\n");
- stdout.printf("\tstop\n");
- stdout.printf("\tplay <id>\n");
- stdout.printf("\texit\n");
- break;
- default:
- stdout.printf("unknown command!\n");
- break;
- }
- }
- } catch(I2CError e) {
- stderr.printf("%s\n", e.message);
- } catch(Error e) {
- stderr.printf("%s\n", e.message);
- }
-
- return 0;
-}