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 merged_code2_3rd_nov_2017 by
Diff: ecgg.cpp
- Revision:
- 14:f5c62d30c6fc
- Parent:
- 13:5d3b478ea9c7
- Child:
- 15:208b146151ba
--- a/ecgg.cpp Sat May 27 05:47:55 2017 +0000
+++ b/ecgg.cpp Thu Jun 01 09:24:45 2017 +0000
@@ -12,14 +12,95 @@
#include "rtc.h"
#include "sdcard.h"
#include "ec_bp.h"
+
+#include "struct.h" // Added on 31/5/17_Nidhin
+#include "test_type.h" //Added on 31/5/17_Nidhin
Serial pc(USBTX,USBRX);
float ecg(int pid)
{
+ //----------------------- Structure for Bluetooth Added Nidhin 1/6/2017-------------------//
+
+ //BLUETOOTH STRUCTURE
+
+ BLEMsg_info *ptr_BLEMsg_info_ecg, BLEMsg_info_ecg; // A copy of master strcuture [ "BLEMsg_info" ] by name "BLEMsg_info_ecg" is created
+ ptr_BLEMsg_info_ecg = &BLEMsg_info_ecg; // *ptr_BLEMsg_info_bp is the pointer to local copy;
+
+ // Declaration of Date Structure
+ DateTime_info *ptr_DateTime_info_ecg, DateTime_info_ecg; // A copy of Master Structure "DateTime_info" created,
+ ptr_DateTime_info_ecg = &DateTime_info_ecg; // Structure pointer points to that copy.
+
+
+ // RTC operations
+ time_t epoch_time_ecg; //A copy of time_t by name epoch_time_bp is created
+ epoch_time_ecg = rtc_read(); // time is got from get epoch function.
+
+ struct tm * ptr_time_info_ecg, time_info_ecg; // Sturucture copy of tm is created
+ ptr_time_info_ecg = localtime(&epoch_time_ecg); // Structure accepts the time in local format from "time_t" type.
+
+ //BELOW LINE IS TO CHECK Date and TIME
+ pc.printf("Time is %d: %d: %d\n", (*ptr_time_info_ecg).tm_hour, (*ptr_time_info_ecg).tm_min, (*ptr_time_info_ecg).tm_sec);
+ pc.printf("Date is %d:%d:%d\n", (*ptr_time_info_ecg).tm_mday, (*ptr_time_info_ecg).tm_mon+1, (*ptr_time_info_ecg).tm_year-100);
+
+ //Copying from one structure to the other using variables
+ DateTime_info_ecg.hour = (uint8_t)(*ptr_time_info_ecg).tm_hour;
+ DateTime_info_ecg.mins = (uint8_t)(*ptr_time_info_ecg).tm_min;
+ DateTime_info_ecg.sec = (uint8_t)(*ptr_time_info_ecg).tm_sec;
+
+ DateTime_info_ecg.date = (uint8_t) (*ptr_time_info_ecg).tm_mday;
+ DateTime_info_ecg.month =(uint8_t)(*ptr_time_info_ecg).tm_mon+1;
+ DateTime_info_ecg.year = (uint8_t)(*ptr_time_info_ecg).tm_year-100;
+
+ // Copying Time to Main structure
+ BLEMsg_info_ecg.date_time.hour = DateTime_info_ecg.hour;
+ BLEMsg_info_ecg.date_time.mins = DateTime_info_ecg.mins;
+ BLEMsg_info_ecg.date_time.sec = DateTime_info_ecg.sec;
+
+ BLEMsg_info_ecg.date_time.date = DateTime_info_ecg.date ;
+ BLEMsg_info_ecg.date_time.month = DateTime_info_ecg.month ;
+ BLEMsg_info_ecg.date_time.year = DateTime_info_ecg.year ;
+
+
+ //Checking if the structure has these values
+ pc.printf("Time 2 is %d:%d:%d\n", DateTime_info_ecg.hour, DateTime_info_ecg.mins, DateTime_info_ecg.sec);
+ pc.printf("\t Date is %d:%d:%d\n",DateTime_info_ecg.date, DateTime_info_ecg.month, DateTime_info_ecg.year);
+
+
+ //Loading values to of Test type
+ test_type_info test_type_info_ecg; // copy of " test_type_info" created
+ test_type_info_ecg = ECG_Test; // Loaded value 00 to the test type
+
+ BLEMsg_info_ecg.test_type = test_type_info_ecg;
+ //Check if 00 is getting printed
+ pc.printf("Test Type is : %d\n", test_type_info_ecg);
+
+
+ // Loading values of Length , PID, DID, sampling frequency, number of samples, calculated data.
+ BLEMsg_info_ecg.device_id = 01; // Device ID fixed
+ BLEMsg_info_ecg.patient_id = (uint32_t)pid; // Patient ID
+ BLEMsg_info_ecg.sampling_freq = 500; // sampling frrquency
+ BLEMsg_info_ecg.length = 4026; //Total length of data in bytes 22 B+10752 B
+
+ /*
+ //Loading number of samples
+ NumSamples_info NumSamples_info_bp; //Copy of structure NumSamples_info
+ NumSamples_info_bp.num_ppg_sample = 1664; // PPG & ECG Sample number loaded in structure copy
+ NumSamples_info_bp.num_ecg_sample = 1024;
+ */
+
+ BLEMsg_info_ecg.num_samples.num_sample_ppg_dummy = 0 ;// PPG number of samples copied to master struct
+ BLEMsg_info_ecg.num_samples.num_sample_ecg_OTtyp = 1000 ; // ECG number of samples copied to master struct
+
+ //----------------------------------------END Structure for Bluetooth - Added Nidhin 1/6/2017-------
+
+
int concatenate_value2 = 0;
+ int *ecg_ptr; // Added 1/6/2017 Nidhin
+ ecg_ptr = &concatenate_value2; // Pointer to pass for ECG write into SD card Nidhin 1/6/2017
+
// int32_t sample_sum; // static int32_t avg[1500];
int32_t count = 0; int32_t fs = 500;
uint32_t ecg_buf[N_ECG];
@@ -40,17 +121,24 @@
setupfunc();
ecgsetupfunc();
// chk = 1;
- sd_open_ECGfile(pid); // opening the ecg file
+
+ //ORIGINAL sd_open_ECGfile(pid); // opening the ecg file COMMENTED Nidhin 1/6/2017
+ sd_open_ECGfilee(pid); // REPLACED Nidhin 1/6/2017 Nidhin
+
pc.printf( "Raw data is = \n");
for(int i=0; i<N_ECG; i++)
{
concatenate_value2= readvalue();
- sd_write(concatenate_value2); // writing into the sd card
+
+ //ORIGINAL sd_write(concatenate_value2); // writing into the sd card COMMENTED Nidhin 1/6/2017
+ sd_ecgwrite(ecg_ptr); // REPLACED Nidhin 1/6/2017
+
ecg_buf[i] = concatenate_value2;
- pc.printf( "%d\n", concatenate_value2);
+ //pc.printf( "%d\n", concatenate_value2); COMMENTED Nidhin 1/6/2017
}
-
- sd_close(); // closing the file
+
+ //sd_close(); // closing the file COMMENTED Nidhin 1/6/2017
+ sd_close_ecg(); // closing the ECG file REPLACED Nidhin 1/6/2017 Nidhin
/*
// ---------- reading back SD data for processing --------------------
sd_read_file(15);
@@ -133,6 +221,19 @@
printf("Denominator = %d\n",n);
printf("Heart Rate = %f\n",HR_avg);
*/
+
+ //ADDED Nidhin 1/6/2017
+
+BLEMsg_info_ecg.cal_data.cal_sbp_dummy = 0;
+BLEMsg_info_ecg.cal_data.cal_dbp_OTtyp = (uint16_t)HR1; //To be modified after HR code is added.
+
+structure_file(ptr_BLEMsg_info_ecg, pid); //copy the ECG structure to Main file
+ecgfile_mainfile(pid); // copy raw data to the main file and ECG file is cleared.
+
+ pc.printf("Closed the main file\n");
+
+
+
return HR1;
// return HR_avg;
