From 316ebf0461459ccb07dece65ffaea6fb9ecc1454 Mon Sep 17 00:00:00 2001
From: bertucci <bertucci@iastate.edu>
Date: Mon, 29 Apr 2019 16:57:37 -0500
Subject: [PATCH] The work continues

---
 quad/src/quad_app/log_data.c | 24 +++++++++++++++++++++++-
 quad/src/quad_app/util.c     |  8 ++++++++
 2 files changed, 31 insertions(+), 1 deletion(-)

diff --git a/quad/src/quad_app/log_data.c b/quad/src/quad_app/log_data.c
index 2f0e251d8..96a0db977 100644
--- a/quad/src/quad_app/log_data.c
+++ b/quad/src/quad_app/log_data.c
@@ -410,7 +410,7 @@ void RTprintLogging(struct CommDriver *comm, log_t* log_struct, parameter_t* ps,
 	timer_axi_reset();
 }
 
-void RTprintend();
+void RTprintend()
 {
 	if (arrayIndex == 0)
 	{
@@ -524,3 +524,25 @@ void format_log(int idx, log_t* log_struct, struct str* buf) {
 	}
 	safe_sprintf_cat(buf, "\n");
 }
+
+/*
+    Initially sets it so that all debug values are zero
+*/
+void initializeFlags(SensorRTFlags_t * flags) {
+
+    flags = calloc(1, sizeof(SensorRTFlags_t));
+    flags -> imuflags = calloc(1, sizeof(IMUFlags_t));
+    flags -> optflowflags = calloc(1, sizeof(OptFlowFlags_t));
+    flags -> lidarflags = calloc(1, sizeof(lidarFlags_t));
+    flags -> errorflags = calloc(1, sizeof(SensorErrorFlags_t));
+    flags -> flag_count = 0;
+}
+
+void freeFlags(SensorRTFlags_t * flags){
+    free(flags -> imuflags);
+    free(flags -> optflowflags); 
+    free(flags -> lidarflags);
+    free(flags -> errorflags);
+    free(flags -> flag_count);
+    free(flags);
+}
diff --git a/quad/src/quad_app/util.c b/quad/src/quad_app/util.c
index 698d453c7..70fc13f33 100644
--- a/quad/src/quad_app/util.c
+++ b/quad/src/quad_app/util.c
@@ -121,3 +121,11 @@ void pack_short(int16_t val, u8* buff) {
 void pack_float(float val, u8* buff) {
 	memcpy(buff, &val, sizeof(val));
 }
+
+/*
+    Helper to return single bit of u32 data. This returns the "position"'th bit of the given u32,
+    assuming it is Zero indexed.
+*/
+u32 read_bit(u32 data, int position) {
+    return (data >> position) & 1;
+}
-- 
GitLab