Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: SDFileSystem ds3231 eeprom_Nikita mbed testUniGraphic_150217
Fork of Int_Demo_09May2017_Suhasini_HRavg_Nik_BT_ba_update4thJuly17_nikita7july by
Revision 20:7c64e6ecad76, committed 2017-06-17
- Comitter:
- nikitateggi
- Date:
- Sat Jun 17 09:36:18 2017 +0000
- Parent:
- 19:1650bbc923cc
- Child:
- 21:7ef1b0b40841
- Commit message:
- poc code with finger detect and leadoff
Changed in this revision
--- a/bp.cpp Fri Jun 09 17:12:21 2017 +0000
+++ b/bp.cpp Sat Jun 17 09:36:18 2017 +0000
@@ -37,7 +37,7 @@
uint8_t uch_dummy;
uint32_t ppgdata;
-
+ uint8_t lead_reg=0;
//int dummyconcat = 700000;
int concatenate_value2 = 0;
unsigned char chk = 1;
@@ -134,7 +134,7 @@
freqset(); // setting the frequency
setupfunc();
- ecgsetupfunc();
+ lead_reg=ecgsetupfunc(); // lead contact // 14/06
maxim_max30102_reset(); // PPG reset
wait_ms(20);
@@ -155,6 +155,28 @@
maxim_max30102_read_fifo(&ppgdata);
}
+// BP Finger detect Function Added Nidhin 16/6/17
+// START
+ uint32_t un_max, un_min; // Declare two VARIABLE FOR MAX AND MIN
+ un_max = 0;
+un_min = 0x3FFF;
+
+for(int i=0; i<500; i++) // READS 500 SAMPLES TO SEE MAX AND MIN VAL DIFFERENCE
+{
+maxim_max30102_read_reg(0,&uch_dummy);
+while(INTR.read()==1);
+maxim_max30102_read_fifo(&ppgdata);
+
+if(un_min>ppgdata)
+un_min=ppgdata; //update signal min
+if(un_max<ppgdata)
+un_max=ppgdata;
+
+}
+
+if (((un_max -un_min) > 300) && (lead_reg==0)) // Checking for threshold 300 Added Nidhin 16/6/17
+
+{ //Added Nidhin 16/6/17
sd_open_BPfilee(pid);
sd_open_BP_ECGfile(pid) ; // sd_open_BP_ECGfile(123) draft file for testing
@@ -253,7 +275,17 @@
bpfile_mainfile(pid);
screen_bp1(SBP,DBP);
-
+
+ } //Added Nidhin 16/6/17
+
+ else //Added Nidhin 16/6/17
+ { //Added Nidhin 16/6/17
+ // Add display sequence for Finger detect fail //Added Nidhin 16/6/17
+ maxim_max30102_reset();
+ bpr.printf("no finger detect\n");
+ screen_ecg_lead_bp_fingerdetect();
+ } //Added Nidhin 16/6/17
+ screen_ecg_bp() ;
// Only for testing
- }
-
\ No newline at end of file
+ //} //Commented Nidhin 16/6/17
+}
\ No newline at end of file
--- a/display_modules.cpp Fri Jun 09 17:12:21 2017 +0000
+++ b/display_modules.cpp Sat Jun 17 09:36:18 2017 +0000
@@ -13,8 +13,8 @@
//BusOut dataBus( PTC12, PTC13, PTB10, PTC9, PTD4, PTD5, PTD6, PTD7 ); // 16 pins//POC DISPALY 240*320 pixels
//ILI9325_LCD lcd( PTC5, PTB9, PTC0, PTB0, &dataBus, NC, PTE31);
- PinName buspins[8]={PTC12, PTC13, PTB10, PTC9, PTD4, PTD5, PTD6, PTD7 };
- ILI932x TFT(BUS_8, buspins, PTC5, PTB9, PTC0, PTB0,PTE31,"SPFD5408_2.4") ;
+PinName buspins[8]={PTC12, PTC13, PTB10, PTC9, PTD4, PTD5, PTD6, PTD7 };
+ILI932x TFT(BUS_8, buspins, PTC5, PTB9, PTC0, PTB0,PTE31,"SPFD5408_2.4") ;
DigitalOut backlight(PTC9) ;
void init_screen() // initializing the screen
@@ -36,29 +36,29 @@
backlight = 0 ;
TFT.BusEnable(true) ;
TFT.background(White) ;
- TFT.cls() ;
- wait(0.1) ;
+ TFT.cls() ;
+ wait(0.1) ;
TFT.set_font((unsigned char*) Arial12x12);
TFT.foreground(Red);
TFT.locate(20,100) ;
- TFT.printf(buff1);
- TFT.set_font((unsigned char*) Arial24x23);
- TFT.foreground(Black);
- TFT.locate(35,20) ;
+ TFT.printf(buff1);
+ TFT.set_font((unsigned char*) Arial24x23);
+ TFT.foreground(Black);
+ TFT.locate(35,20) ;
TFT.printf("SENSESEMI") ;
TFT.locate(45,60) ;
- TFT.printf("SenseSmart") ;
- TFT.background(Olive) ;
- TFT.fillrect( 60,130,180,200,Olive);
- TFT.locate(100,140) ;
+ TFT.printf("Sense POC") ;
+ TFT.background(Olive) ;
+ TFT.fillrect( 60,130,180,200,Olive);
+ TFT.locate(100,140) ;
TFT.printf("SYS") ;
- TFT.locate(65,170) ;
+ TFT.locate(65,170) ;
TFT.printf("CONFIG") ;
- TFT.fillrect( 60,230,180,300,Olive);
- TFT.locate(90,250) ;
- TFT.printf("TEST") ;
+ TFT.fillrect( 60,230,180,300,Olive);
+ TFT.locate(90,250) ;
+ TFT.printf("TEST") ;
TFT.BusEnable(false) ;
- backlight = 1 ;
+ backlight = 1 ;
}
@@ -66,86 +66,84 @@
void screen_main_2(int pid) // test main screen
{
- char buff2[10];
- backlight = 0 ;
+ char buff2[10];
+ backlight = 0 ;
TFT.BusEnable(true) ;
- TFT.background(White) ;
- sprintf(buff2 ,"%d", pid);
- TFT.fillrect(5,20,250,150,White );
- TFT.fillrect(60,130,180,200,White );
- TFT.fillrect(60,230,180,300,White );
+ TFT.background(White) ;
+ sprintf(buff2 ,"%d", pid);
+ TFT.fillrect(5,20,250,150,White );
+ TFT.fillrect(60,130,180,200,White );
+ TFT.fillrect(60,230,180,320,White ); // changed from 300 to 320
TFT.set_font((unsigned char*) Arial24x23);
- TFT.foreground(Black);
- TFT.locate(10,50) ;
+ TFT.foreground(Black);
+ TFT.locate(10,50) ;
TFT.printf("PATIENTID") ;
- TFT.locate(180,50) ;
+ TFT.locate(180,50) ;
TFT.printf(buff2) ;
- TFT.background(Orange) ;
- TFT.foreground(Black);
- TFT.fillrect( 10,130,100,200,Orange);
- TFT.locate(40,160) ;
- TFT.printf("BG") ;
- TFT.fillrect( 130,130,220,200,Orange);
- TFT.locate(145,160) ;
+ TFT.background(Orange) ;
+ TFT.foreground(Black);
+ TFT.fillrect( 10,130,100,200,Orange);
+ TFT.locate(40,160) ;
+ TFT.printf("BG") ;
+ TFT.fillrect( 130,130,220,200,Orange);
+ TFT.locate(145,160) ;
TFT.printf("ECG") ;
- TFT.fillrect( 10,215,100,285,Orange);
- TFT.locate(40,245) ;
- TFT.printf("BP") ;
- TFT.fillrect(130,215,220,285,Orange);
- TFT.locate(130,245) ;
- TFT.printf("HOME") ;
-
+ TFT.fillrect( 10,215,100,285,Orange);
+ TFT.locate(40,245) ;
+ TFT.printf("BP") ;
+ TFT.fillrect(130,215,220,285,Orange);
+ TFT.locate(130,245) ;
+ TFT.printf("HOME") ;
TFT.BusEnable(false) ;
- backlight = 1 ;
+ backlight = 1 ;
}
void screen_main_1() // System Configuration main screen
{
- backlight = 0 ;
+ backlight = 0 ;
TFT.BusEnable(true) ;
TFT.background(GreenYellow) ;
- TFT.fillrect(5,127,230,320,White );
+ TFT.fillrect(5,127,230,320,White );
// wait(0.1) ;
TFT.set_font((unsigned char*) Arial24x23);
- TFT.foreground(Black);
- TFT.fillrect( 10,130,100,200,GreenYellow);
- TFT.locate(40,160) ;
+ TFT.foreground(Black);
+ TFT.fillrect( 10,130,100,200,GreenYellow);
+ TFT.locate(40,160) ;
TFT.printf("BLE") ;
- TFT.fillrect( 130,130,220,200,GreenYellow);
- TFT.locate(135,160) ;
+ TFT.fillrect( 130,130,220,200,GreenYellow);
+ TFT.locate(135,160) ;
TFT.printf("ERASE") ;
- TFT.fillrect( 10,215,100,285,GreenYellow);
- TFT.locate(30,245) ;
- TFT.printf("FILE") ;
- TFT.fillrect(130,215,220,285,GreenYellow);
- TFT.locate(130,245) ;
- TFT.printf("HOME") ;
-
+ TFT.fillrect( 10,215,100,285,GreenYellow);
+ TFT.locate(30,245) ;
+ TFT.printf("FILE") ;
+ TFT.fillrect(130,215,220,285,GreenYellow);
+ TFT.locate(130,245) ;
+ TFT.printf("HOME") ;
TFT.BusEnable(false) ;
- backlight = 1 ;
+ backlight = 1 ;
}
void screen_ecg() //ECG screen 1
{
- backlight = 0 ;
+ backlight = 0 ;
TFT.BusEnable(true) ;
- TFT.fillrect(10,130,100,200,White);
- TFT.fillrect(130,130,220,200,White);
- TFT.fillrect(130,215,220,285,White);
- TFT.fillrect(10,215,100,285,White);
- TFT.fillrect(60,130,180,200,White);
- TFT.background(Green) ;
+ TFT.fillrect(10,130,100,200,White);
+ TFT.fillrect(130,130,220,200,White);
+ TFT.fillrect(130,215,220,285,White);
+ TFT.fillrect(10,215,100,285,White);
+ TFT.fillrect(60,130,180,200,White);
+ TFT.background(Green) ;
TFT.fillrect( 60,130,180,200,Green);
- TFT.locate(80,150) ;
+ TFT.locate(80,150) ;
TFT.printf("START") ;
- TFT.fillrect( 60,230,180,300,Green);
- TFT.locate(85,250) ;
- TFT.printf("RET") ;
+ TFT.fillrect( 60,230,180,300,Green);
+ TFT.locate(85,250) ;
+ TFT.printf("MAIN") ;
TFT.BusEnable(false) ;
- backlight = 1 ;
+ backlight = 1 ;
@@ -156,27 +154,75 @@
void screen_ecg_2(float heart_rate) // ECG screen 2
{
- char buf[5];
- backlight = 0 ;
- TFT.BusEnable(true) ;
- TFT.background(White) ;
- TFT.foreground(Green) ;
- sprintf (buf, "%.0f bpm",heart_rate);
- TFT.fillrect(5,90,230,150,White);
- TFT.locate(3,100) ;
- TFT.printf(" Tst is Done ") ;
- TFT.locate(3,150) ;
- TFT.printf(" HeartRate ") ;
- TFT.locate(30,180);
- TFT.printf(buf) ;
- TFT.background(Green) ;
- TFT.fillrect(10,215,230,290,White);
- TFT.fillrect(60,230,180,300,Green);
- TFT.locate(100,250) ;
- TFT.foreground(Black) ;
- TFT.printf("RET") ;
- TFT.BusEnable(false) ;
- backlight = 1 ;
+ char buf[5];
+ backlight = 0 ;
+ TFT.BusEnable(true) ;
+ TFT.background(White) ;
+ TFT.foreground(Green) ;
+ sprintf (buf, "%.0f bpm",heart_rate);
+ TFT.fillrect(5,90,230,150,White);
+ TFT.locate(3,100) ;
+ TFT.printf(" ECG Tst Done ") ;
+ TFT.locate(3,150) ;
+ TFT.printf(" HeartRate ") ;
+ TFT.locate(50,180); // changed from 30
+ TFT.printf(buf) ;
+ TFT.BusEnable(false) ;
+ backlight = 1 ;
+ }
+
+ void screen_ecg_lead() // ECG screen for displaying no lead proper lead contact
+ {
+ backlight = 0 ;
+ TFT.BusEnable(true) ;
+ TFT.background(White) ;
+ TFT.foreground(Red) ;
+ TFT.fillrect(5,90,230,150,White);
+ TFT.locate(50,100) ;
+ TFT.printf("Re-check") ;
+ TFT.locate(3,130) ;
+ TFT.printf("Lead Connection") ;
+ TFT.BusEnable(false) ;
+ backlight = 1 ;
+}
+
+
+ void screen_ecg_lead_bp_fingerdetect() // ECG screen for displaying no lead proper lead contact
+ {
+ backlight = 0 ;
+ TFT.BusEnable(true) ;
+ TFT.background(White) ;
+ TFT.foreground(Red) ;
+ TFT.fillrect(5,90,230,150,White);
+ TFT.locate(20,100) ;
+ TFT.printf("Re-check Leads") ;
+ TFT.locate(50,130) ;
+ TFT.printf("& finger ") ;
+ TFT.locate(45,160) ;
+ TFT.printf("placement") ;
+ TFT.BusEnable(false) ;
+ backlight = 1 ;
+}
+
+ void screen_ecg_bp() // added screen dispaly text //14/06
+ { backlight = 0 ;
+ TFT.BusEnable(true) ;
+ TFT.background(Green) ;
+ TFT.fillrect(10,215,230,290,White);
+ //TFT.fillrect(60,230,180,300,Green);
+ //TFT.locate(100,250) ;
+ TFT.foreground(Black) ;
+ // TFT.printf("RET") ;
+ TFT.fillrect( 10,215,100,285,Green);
+ TFT.locate(30,245) ;
+ TFT.printf("MAIN") ;
+ TFT.fillrect(130,215,220,285,Green);
+ TFT.locate(155,235) ; // changed // points // 13/06
+ TFT.printf("RE-") ;
+ TFT.locate(145,255) ;
+ TFT.printf("TEST") ;
+ TFT.BusEnable(false) ;
+ backlight = 1 ;
}
@@ -197,9 +243,9 @@
TFT.printf("START") ;
TFT.fillrect( 60,230,180,300,Green);
TFT.locate(100,250) ;
- TFT.printf("RET") ;
+ TFT.printf("MAIN") ;
TFT.BusEnable(false) ;
- backlight = 1 ;
+ backlight = 1 ;
}
@@ -208,24 +254,34 @@
{
backlight = 0 ;
TFT.BusEnable(true) ;
- TFT.background(White) ;
- TFT.foreground(Green) ;
- char buf[10];
- TFT.fillrect(3,130,200,200,White);
- TFT.fillrect(60,230,180,300,White);
- sprintf (buf, "SBP: %.0f ",SBP); // changed to display 2 digits after decimal point, 2May'17 Changed to Integer
- TFT.locate(5,100) ;
+ TFT.background(White) ;
+ TFT.foreground(Green) ;
+ char buf[10];
+ TFT.fillrect(3,130,200,200,White);
+ TFT.fillrect(60,230,180,300,White);
+ TFT.locate(3,100) ;
+ TFT.printf(" BP Tst Done ") ;
+ sprintf (buf, "SBP: %.0f ",SBP); // changed to display 2 digits after decimal point, 2May'17 Changed to Integer
+ TFT.locate(5,140) ; // changed 100 to 150
TFT.printf(buf) ;
- sprintf (buf, "DBP: %.0f",DBP); // changed to display 2 digits after decimal point, 2May'17, Changed to integer
- TFT.locate(5,150) ;
- TFT.printf(buf) ;
- TFT.fillrect(60,230,180,300,Green);
- TFT.locate(85,250) ;
- TFT.foreground(Black) ;
- TFT.background(Green) ;
- TFT.printf("RET") ;
- TFT.BusEnable(false) ;
- backlight = 1 ;
+ sprintf (buf, "DBP: %.0f",DBP); // changed to display 2 digits after decimal point, 2May'17, Changed to integer
+ TFT.locate(5,170) ; // CHANGED from 150 to 170
+ TFT.printf(buf) ;
+ //TFT.fillrect(60,230,180,300,Green);
+ //TFT.locate(85,250) ;
+ /* TFT.foreground(Black) ; // commented //16/06
+ TFT.background(Green) ;
+ //TFT.printf("RET") ;
+ TFT.fillrect( 10,215,100,285,Green);
+ TFT.locate(30,245) ;
+ TFT.printf("RET") ;
+ TFT.fillrect(130,215,220,285,Green);
+ TFT.locate(155,235) ; // changed // points // 13/06
+ TFT.printf("RE-") ;
+ TFT.locate(145,255) ;
+ TFT.printf("TEST") ; */
+ TFT.BusEnable(false) ;
+ backlight = 1 ;
}
@@ -235,22 +291,34 @@
void screen_glc() // glc main screen
{
- backlight = 0 ;
+ backlight = 0 ;
TFT.BusEnable(true) ;
- TFT.background(Green) ;
- TFT.foreground(Black) ;
- TFT.fillrect(10,130,100,200,White);
- TFT.fillrect(130,130,220,200,White);
- TFT.fillrect(10,215,100,285,White);
- TFT.fillrect(130,215,220,285,White);
- TFT.fillrect( 60,130,180,200,Green);
- TFT.locate(80,150) ;
- TFT.printf("START") ;
- TFT.fillrect( 60,230,180,300,Green);
- TFT.locate(100,250) ;
- TFT.printf("RET") ;
+ TFT.background(Green) ;
+ TFT.foreground(Black) ;
+ TFT.fillrect(10,130,100,200,White);
+ TFT.fillrect(130,130,220,200,White);
+ TFT.fillrect(10,215,100,285,White);
+ TFT.fillrect(130,215,220,285,White);
+ // TFT.fillrect( 60,130,180,200,Green);
+ // TFT.locate(80,150) ;
+ // TFT.printf("START") ;
+ TFT.fillrect( 10,130,100,200,Green);
+ TFT.locate(30,160) ; // changed to 30 from 40
+ TFT.printf("FBS") ;
+ TFT.fillrect( 130,130,220,200,Green);
+ TFT.locate(155,160) ;
+ TFT.printf("PP") ;
+ TFT.fillrect( 10,215,100,285,Green);
+ TFT.locate(20,245) ;
+ TFT.printf("RAN") ;
+ TFT.fillrect(130,215,220,285,Green);
+ TFT.locate(155,245);
+ TFT.printf("MAIN") ;
+ // TFT.fillrect( 60,230,180,300,Green);
+ // TFT.locate(100,250) ;
+ // TFT.printf("RET") ;
TFT.BusEnable(false) ;
- backlight = 1 ;
+ backlight = 1 ;
}
@@ -267,23 +335,23 @@
void ecg_countdown() // ECG measurement countdown
{
- backlight = 0 ;
+ backlight = 0 ;
TFT.BusEnable(true) ;
- TFT.background(White) ;
- TFT.foreground(Green) ;
- char tim1[5];
- TFT.fillrect(3,130,200,200,White);
- TFT.fillrect(60,230,180,300,White);
- TFT.fillrect(5,215,230,290,White);
- TFT.locate(25,100) ;
- TFT.printf("ECG starts in") ;
- for(int i=5;i>=0;i--)
- {
+ TFT.background(White) ;
+ TFT.foreground(Green) ;
+ char tim1[5];
+ TFT.fillrect(3,130,200,200,White);
+ TFT.fillrect(60,230,180,300,White);
+ TFT.fillrect(5,215,230,290,White);
+ TFT.locate(25,100) ;
+ TFT.printf("ECG starts in") ;
+ for(int i=5;i>=0;i--)
+ {
wait(1);
sprintf (tim1, "%d",i);
TFT.locate(120,120) ;
- TFT.printf(tim1) ;
- }
+ TFT.printf(tim1) ;
+ }
TFT.BusEnable(false) ;
backlight = 1 ;
@@ -292,22 +360,22 @@
void bp_countdown() // ECG measurement countdown
{
- backlight = 0 ;
+ backlight = 0 ;
TFT.BusEnable(true) ;
- TFT.background(White) ;
- TFT.foreground(Green) ;
- char tim1[5];
- TFT.fillrect(3,130,200,200,White);
- TFT.fillrect(60,230,180,300,White);
- TFT.fillrect(5,215,230,290,White);
- TFT.locate(25,100) ;
- TFT.printf("BP starts in") ;
- for(int i=5;i>=0;i--)
+ TFT.background(White) ;
+ TFT.foreground(Green) ;
+ char tim1[5];
+ TFT.fillrect(3,130,200,200,White);
+ TFT.fillrect(60,230,180,300,White);
+ TFT.fillrect(1,80,240,290,White); //changed the points// 13/06
+ TFT.locate(25,100) ;
+ TFT.printf("BP starts in") ;
+ for(int i=5;i>=0;i--)
{
wait(1);
sprintf (tim1, "%d",i);
TFT.locate(120,120) ;
- TFT.printf(tim1) ;
+ TFT.printf(tim1) ;
}
TFT.BusEnable(false) ;
backlight = 1 ;
@@ -315,21 +383,21 @@
void screen_again() // screen to press 'yes' or 'no' to repeat the test
{
- backlight = 0 ;
- TFT.BusEnable(true) ;
- TFT.background(White) ;
- TFT.foreground(Black) ;
- TFT.fillrect(5,127,230,200,White);
- TFT.locate(50,130) ;
- TFT.printf("Take test") ;
- TFT.locate(75,160) ;
- TFT.printf("again?") ;
- TFT.background(Orange) ;
- TFT.locate(30,245) ;
- TFT.printf("YES") ;
- TFT.locate(135,245) ;
- TFT.printf(" NO ") ;
- backlight = 1 ;
+ backlight = 0 ;
+ TFT.BusEnable(true) ;
+ TFT.background(White) ;
+ TFT.foreground(Black) ;
+ TFT.fillrect(5,127,230,200,White);
+ TFT.locate(50,130) ;
+ TFT.printf("Take test") ;
+ TFT.locate(75,160) ;
+ TFT.printf("again?") ;
+ TFT.background(Orange) ;
+ TFT.locate(30,245) ;
+ TFT.printf("YES") ;
+ TFT.locate(135,245) ;
+ TFT.printf(" NO ") ;
+ backlight = 1 ;
TFT.BusEnable(false) ;
}
@@ -338,17 +406,25 @@
void screen_glc_2() // GLC screen 3 after test
{
- backlight = 0 ;
+ backlight = 0 ;
TFT.BusEnable(true) ;
- TFT.background(White) ;
- TFT.foreground(Black) ;
- TFT.fillrect(5,127,230,320,White);
- TFT.fillrect(60,230,180,300,Green);
- TFT.locate(85,250) ;
- TFT.background(Green);
- TFT.printf("RET") ;
- backlight = 1 ;
- TFT.BusEnable(false) ;
+ TFT.background(White) ;
+ TFT.foreground(Black) ;
+ TFT.fillrect(5,127,230,320,White);
+ //TFT.fillrect(60,230,180,300,Green);
+ //TFT.locate(85,250) ;
+ TFT.background(Green);
+ //TFT.printf("RET") ;
+ TFT.fillrect( 10,215,100,285,Green);
+ TFT.locate(30,245) ;
+ TFT.printf("MAIN") ;
+ TFT.fillrect(130,215,220,285,Green);
+ TFT.locate(155,235) ; // changed // points // 13/06
+ TFT.printf("RE-") ;
+ TFT.locate(140,255) ; // changed from 145 to 140
+ TFT.printf("TEST") ;
+ backlight = 1 ;
+ TFT.BusEnable(false) ;
@@ -357,19 +433,20 @@
void glc_1() // GLC screen
{
- backlight = 0 ;
- TFT.BusEnable(true) ;
- TFT.background(White) ;
- TFT.foreground(Magenta ) ;
- TFT.fillrect(3,130,200,200,White);
- TFT.fillrect(60,230,180,300,White);
- TFT.fillrect(5,215,230,290,White);
- TFT.locate(5,130) ;
- TFT.printf("Blood Glucose") ;
- TFT.locate(5,160) ;
- TFT.printf("Insert strip") ;
- TFT.BusEnable(false) ;
- backlight = 1 ;
+ backlight = 0 ;
+ TFT.BusEnable(true) ;
+ TFT.background(White) ;
+ TFT.foreground(Magenta ) ;
+ TFT.fillrect(3,130,200,200,White);
+ TFT.fillrect(60,230,180,300,White);
+ TFT.fillrect(5,215,230,290,White);
+ TFT.fillrect( 130,130,220,200,White);
+ TFT.locate(5,130) ;
+ TFT.printf("Blood Glucose") ;
+ TFT.locate(5,160) ;
+ TFT.printf("Insert strip") ;
+ TFT.BusEnable(false) ;
+ backlight = 1 ;
@@ -377,39 +454,45 @@
void glc_2() // GLC screen
{
- backlight = 0 ;
- TFT.BusEnable(true) ;
- TFT.locate(5,160) ;
- TFT.printf("Strip Detected") ;
- TFT.locate(5,190) ;
- TFT.printf("Insert Blood") ;
- TFT.BusEnable(false) ;
- backlight = 1 ;
+ backlight = 0 ;
+ TFT.BusEnable(true) ;
+ TFT.locate(5,160) ;
+ TFT.printf("Strip Detected") ;
+ TFT.locate(5,190) ;
+ TFT.printf("Insert Blood") ;
+ TFT.BusEnable(false) ;
+ backlight = 1 ;
}
void glc_3() // GLC screen
{
- backlight = 0 ;
- TFT.BusEnable(true) ;
- TFT.locate(5,190) ;
- TFT.printf("Blood Detected") ;
- TFT.locate( 5,220) ;
- TFT.printf("computing") ;
- TFT.BusEnable(false) ;
- backlight = 1 ;
+ backlight = 0 ;
+ TFT.BusEnable(true) ;
+ TFT.locate(5,190) ;
+ TFT.printf("Blood Detected") ;
+ TFT.locate( 5,220) ;
+ TFT.printf("computing") ;
+ TFT.BusEnable(false) ;
+ backlight = 1 ;
}
void glc_4(uint16_t mgdl) // GLC screen to display blood glucose level on the LCD
{
- char buf[10];
- sprintf (buf, " BG %d mg/dl",mgdl);
- backlight = 0 ;
- TFT.BusEnable(true) ;
- TFT.fillrect(5,127,230,320,White);
- TFT.locate(5,100) ;
+ char buf[10];
+ sprintf (buf, " BG %d mg/dl",mgdl);
+ backlight = 0 ;
+ TFT.BusEnable(true) ;
+ TFT.fillrect(5,127,230,320,White);
+ TFT.locate(3,100) ;
+ TFT.printf(" BG Tst Done ") ;
+ TFT.locate(5,130) ;
TFT.printf(buf) ;
- TFT.BusEnable(false) ;
- backlight = 1 ;
- }
\ No newline at end of file
+ TFT.locate(5,160) ;
+ TFT.printf("(Range 70-120 mg/dl)") ; // added 16/06
+ TFT.BusEnable(false) ;
+ backlight = 1 ;
+ }
+
+
\ No newline at end of file
--- a/display_modules.h Fri Jun 09 17:12:21 2017 +0000 +++ b/display_modules.h Sat Jun 17 09:36:18 2017 +0000 @@ -11,6 +11,9 @@ void screen_glc(); void init_screen(); void screen_ecg_2(float heart_rate); +//void screen_ecg_3(); + void screen_ecg_bp(); //changed the name +void screen_ecg_lead(); void ecg_countdown(); void bp_countdown(); void glc_1(); @@ -20,6 +23,6 @@ void screen_again(); void screen_glc_2(); void screen_bp1(float SBP, float DBP) ; - + void screen_ecg_lead_bp_fingerdetect(); #endif
--- a/ec_bp.cpp Fri Jun 09 17:12:21 2017 +0000
+++ b/ec_bp.cpp Sat Jun 17 09:36:18 2017 +0000
@@ -19,7 +19,7 @@
unsigned int value4;
unsigned int value5;
unsigned int value6;
- unsigned int data1;
+ uint8_t data1;
unsigned int count;
//unsigned char chk2= 0;
@@ -173,6 +173,7 @@
wait(0.5);
regRead(REG_LOFF_STAT);//Read LOFF_STAT register
printf("REG_LOFF_STAT register read from ADS for ecg setup is= 0x%X\n",data1);
+
}
void doHelp(void)
@@ -312,12 +313,13 @@
ADS_START = 1;
}
- void ecgsetupfunc()
+uint8_t ecgsetupfunc()
{
+ // uint8_t lead=0;
ecgsetup(); // To set the ADS1291 registers for ECG signal generation
cmdWrite(CMD_RDATAC) ;
ADS_START = 1;
-
+ return data1; // returns lead off reg value // 14/06
}
void ecgtestsetupfunc()
--- a/ec_bp.h Fri Jun 09 17:12:21 2017 +0000 +++ b/ec_bp.h Sat Jun 17 09:36:18 2017 +0000 @@ -14,7 +14,7 @@ void doLoop(void) ; void setup(void); void testsetup(void); -void ecgsetup(void); +void ecgsetup(); void regWrite(int,int); void cmdWrite(int); void regRead(int); @@ -92,7 +92,7 @@ //PPG DECLARATION #define MAX_BRIGHTNESS 255 // BP ADD void setupfunc(); - void ecgsetupfunc(); +uint8_t ecgsetupfunc(); int readvalue(); #endif
--- a/ecgg.cpp Fri Jun 09 17:12:21 2017 +0000
+++ b/ecgg.cpp Sat Jun 17 09:36:18 2017 +0000
@@ -21,6 +21,8 @@
float ecg(int pid)
{
+
+ uint8_t lead_reg=0; // added on 14/06 to check lead -off
//----------------------- Structure for Bluetooth Added Nidhin 1/6/2017-------------------//
//BLUETOOTH STRUCTURE
@@ -119,9 +121,10 @@
pc.baud(baud_rate);
freqset(); // setting the frequency
setupfunc();
- ecgsetupfunc();
+ lead_reg=ecgsetupfunc(); // added a return function to read leadoff // 14/06
// chk = 1;
-
+ if (lead_reg==0) // checking for proper lead contact// 14/06
+ {
//ORIGINAL sd_open_ECGfile(pid); // opening the ecg file COMMENTED Nidhin 1/6/2017
sd_open_ECGfilee(pid); // REPLACED Nidhin 1/6/2017 Nidhin
@@ -134,7 +137,7 @@
sd_ecgwrite(ecg_ptr); // REPLACED Nidhin 1/6/2017
ecg_buf[i] = concatenate_value2;
- pc.printf( "%d\n", concatenate_value2); //COMMENTED Nidhin 1/6/2017
+ //// pc.printf( "%d\n", concatenate_value2); //COMMENTED Nidhin 1/6/2017
}
//sd_close(); // closing the file COMMENTED Nidhin 1/6/2017
@@ -176,9 +179,9 @@
// if(a_dif <= 0) ------------------------ add this condition if needed ----------------------
// {
pk_val[j] = hi_val; //if condition satisfied, put the "pk" value into "pk_val" buffer
- pc.printf("peak value= %d\n",pk_val[j]);
+ //// pc.printf("peak value= %d\n",pk_val[j]);
pk_pos[j]=a; // also save the peak's position
- pc.printf("peak position is = %d\n",pk_pos[j]);
+ //// pc.printf("peak position is = %d\n",pk_pos[j]);
i = a+120; // once confirmed that this is the necessary peak, skip the next 120 input values
n = j; // where n is the number of peaks detected
j = j+1;
@@ -236,6 +239,13 @@
return HR1;
// return HR_avg;
+ }
+
+ else
+ {
+ pc.printf("no - leadoff");
+ return 0;
+ }
} // End of main function
--- a/glc.cpp Fri Jun 09 17:12:21 2017 +0000
+++ b/glc.cpp Sat Jun 17 09:36:18 2017 +0000
@@ -180,6 +180,7 @@
//#include "touch_modules.h"
#include "rtc.h"
#include "sdcard.h"
+#include "eeprom_pgm.h" // Nidhin 12/6/17
#include "struct.h" //Nidhin 31/5/2017
//#include "test_type.h" //Nidhin 31/5/2017
@@ -217,6 +218,7 @@
uint32_t glcraw[2]; // Nidhin 31/5/2017
uint8_t chk_glc_data = 0;
+uint16_t glc_testtype; // Nidhin 12/6/2017
Serial ble(PTC4,PTC3);
@@ -429,8 +431,9 @@
sd_glcwrite(glcraw, pid); //Writes the raw data into GLC file
- //Results Stored to Bluetooth structure
- BLEMsg_info_glc.cal_data.cal_sbp_dummy = 0;
+ //Results Stored to Bluetooth structure
+ glc_testtype = eprom_read(2); // Reads the test type (before meal = 0 / after meal = 1 OR Random = 2 from location 2 of the EEPROM) Nidhin 12/6/17
+ BLEMsg_info_glc.cal_data.cal_sbp_dummy = (uint16_t) glc_testtype; // Data stored into structure
BLEMsg_info_glc.cal_data.cal_dbp_OTtyp = (uint16_t) mgdll; //To be checked for reliable results
structure_file(ptr_BLEMsg_info_glc, pid); // Copy the structure into the GLC file
--- a/main.cpp Fri Jun 09 17:12:21 2017 +0000
+++ b/main.cpp Sat Jun 17 09:36:18 2017 +0000
@@ -57,7 +57,7 @@
case 1: state_display=touch(state_touch); // touch state
- if(state_display==10)
+ if(state_display==12)
main_state=3;
else
@@ -119,7 +119,7 @@
case 3:
state1=touch_main_2(); //// determining the touch for TEST screen
-
+
state=0;
nstate1=state1;
break;
@@ -137,6 +137,10 @@
break;
case 6:
state1=touch_ret(); // determining the touch for returning back to the main screen
+ /* if (ecg_flag==1)
+ state1=8;
+ else if (glc_flag==1)
+ state1=7; */
state=0;
nstate1=state1;
break;
@@ -299,7 +303,8 @@
wait(5);
state1=0;
screen_glc_2();
- state=6;;
+ state=6;
+ eprom_write(3,0);
// gc.printf("%d", state);
nstate=state; //////////////
EnableTouch();
@@ -309,11 +314,22 @@
ecg_countdown(); // countdown before ecg capture
heart_rate=ecg(pid); // capturing ecg
state1=0;
- screen_ecg_2(heart_rate);
+ if (heart_rate==0)
+ {
+ gc.printf("hi");
+ screen_ecg_lead();
+ }
+
+ else
+ {
+ gc.printf("hif");
+ screen_ecg_2(heart_rate);
+ ecg_flag=1;
+ }
state=6;
- nstate=state;
- ecg_flag=1;
- // ble.printf("ecg");
+ eprom_write(3,1);
+ nstate=state;
+ screen_ecg_bp();
EnableTouch();
break;
@@ -335,6 +351,7 @@
state1=0;
// wait(1);
state=6;
+ eprom_write(3,2);
nstate=state;
EnableTouch();
break;
--- a/sdcard.cpp Fri Jun 09 17:12:21 2017 +0000
+++ b/sdcard.cpp Sat Jun 17 09:36:18 2017 +0000
@@ -44,7 +44,7 @@
- void sd_open_GLCfile(int pid) // opening the glc file
+ /*void sd_open_GLCfile(int pid) // opening the glc file
{
char buffer[32];
@@ -58,7 +58,7 @@
fprintf(fp,"%s\n",ctime(&epoch_time1) ); //writing the date, time into the file
- }
+ } */
void sd_open_GLCfilee(int pid) // only opening the glc file after entering TEST screen
{
@@ -70,7 +70,7 @@
- void sd_open_ECGfile(int pid)
+ /*void sd_open_ECGfile(int pid)
{
// char buffer[32];
@@ -84,7 +84,7 @@
fprintf(fp,"%s\n",ctime(&epoch_time1) );
}
-
+ */
void sd_open_ECGfilee(int pid) // only opening the ECG file after entering TEST screen
{
@@ -96,7 +96,7 @@
}
- void sd_open_BPfile(int pid)
+ /*void sd_open_BPfile(int pid)
{
char buffer[32];
@@ -108,7 +108,7 @@
sprintf(buffer1,"/sd/%d_BP.csv",pid);
fp = fopen(buffer1,"a");
fprintf(fp,"%s\n",ctime(&epoch_time1) );
- }
+ } */
void sd_open_BPfilee(int pid) // only opening the BP file after entering TEST screen
{
--- a/sdcard.h Fri Jun 09 17:12:21 2017 +0000 +++ b/sdcard.h Sat Jun 17 09:36:18 2017 +0000 @@ -6,12 +6,12 @@ #include "struct.h" -void sd_open_ECGfile(int pid); +//void sd_open_ECGfile(int pid); void sd_open_ECGfilee(int pid); -void sd_open_GLCfile(int pid); +//void sd_open_GLCfile(int pid); void sd_open_GLCfilee(int pid); void sd_open_BPfilee(int pid); -void sd_open_BPfile(int pid); +//void sd_open_BPfile(int pid); void sd_write (int value); int file_size() ; int file_size1() ;
--- a/touch_modules.cpp Fri Jun 09 17:12:21 2017 +0000
+++ b/touch_modules.cpp Sat Jun 17 09:36:18 2017 +0000
@@ -1,4 +1,5 @@
#include "mbed.h"
+#include "eeprom_pgm.h"
//#include "ili9325.h"
//#include "lcd_base.h"
#include "display_modules.h"
@@ -75,7 +76,7 @@
if ( ((xt >=35) && (xt<=100)) && ( (yt>= 135) && (yt<= 185) ) ) // ble
{
- // state=3;
+ state=12;
}
else if ( ((xt >=130) && (xt<=195)) && ( (yt>= 135) && (yt<= 185) ) ) // erase
@@ -165,13 +166,23 @@
{
unsigned char state;
+ int8_t type=0;
+ type=eprom_read(3);
-
- if ( ((xt >=70) && (xt<=170)) && ( (yt>=70) && (yt<=140) ) ) // press on return box
+ if ( ((xt >= 35) && (xt<=100)) && ( (yt>= 65) && (yt<= 118) ) ) // RET //CHANGED 12/06/17//
{
- state=3;
- }
-
+ state=3;
+
+ }
+ else if ( ((xt >= 130) && (xt<=195)) && ( (yt>= 65) && (yt<= 118) ) ) // RETEST
+ {
+ if (type==0)
+ state=7;
+ else if (type==1)
+ state=8;
+ else if (type==2)
+ state=9;
+ }
else
state=10;
return state;
@@ -206,7 +217,7 @@
{
unsigned char state;
- if ( ((xt >=70) && (xt<=170)) && ( (yt>= 140) && (yt<= 195) ) ) // START
+ /* if ( ((xt >=70) && (xt<=170)) && ( (yt>= 140) && (yt<= 195) ) ) // START
{
state=7;
@@ -215,9 +226,37 @@
else if ( ((xt >=70) && (xt<=170)) && ( (yt>=70) && (yt<=140) ) ) // RETURN
{
state=3;
- }
- else
- state=10;
+ } */
+
+ if ( ((xt >=35) && (xt<=100)) && ( (yt>= 135) && (yt<= 185) ) ) //fasting // 12/06/17 newly added
+ {
+
+ state=7;
+ eprom_write(2,0);
+ }
+
+ else if ( ((xt >=130) && (xt<=195)) && ( (yt>= 135) && (yt<= 185) ) ) // pp
+ {
+ state=7;
+ eprom_write(2,1);
+
+
+ }
+ else if ( ((xt >= 35) && (xt<=100)) && ( (yt>= 65) && (yt<= 118) ) ) // random
+ {
+ state=7;
+ eprom_write(2,2);
+
+ }
+ else if ( ((xt >= 130) && (xt<=195)) && ( (yt>= 65) && (yt<= 118) ) ) // return
+ {
+ state=3; //////////
+
+ }
+
+
+ else
+ state=10;
return state;
}
