The HexiHeart is a demo project product that takes advantage of many of the onboard Hexiwear sensors and capabilities to create a multifunctional fitness and safety watch.

Dependencies:   FXAS21002 FXOS8700 Hexi_KW40Z Hexi_OLED_SSD1351 MAXIM W25Q64FVSSIG HTU21D MPL3115A2 TSL2561

Fork of HexiHeart_Alex by Hexiwear_zeta

Files at this revision

API Documentation at this revision

Comitter:
asong
Date:
Thu May 10 03:44:47 2018 +0000
Parent:
21:76237b62466b
Commit message:
Added stages to the heart rate simulation

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Tue May 08 03:05:45 2018 +0000
+++ b/main.cpp	Thu May 10 03:44:47 2018 +0000
@@ -257,6 +257,7 @@
 uint8_t Current_Zone = 1;
 uint8_t Prev_Zone = 1;
 uint8_t Heart_Rate = 0;
+uint8_t rand_stage;
 uint8_t *HR_return;
 uint8_t Age = 25;            // Initialize age
 uint8_t Max_Bpm = 220 - Age;      // Initialize Max BPM
@@ -573,6 +574,7 @@
                 StartHaptic();
                 if(maxim == 0)
                 {
+                    simulation_stage = 0;
                     Heart_Rate_Mode = 1;
                     hr_led.attach(&Led_Zone_Indicator, HR_LED_period);
                     hr_simulation.attach(&HR_Simulation, 5.0);                  
@@ -4700,9 +4702,33 @@
         Heart_Rate = HR_Zone3[0] + rand() %( HR_Zone3[1] - HR_Zone3[0] + 1);
         
     }
+    else if(simulation_stage == 5)
+    {
+        Heart_Rate = HR_Zone2[0] + rand() %( HR_Zone2[1] - HR_Zone2[0] + 1);
+    }
+    else if(simulation_stage == 6)
+    {
+        Heart_Rate = HR_Zone1[0] + rand() %( HR_Zone1[1] - HR_Zone1[0] + 1);
+    }
     else 
     {
-        simulation_stage = -1;
+        rand_stage = rand() % 4 + 1;
+        if(rand_stage == 1)
+        {
+            Heart_Rate = HR_Zone1[0] + rand() %( HR_Zone1[1] - HR_Zone1[0] + 1);
+        }
+        else if(rand_stage == 2)
+        {
+            Heart_Rate = HR_Zone2[0] + rand() %( HR_Zone2[1] - HR_Zone2[0] + 1);
+        }
+        else if(rand_stage == 3)
+        {
+            Heart_Rate = HR_Zone3[0] + rand() %( HR_Zone3[1] - HR_Zone3[0] + 1);    
+        }
+        else if(rand_stage == 4)
+        {
+            Heart_Rate = HR_Zone4[0] + rand() %( HR_Zone4[1] - HR_Zone4[0] + 1);
+        }
     }
     simulation_stage++;
     Determine_Current_Zone();