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