created separate function for hex to char

Dependencies:   SDFileSystem ds3231 eeprom_Nikita mbed testUniGraphic_150217

Fork of SS_SensePOC2P0_11Dec2017_USERPID by rashmi v

Revision:
42:c81673b04b6a
Parent:
41:1141a75eacc4
Child:
43:85a7f399cb9d
--- a/main.cpp	Fri Sep 08 10:35:21 2017 +0000
+++ b/main.cpp	Mon Sep 11 10:02:46 2017 +0000
@@ -18,10 +18,18 @@
 DigitalIn q1(PTB11);
 DigitalIn q(PTC5);
 DigitalIn q3(PTC12);
-DigitalIn BT(PTA5);                                                  //bluetooth status pin
-
-int32_t pid = 0;                                                    // patient ID
-bool file_created_status = 0x0000;                                  //initialise file created to 0
+DigitalIn BT(PTA5);   
+                                               //bluetooth status pin
+uint8_t touch(uint8_t state);           // touch state
+uint8_t display(uint8_t state1);       //  display state
+static uint8_t nstate=0;
+static uint8_t nstate1=0;
+static uint32_t current_test_pid=0;
+static uint32_t  bt_file_sent_pid=0; 
+uint32_t pid = 0;                                                    // patient ID
+bool file_created_status = false;                                  //initialise file created to 0
+static uint32_t pid_btpid[2];
+uint32_t filepid_btpid[2] = {};
 
 int main()
 {
@@ -36,8 +44,9 @@
     DisableTouch();
     gc.baud(115200);
     init_screen();                                                  //initialize lcd
-    sd_read(pid_btpid);                                             //read test pid and bt pid from sd card
-    pid = pid_btpid[0];                                             //copy test pid to pid variable
+    //sd_read(pid_btpid);                                             //read test pid and bt pid from sd card
+    //pid = pid_btpid[0];                                             //copy test pid to pid variable
+    pid = get_filepid();
     screen_main();                                                  // display of main screen 
 
 
@@ -205,8 +214,7 @@
                 ecg_flag=0;                                     // ecg, glc flag to determine whether the readings are taken more than once
                 glc_flag=0;
                 clear_filecreated_status();
-                sd_read(pid_btpid);                             //read pid from sd card
-                pid=pid_btpid[0];                               //copy pid to a variable
+                pid = get_filepid();
                 EnableTouch();
                 break;
       
@@ -221,6 +229,8 @@
                
       case 3: 
                 DisableTouch();
+                //sd_read(pid_btpid);                             //read pid from sd card
+                //pid=pid_btpid[0];                               //copy pid to a variable
                 gc.printf("pidinit=%d",pid);
                 screen_main_2(pid);     
                 state1=0;
@@ -282,6 +292,11 @@
      case 7:    
                 DisableTouch();     
                 glc(pid);                                                       // glc measurement
+                if(get_filecreated_status() == false)                           //if file is in write mode 
+                {   
+                    set_filecreated_status();                    
+                    increment_pid (); 
+                }    
                 glc_flag=1;
                 wait(1); 
                 state1=0;
@@ -311,7 +326,13 @@
                        
                          screen_ecg_2(heart_rate);
                          ecg_flag=1;
-                         }   
+                         }
+                 if(get_filecreated_status() == false)                           //if file is in write mode 
+                {   
+                    set_filecreated_status();                    
+                    increment_pid (); 
+                }  
+                            
                 state=6;
                 eprom_write_8(30,1);
                 nstate=state;
@@ -324,6 +345,11 @@
                 screen_bp2();                                                   // bp main screen
                 bp_countdown();                                                 // countdown for bp 
                 bp(pid);                                                        // measuring bp   earlier bp() changed to bp(pid) 28/4/2017
+                if(get_filecreated_status() == false)                           //if file is in write mode 
+                {   
+                    set_filecreated_status();                    
+                    increment_pid (); 
+                }  
                 state1=0;
                 state=6;
                 eprom_write_8(30,2);
@@ -340,10 +366,11 @@
                   
       case 11 :    
                 DisableTouch();
-                sd_read(pid_btpid);                                         //read pid from sd card 
-                current_test_pid=pid_btpid[0];
-                bt_file_sent_pid=pid_btpid[1];
-                screen_patient_info(current_test_pid, bt_file_sent_pid);
+                //sd_read(pid_btpid);                                         //read pid from sd card 
+                //current_test_pid=pid_btpid[0];
+                //bt_file_sent_pid=pid_btpid[1];
+                //screen_patient_info(current_test_pid, bt_file_sent_pid);
+                screen_patient_info(get_filepid(), get_btpid());
                 state1=0;
                 state=12;
                 EnableTouch();
@@ -372,11 +399,64 @@
 
 void set_filecreated_status(void)                                               //function to set file created status
 {
-    file_created_status = 0xFFFF;
+    file_created_status = true;
 }
 
 
 void clear_filecreated_status(void)                                             //function to clear file created status
 {
-    file_created_status = 0x0000;
-}
\ No newline at end of file
+    file_created_status = false;
+}
+
+void increment_pid (void)                                                       //increment pid if a test is completed
+{
+    uint32_t filepid_btpid[2] = {};
+    
+    //set_filecreated_status();                                                   //set it to make it append mode
+    sd_read(filepid_btpid);                                                     //read pid from sd card
+    filepid_btpid[0] = filepid_btpid[0] + 1;                                    //increment it by 1
+    sd_write(filepid_btpid);                                                    //write it back to sd card
+    
+} 
+
+uint32_t get_filepid(void)
+{
+    //uint32_t filepid_btpid[2] = {};  
+    uint32_t filepid = 0;    
+    
+    sd_read(filepid_btpid);                                                           //read pid from sd card
+    filepid= filepid_btpid[0];                                  
+    return filepid; 
+    
+}   
+
+void store_filepid(uint32_t pid)
+{
+       //uint32_t filepid_btpid[2] = {};
+        sd_read(filepid_btpid);                                                       //read pid from sd card
+        filepid_btpid[0] = pid;                                              
+        sd_write(filepid_btpid);                                                      //write it back to sd card
+                                                        
+} 
+
+uint32_t get_btpid(void)
+{
+    //uint32_t filepid_btpid[2] = {}; 
+    uint32_t btpid = 0;    
+    
+    sd_read(filepid_btpid);                                                           //read pid from sd card
+    btpid= filepid_btpid[1];                                  
+    return btpid; 
+    
+}   
+
+void store_btpid(uint32_t bt_pid)
+{
+       //uint32_t filepid_btpid[2] = {};
+    
+        sd_read(filepid_btpid);                                                       //read pid from sd card
+        filepid_btpid[1] = bt_pid;                                              
+        sd_write(filepid_btpid);                                                      //write it back to sd card
+                                                        
+} 
+