summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Reichel <sre@ring0.de>2012-07-22 11:07:44 +0200
committerSebastian Reichel <sre@ring0.de>2012-07-22 11:07:44 +0200
commit77e9488cbb0c4c7dbb55470ec4cf2bbbe35a5d8d (patch)
treef620aeabccb06d9a3c47237601667fd792e41e99
parentfa137fe02919114b969be65ef7d9a359e65545bf (diff)
downloadmicrocopterd-77e9488cbb0c4c7dbb55470ec4cf2bbbe35a5d8d.tar.bz2
support logging into file
-rw-r--r--log.vala39
-rw-r--r--main.vala16
-rw-r--r--microcopter.cfg1
3 files changed, 50 insertions, 6 deletions
diff --git a/log.vala b/log.vala
new file mode 100644
index 0000000..a4f9842
--- /dev/null
+++ b/log.vala
@@ -0,0 +1,39 @@
+namespace Log {
+ private unowned FileStream file;
+ private FileStream fileowner;
+
+ public void init() {
+ set_file(cfg.get_string("config", "logfile"));
+ GLib.Log.set_default_handler(log_handler);
+ }
+
+ private void log_handler(string? domain, LogLevelFlags flags, string message) {
+ TimeVal time = {0};
+ time.get_current_time();
+ string s = "%.10ld | %15s | %s\n".printf(time.tv_usec, domain, message);
+
+ if(file != null) {
+ file.printf(s);
+ file.flush();
+ }
+ }
+
+ public bool set_file(string filename) {
+ switch(filename) {
+ case "stdout":
+ file = stdout;
+ break;
+ case "stderr":
+ file = stderr;
+ break;
+ default:
+ fileowner = FileStream.open(filename, "a");
+ file = fileowner;
+ break;
+ }
+
+ if(file == null)
+ return false;
+ return true;
+ }
+}
diff --git a/main.vala b/main.vala
index 76fd3ab..d398367 100644
--- a/main.vala
+++ b/main.vala
@@ -27,9 +27,10 @@ Kinematics kinematics;
bool loop() {
try {
/* TODO: get sensor values */
+ /* TODO: get remote control values */
/* TODO: update kinematics */
- flightCtrl.process();
+ //flightCtrl.process();
} catch(Error e) {
stderr.printf("%s\n", e.message);
}
@@ -38,14 +39,17 @@ bool loop() {
}
int main(string[] args) {
+ Environment.set_prgname("microcopterd");
+
try {
cfg = new Config();
+ Log.init();
- gyroscope = cfg.get_gyroscope();
- accelerometer = cfg.get_accelerometer();
- compass = cfg.get_compass();
- barometer = cfg.get_barometer();
- motorCtrl = cfg.get_motor_controller();
+ //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();
diff --git a/microcopter.cfg b/microcopter.cfg
index 373c44a..70441a7 100644
--- a/microcopter.cfg
+++ b/microcopter.cfg
@@ -6,6 +6,7 @@ gyroscope = ITG3200
accelerometer = ADXL345
compass = HMC5843
barometer = BMP085
+logfile = microcopterd.log
[ITG3200]
i2c-adapter = 3