Updated with option to return from BP screen to main screen, resolved screen navigation issues

Dependencies:   SDFileSystem TFTLCD_8bit ds3231 program mbed

Fork of poc_dis_5 by SenseSemi

Revision:
1:8316c23ec6b9
Child:
2:3b7b71bfc941
diff -r c47fb0c1bbf6 -r 8316c23ec6b9 glc.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/glc.cpp	Mon Jan 30 07:45:41 2017 +0000
@@ -0,0 +1,187 @@
+#include "mbed.h"
+#include "glc.h"
+#include "i2c_dec.h"
+#include "ili9325.h"
+#include "lcd_base.h"
+#include "display_modules.h"
+//#include "touch_modules.h"
+#include "rtc.h"
+#include "sdcard.h"
+
+
+void sample();
+void Compute();
+void i2c_spec();
+Ticker flipper;
+Ticker flipper1;
+
+//osTimerDef (sample_data, sample);                      // define timers
+//osTimerDef (Compute_GLC, Compute);  
+DigitalIn test_strip(PTA12);
+
+AnalogIn Ain(PTC1);//Electrode one
+AnalogIn Ain2(PTE29); // Electrode two
+AnalogOut DAC_signal(PTE30);
+//Serial gc(USBTX, USBRX);
+//unsigned char  c;
+//unsigned char HOME = 0;
+unsigned char GLC_START = 0;
+//signed char test_strip = 0;
+unsigned int mgdl = 0;
+unsigned int mgdll = 0;
+unsigned int daata1= 0;
+unsigned int data2 = 0;
+
+unsigned int data1n= 0;
+unsigned int data2n = 0;
+unsigned int datafinal1 = 0;
+unsigned int datafinal2 = 0;
+//unsigned int data_diff = 0;
+unsigned char err = 0;
+
+Serial ble(PTC4,PTC3);
+
+void sample()
+
+{
+     data1n = Ain.read_u16();
+     data2n = Ain2.read_u16();
+    daata1 = beta*daata1+alpha*data1n;
+    data2 = beta*data2+alpha*data2n;
+      
+     if( ((daata1-data2) >=(data2/10) && (daata1 > data2)) || ((data2-daata1) >=(data2/10) && (data2 > daata1)) )
+         {
+           
+            err = 1;     
+         }
+         else
+         {
+             err = 0;
+         }
+     
+}
+
+void Compute()
+{
+   
+   //datafinal1 = data1;
+ //  unsigned char check;  
+ //osTimerStop(id2);
+  //osTimerStop(id1);
+   datafinal1 = (unsigned int) NUMB1*(data2*VREF/(TOTAL))-NUMB2;
+   datafinal2 = (unsigned int) NUMB1*(daata1*VREF/(TOTAL))-NUMB2;
+   mgdl = (unsigned int) NUMB1*(((daata1+data2)/2)*VREF/(TOTAL))-NUMB2;
+   
+
+   if (err == 0)
+    {
+        
+        glc_4(mgdl);
+   
+        sd_write(mgdl);
+        sd_close();
+        ble.printf("blood glucose is %d", mgdl);
+        flipper.detach();
+        flipper1.detach();
+      //  return mgdl;
+   
+    }
+    else
+{
+        // lcd1.Print( " ERROR RESULT", 5,220,COLOR_RED,COLOR_BLACK, 0);    
+         //  ble.printf("E:");
+    }
+  
+ 
+}
+
+
+void T_S_detect(void)
+{
+  GLC_START = 1;    
+   //st_strip=1;
+}
+
+
+
+
+
+
+
+    
+   
+   
+   
+   
+
+
+
+
+void  glc(int pid){
+    char t_s_d = 0;
+    i2c_spec();
+    GLC_START = 1;
+  ble.baud(115200);
+if(GLC_START == 1)
+{
+  
+ //DisableTouch();
+ //gpo_t = 0;
+    //lcd1.FillRect(5,127,230,320,COLOR_BLACK);
+  glc_1();
+    err = 0;
+    data1n = 0;
+    data2n = 0;
+    daata1 = 0;
+    data2 = 0;
+     sd_open_GLCfile(pid);
+
+    while((test_strip));
+    
+    
+   // wait(500);
+   // Shutdown = 1;
+    
+    if (!test_strip)
+    { 
+      
+       flipper.attach(&sample, 0.8);
+      t_s_d = 0;
+      glc_2();
+             //gc.printf("%d\n", data1n);
+        
+      while((!t_s_d) && (!test_strip))
+      {
+        
+        
+        if ((daata1 >= THRESHOLD) || (data2 >= THRESHOLD)) 
+            { 
+                t_s_d = 1;
+              flipper1.attach(&Compute, 2.25); 
+               glc_3();
+            
+             
+             }
+        else
+            {
+              //wait for insertion of blood;
+            }
+         
+       }
+       
+        
+      //  t_s_d = 0;
+        wait_ms(800);
+        //flipper.detach();
+           
+}
+
+
+}  
+
+}  
+
+
+    
+
+