Code to be run for the project Group Fitness

Dependencies:   FXOS8700 Hexi_KW40Z Hexi_OLED_SSD1351 MAX30101

Fork of final_project_ee119 by Wenfei Lu

Files at this revision

API Documentation at this revision

Comitter:
aadithyavenkat
Date:
Sun Jun 17 22:01:52 2018 +0000
Parent:
8:f5a21cfd3833
Commit message:
Added Comments;

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Sun Jun 17 20:54:03 2018 +0000
+++ b/main.cpp	Sun Jun 17 22:01:52 2018 +0000
@@ -1,3 +1,5 @@
+// Importing the necessary header files for mbed OS, KW40z, OLED screen and 
+// FXOS 8700
 #include "mbed.h"
 #include "mbed_events.h"
 #include "Hexi_KW40Z.h"
@@ -7,6 +9,8 @@
 #include "string.h"
 #include "FXOS8700.h"
 
+
+// Utility functions defined below
 void StartHaptic(void);
 void StopHaptic(void const *n);
 float Filter(int s);
@@ -24,6 +28,8 @@
 void ButtonUp();
 void ButtonLeft(void);
 
+/* Instantiate the accelerometer */ 
+
 FXOS8700 accel(PTC11, PTC10);
 
 /* Instantiate the Hexi KW40Z Driver (UART TX, UART RX) */ 
@@ -39,6 +45,7 @@
 Thread bluetoothThread;
 Thread dataThread;
 
+/* Create a Thread to handle displaying */ 
 Thread displayThread;
 EventQueue displayEventQueue;
 
@@ -58,13 +65,14 @@
 float old_accx, old_accy, old_accz, old_dot=0.0;
 uint8_t StepNum = 0, StepNumber = 0;
 
+// Buffer for averaging out the Pedometer data
 float filter_buf[75];
 
 uint8_t result[1]={0};
 
 
 // variable to assist with viewing the other users' data
-char user[2];
+char user[2]; 
 char mean[4];
 char max[4];
 char min[4];
@@ -78,12 +86,15 @@
 
 // main() runs in its own thread in the OS
 int main() {
+    
+    /* Attaching the different functions to the Haptic Buttons*/
     kw40z_device.attach_buttonLeft(&ButtonLeft);
     kw40z_device.attach_buttonRight(&ButtonRight);
     kw40z_device.attach_buttonDown(&ButtonDown);
     kw40z_device.attach_buttonUp(&ButtonUp);
     kw40z_device.attach_alert(&AlertReceived);
     
+    /* Starting the accelerometer values*/
     accel.accel_config();
     
     // open up the display queue so that at any point in the program,
@@ -91,12 +102,15 @@
     displayThread.start(callback(&displayEventQueue, &EventQueue::dispatch_forever));
     displayEventQueue.call(&clearScreen);
     
+    /*Thread start the thread for Handling Bluetooth Events*/
     dataThread.start(BTTask);
     bluetoothThread.start(dataTask);
     
     wait(osWaitForever); 
 }
 
+// Function for handling Bluetooth toggling advertisement, send Alert flag and 
+// Step numbers
 void BTTask(void){
    
    while (true) 
@@ -115,6 +129,9 @@
     }
 }
 
+// Function for setting up the flag to configure different users to different
+// buttons on the Hexiwear and also to compute Pedometer algorithm based on 
+// Hexiwear data
 void dataTask(void) {    
     while (true) {
         if(flag == 1) {
@@ -185,7 +202,7 @@
 }
 
 // Key modification: use the alert functionality enabled by the host-ble interface
-// to define our own command.
+// to define our own command to display different user's data
 void AlertReceived(uint8_t *data, uint8_t length) {
     processedReceivedData = false;