summaryrefslogtreecommitdiffstats
path: root/main.vala
diff options
context:
space:
mode:
Diffstat (limited to 'main.vala')
-rw-r--r--main.vala63
1 files changed, 63 insertions, 0 deletions
diff --git a/main.vala b/main.vala
new file mode 100644
index 0000000..76fd3ab
--- /dev/null
+++ b/main.vala
@@ -0,0 +1,63 @@
+/* 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.
+ */
+
+Config cfg;
+Gyroscope gyroscope;
+Accelerometer accelerometer;
+Compass compass;
+Barometer barometer;
+MotorController motorCtrl;
+Receiver receiver;
+CopterModel model;
+FlightControl flightCtrl;
+Kinematics kinematics;
+
+bool loop() {
+ try {
+ /* TODO: get sensor values */
+ /* TODO: update kinematics */
+
+ flightCtrl.process();
+ } catch(Error e) {
+ stderr.printf("%s\n", e.message);
+ }
+
+ return true;
+}
+
+int main(string[] args) {
+ try {
+ cfg = new Config();
+
+ gyroscope = cfg.get_gyroscope();
+ accelerometer = cfg.get_accelerometer();
+ compass = cfg.get_compass();
+ barometer = cfg.get_barometer();
+ motorCtrl = cfg.get_motor_controller();
+ model = cfg.get_model();
+ receiver = cfg.get_receiver();
+
+ kinematics = new Kinematics(0, 0); // TODO: Compass
+ flightCtrl = new FlightControl();
+
+ Timeout.add(10, loop, Priority.HIGH);
+ } catch(Error e) {
+ stderr.printf("%s\n", e.message);
+ return 1;
+ }
+
+ new MainLoop(null, false).run();
+ return 0;
+}