SDP Code
Dependencies: BufferedSoftSerial GPRS SDP mbed
main.cpp@0:da51bdd3cff1, 2017-01-09 (annotated)
- Committer:
- Zushauque
- Date:
- Mon Jan 09 11:04:12 2017 +0000
- Revision:
- 0:da51bdd3cff1
last
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Zushauque | 0:da51bdd3cff1 | 1 | #include "mbed.h" |
Zushauque | 0:da51bdd3cff1 | 2 | #include "GPS.h" |
Zushauque | 0:da51bdd3cff1 | 3 | #include "gprs.h" |
Zushauque | 0:da51bdd3cff1 | 4 | #include "BufferedSoftSerial.h" |
Zushauque | 0:da51bdd3cff1 | 5 | #include "gprs.h" |
Zushauque | 0:da51bdd3cff1 | 6 | Serial pc(USBTX, USBRX); |
Zushauque | 0:da51bdd3cff1 | 7 | GPS uGPS(p13, p14); |
Zushauque | 0:da51bdd3cff1 | 8 | Serial uBP_RN41(p9,p10); |
Zushauque | 0:da51bdd3cff1 | 9 | BufferedSoftSerial uBP(p19,p18); |
Zushauque | 0:da51bdd3cff1 | 10 | GPRS uGSM(p28,p27,9600,"66426640"); |
Zushauque | 0:da51bdd3cff1 | 11 | |
Zushauque | 0:da51bdd3cff1 | 12 | //Power Management Variables |
Zushauque | 0:da51bdd3cff1 | 13 | DigitalOut pBP(p5); //For toggling the BP power |
Zushauque | 0:da51bdd3cff1 | 14 | DigitalOut BPbutton(p25);//For instigating BP measurement |
Zushauque | 0:da51bdd3cff1 | 15 | DigitalOut pRN41(p6);//For toggling the RN41's power. |
Zushauque | 0:da51bdd3cff1 | 16 | DigitalOut pGSM(p7);//For toggling the GSM's power. |
Zushauque | 0:da51bdd3cff1 | 17 | DigitalOut GSM_pwk(p21); //For using the GSM power key (doesn't turn off Power LED, waste of power). |
Zushauque | 0:da51bdd3cff1 | 18 | DigitalOut pGPS(p8); //For toggling the GPS's power. |
Zushauque | 0:da51bdd3cff1 | 19 | DigitalOut Buzzer(p23); |
Zushauque | 0:da51bdd3cff1 | 20 | DigitalOut LED(p24); |
Zushauque | 0:da51bdd3cff1 | 21 | |
Zushauque | 0:da51bdd3cff1 | 22 | //GPS Variables |
Zushauque | 0:da51bdd3cff1 | 23 | double lat, hlat=25.289536; //default longitude and latitude to Hamad Medical Corporation |
Zushauque | 0:da51bdd3cff1 | 24 | double lon, hlon=51.522364; |
Zushauque | 0:da51bdd3cff1 | 25 | GPS_Time t; //Structure has: hour, minute, second, day, month, year in it |
Zushauque | 0:da51bdd3cff1 | 26 | |
Zushauque | 0:da51bdd3cff1 | 27 | //BP Variables |
Zushauque | 0:da51bdd3cff1 | 28 | char BP[15]={0}; //Buffer for Blood Pressure Reading |
Zushauque | 0:da51bdd3cff1 | 29 | int SYS=120,DIA=80; |
Zushauque | 0:da51bdd3cff1 | 30 | int hSYS=0, hDIA=0; //History of Systolic and Diastolic |
Zushauque | 0:da51bdd3cff1 | 31 | |
Zushauque | 0:da51bdd3cff1 | 32 | //RN41-Nonin Variables |
Zushauque | 0:da51bdd3cff1 | 33 | char FirstBit=129,FalsePulse=5,SpO2=99,LastBit=100; |
Zushauque | 0:da51bdd3cff1 | 34 | int HR=70; |
Zushauque | 0:da51bdd3cff1 | 35 | |
Zushauque | 0:da51bdd3cff1 | 36 | //Power Management Functions |
Zushauque | 0:da51bdd3cff1 | 37 | void ToggleBP(bool state); |
Zushauque | 0:da51bdd3cff1 | 38 | void ToggleRN41(bool state); |
Zushauque | 0:da51bdd3cff1 | 39 | void ToggleGSM(bool state); |
Zushauque | 0:da51bdd3cff1 | 40 | void ToggleGPS(bool state); |
Zushauque | 0:da51bdd3cff1 | 41 | |
Zushauque | 0:da51bdd3cff1 | 42 | //GPS Functions |
Zushauque | 0:da51bdd3cff1 | 43 | void UpdateGPS(); |
Zushauque | 0:da51bdd3cff1 | 44 | bool CheckTime(); |
Zushauque | 0:da51bdd3cff1 | 45 | |
Zushauque | 0:da51bdd3cff1 | 46 | //BP Functions |
Zushauque | 0:da51bdd3cff1 | 47 | void InstigateReading(); |
Zushauque | 0:da51bdd3cff1 | 48 | void UpdateBP(); |
Zushauque | 0:da51bdd3cff1 | 49 | |
Zushauque | 0:da51bdd3cff1 | 50 | //RN41-Nonin Functions |
Zushauque | 0:da51bdd3cff1 | 51 | void initializeRN41(); |
Zushauque | 0:da51bdd3cff1 | 52 | void UpdateNonin(); //Function to update the measurements |
Zushauque | 0:da51bdd3cff1 | 53 | |
Zushauque | 0:da51bdd3cff1 | 54 | //QEWS variables & function |
Zushauque | 0:da51bdd3cff1 | 55 | int HRScore,SPScore,BPScore,QEWS_Score; |
Zushauque | 0:da51bdd3cff1 | 56 | void QEWS(); |
Zushauque | 0:da51bdd3cff1 | 57 | |
Zushauque | 0:da51bdd3cff1 | 58 | //GSM Variables |
Zushauque | 0:da51bdd3cff1 | 59 | char message[160]; //Length of SMS message is 160. |
Zushauque | 0:da51bdd3cff1 | 60 | int msglength=0; |
Zushauque | 0:da51bdd3cff1 | 61 | void FormatData(); |
Zushauque | 0:da51bdd3cff1 | 62 | void SendMessageGSM(); |
Zushauque | 0:da51bdd3cff1 | 63 | |
Zushauque | 0:da51bdd3cff1 | 64 | //MAIN |
Zushauque | 0:da51bdd3cff1 | 65 | int main(){ |
Zushauque | 0:da51bdd3cff1 | 66 | // Define Baudrates |
Zushauque | 0:da51bdd3cff1 | 67 | pBP=0; //For toggling the BP power |
Zushauque | 0:da51bdd3cff1 | 68 | BPbutton=1;//For instigating BP measurement |
Zushauque | 0:da51bdd3cff1 | 69 | pRN41=0;//For toggling the RN41's power. |
Zushauque | 0:da51bdd3cff1 | 70 | pGSM=0;//For toggling the GSM's power. |
Zushauque | 0:da51bdd3cff1 | 71 | GSM_pwk=0; //For using the GSM power key (doesn't turn off Power LED, waste of power). |
Zushauque | 0:da51bdd3cff1 | 72 | pGPS=0; //For toggling the GPS's power. |
Zushauque | 0:da51bdd3cff1 | 73 | uBP_RN41.baud(9600); |
Zushauque | 0:da51bdd3cff1 | 74 | while(1){ |
Zushauque | 0:da51bdd3cff1 | 75 | wait(3); |
Zushauque | 0:da51bdd3cff1 | 76 | UpdateGPS(); |
Zushauque | 0:da51bdd3cff1 | 77 | while(!CheckTime()); |
Zushauque | 0:da51bdd3cff1 | 78 | UpdateNonin(); |
Zushauque | 0:da51bdd3cff1 | 79 | UpdateBP(); |
Zushauque | 0:da51bdd3cff1 | 80 | QEWS(); |
Zushauque | 0:da51bdd3cff1 | 81 | FormatData(); |
Zushauque | 0:da51bdd3cff1 | 82 | if(QEWS_Score>=1) |
Zushauque | 0:da51bdd3cff1 | 83 | SendMessageGSM(); |
Zushauque | 0:da51bdd3cff1 | 84 | } |
Zushauque | 0:da51bdd3cff1 | 85 | |
Zushauque | 0:da51bdd3cff1 | 86 | } |
Zushauque | 0:da51bdd3cff1 | 87 | |
Zushauque | 0:da51bdd3cff1 | 88 | // Power Functions |
Zushauque | 0:da51bdd3cff1 | 89 | void ToggleBP(bool state){ |
Zushauque | 0:da51bdd3cff1 | 90 | if(state){ |
Zushauque | 0:da51bdd3cff1 | 91 | pRN41=0; wait(2); |
Zushauque | 0:da51bdd3cff1 | 92 | pBP=1; wait(2); |
Zushauque | 0:da51bdd3cff1 | 93 | } |
Zushauque | 0:da51bdd3cff1 | 94 | if(!state){ |
Zushauque | 0:da51bdd3cff1 | 95 | pRN41=0; wait(2); |
Zushauque | 0:da51bdd3cff1 | 96 | pBP=0; wait(2); |
Zushauque | 0:da51bdd3cff1 | 97 | } |
Zushauque | 0:da51bdd3cff1 | 98 | } |
Zushauque | 0:da51bdd3cff1 | 99 | |
Zushauque | 0:da51bdd3cff1 | 100 | void ToggleRN41(bool state){ |
Zushauque | 0:da51bdd3cff1 | 101 | if(state){ |
Zushauque | 0:da51bdd3cff1 | 102 | pBP=0; wait(2); |
Zushauque | 0:da51bdd3cff1 | 103 | pRN41=1; wait(2); |
Zushauque | 0:da51bdd3cff1 | 104 | } |
Zushauque | 0:da51bdd3cff1 | 105 | if(!state){ |
Zushauque | 0:da51bdd3cff1 | 106 | pRN41=0; wait(2); |
Zushauque | 0:da51bdd3cff1 | 107 | pBP=0; wait(2); |
Zushauque | 0:da51bdd3cff1 | 108 | } |
Zushauque | 0:da51bdd3cff1 | 109 | } |
Zushauque | 0:da51bdd3cff1 | 110 | |
Zushauque | 0:da51bdd3cff1 | 111 | void ToggleGSM(bool state){ |
Zushauque | 0:da51bdd3cff1 | 112 | if(state){ |
Zushauque | 0:da51bdd3cff1 | 113 | pGSM=1; |
Zushauque | 0:da51bdd3cff1 | 114 | wait(2); |
Zushauque | 0:da51bdd3cff1 | 115 | GSM_pwk=0; wait(1); |
Zushauque | 0:da51bdd3cff1 | 116 | GSM_pwk=1; |
Zushauque | 0:da51bdd3cff1 | 117 | wait(10); |
Zushauque | 0:da51bdd3cff1 | 118 | } |
Zushauque | 0:da51bdd3cff1 | 119 | if(!state){ |
Zushauque | 0:da51bdd3cff1 | 120 | GSM_pwk=0; wait(1); |
Zushauque | 0:da51bdd3cff1 | 121 | GSM_pwk=1; |
Zushauque | 0:da51bdd3cff1 | 122 | wait(5); |
Zushauque | 0:da51bdd3cff1 | 123 | pGSM=0; |
Zushauque | 0:da51bdd3cff1 | 124 | } |
Zushauque | 0:da51bdd3cff1 | 125 | } |
Zushauque | 0:da51bdd3cff1 | 126 | |
Zushauque | 0:da51bdd3cff1 | 127 | void ToggleGPS(bool state){ |
Zushauque | 0:da51bdd3cff1 | 128 | if(state){ |
Zushauque | 0:da51bdd3cff1 | 129 | pGPS=1; |
Zushauque | 0:da51bdd3cff1 | 130 | wait(5); //Waiting for 2 seconds. But is it enough to let the GPS module acquire GPS? |
Zushauque | 0:da51bdd3cff1 | 131 | } |
Zushauque | 0:da51bdd3cff1 | 132 | if(!state){ |
Zushauque | 0:da51bdd3cff1 | 133 | pGPS=0; |
Zushauque | 0:da51bdd3cff1 | 134 | wait(2); |
Zushauque | 0:da51bdd3cff1 | 135 | } |
Zushauque | 0:da51bdd3cff1 | 136 | } |
Zushauque | 0:da51bdd3cff1 | 137 | |
Zushauque | 0:da51bdd3cff1 | 138 | //GPS Functions |
Zushauque | 0:da51bdd3cff1 | 139 | void UpdateGPS(){ |
Zushauque | 0:da51bdd3cff1 | 140 | ToggleGPS(1); |
Zushauque | 0:da51bdd3cff1 | 141 | //Keep updating over the course of 20 seconds, to get a sure location. |
Zushauque | 0:da51bdd3cff1 | 142 | |
Zushauque | 0:da51bdd3cff1 | 143 | for(int i=0; i<20; i++){ |
Zushauque | 0:da51bdd3cff1 | 144 | lat=uGPS.latitude(); |
Zushauque | 0:da51bdd3cff1 | 145 | lon=uGPS.longitude(); |
Zushauque | 0:da51bdd3cff1 | 146 | uGPS.timeNow(&t); |
Zushauque | 0:da51bdd3cff1 | 147 | pc.printf("before history lat:%f, lon:%f \n\r",lat,lon); |
Zushauque | 0:da51bdd3cff1 | 148 | pc.printf("Time: %d, %d, %d \n\r", t.hour, t.minute,t.second); |
Zushauque | 0:da51bdd3cff1 | 149 | wait(10); |
Zushauque | 0:da51bdd3cff1 | 150 | } |
Zushauque | 0:da51bdd3cff1 | 151 | pGPS=0; |
Zushauque | 0:da51bdd3cff1 | 152 | if( (lat <=0) && (lon <= 0)){ // if there is an error in the location (i.e. not in Qatar) then it will use the last known location |
Zushauque | 0:da51bdd3cff1 | 153 | lat=hlat; // take the last known location. |
Zushauque | 0:da51bdd3cff1 | 154 | lon=hlon; |
Zushauque | 0:da51bdd3cff1 | 155 | } |
Zushauque | 0:da51bdd3cff1 | 156 | pc.printf("after history lat:%f, lon:%f \n\r",lat,lon); |
Zushauque | 0:da51bdd3cff1 | 157 | |
Zushauque | 0:da51bdd3cff1 | 158 | hlat=lat; |
Zushauque | 0:da51bdd3cff1 | 159 | hlon=lon; |
Zushauque | 0:da51bdd3cff1 | 160 | ToggleGPS(0); |
Zushauque | 0:da51bdd3cff1 | 161 | } |
Zushauque | 0:da51bdd3cff1 | 162 | |
Zushauque | 0:da51bdd3cff1 | 163 | //RN41 Functions |
Zushauque | 0:da51bdd3cff1 | 164 | void UpdateNonin(){ |
Zushauque | 0:da51bdd3cff1 | 165 | ToggleRN41(1); |
Zushauque | 0:da51bdd3cff1 | 166 | wait(10); |
Zushauque | 0:da51bdd3cff1 | 167 | if(uBP_RN41.readable()){ |
Zushauque | 0:da51bdd3cff1 | 168 | FirstBit =uBP_RN41.getc(); wait(0.5); |
Zushauque | 0:da51bdd3cff1 | 169 | FalsePulse=uBP_RN41.getc(); wait(0.5); |
Zushauque | 0:da51bdd3cff1 | 170 | HR= FalsePulse | ((FirstBit&=0x03)<<7); wait(0.5); |
Zushauque | 0:da51bdd3cff1 | 171 | SpO2=uBP_RN41.getc(); wait(0.5); |
Zushauque | 0:da51bdd3cff1 | 172 | LastBit=uBP_RN41.getc(); wait(0.5); |
Zushauque | 0:da51bdd3cff1 | 173 | pc.printf("SPO2: %d %d %d %d %d\n\r", FirstBit,FalsePulse,HR,SpO2,LastBit); |
Zushauque | 0:da51bdd3cff1 | 174 | } |
Zushauque | 0:da51bdd3cff1 | 175 | ToggleRN41(0); |
Zushauque | 0:da51bdd3cff1 | 176 | } |
Zushauque | 0:da51bdd3cff1 | 177 | |
Zushauque | 0:da51bdd3cff1 | 178 | //BP Functions |
Zushauque | 0:da51bdd3cff1 | 179 | void InstigateReading(){ |
Zushauque | 0:da51bdd3cff1 | 180 | wait(5); |
Zushauque | 0:da51bdd3cff1 | 181 | BPbutton=0; wait(1); |
Zushauque | 0:da51bdd3cff1 | 182 | BPbutton=1; wait(2); |
Zushauque | 0:da51bdd3cff1 | 183 | wait(70); |
Zushauque | 0:da51bdd3cff1 | 184 | BPbutton=0;wait(1); |
Zushauque | 0:da51bdd3cff1 | 185 | BPbutton=1; |
Zushauque | 0:da51bdd3cff1 | 186 | } |
Zushauque | 0:da51bdd3cff1 | 187 | |
Zushauque | 0:da51bdd3cff1 | 188 | void UpdateBP(){ |
Zushauque | 0:da51bdd3cff1 | 189 | |
Zushauque | 0:da51bdd3cff1 | 190 | ToggleBP(1); |
Zushauque | 0:da51bdd3cff1 | 191 | uBP.baud(9600); |
Zushauque | 0:da51bdd3cff1 | 192 | SYS=0; DIA=0; |
Zushauque | 0:da51bdd3cff1 | 193 | for(int i=0;i<3;i++){//Beep 3 times to warn the patient that the device will start taking measurement |
Zushauque | 0:da51bdd3cff1 | 194 | Buzzer=1;LED=1;wait(0.5); |
Zushauque | 0:da51bdd3cff1 | 195 | Buzzer=0;LED=0;wait(0.5); |
Zushauque | 0:da51bdd3cff1 | 196 | } |
Zushauque | 0:da51bdd3cff1 | 197 | LED=1; |
Zushauque | 0:da51bdd3cff1 | 198 | InstigateReading(); |
Zushauque | 0:da51bdd3cff1 | 199 | while(1){ |
Zushauque | 0:da51bdd3cff1 | 200 | if(uBP.readable()){ |
Zushauque | 0:da51bdd3cff1 | 201 | for(int i=0; i<15; i++) |
Zushauque | 0:da51bdd3cff1 | 202 | BP[i]=uBP.getc(); //Acquire 15 bytes |
Zushauque | 0:da51bdd3cff1 | 203 | } |
Zushauque | 0:da51bdd3cff1 | 204 | if(BP[14]==0x0A){ //Transmission is okay |
Zushauque | 0:da51bdd3cff1 | 205 | // Hundreds Tens Units |
Zushauque | 0:da51bdd3cff1 | 206 | SYS=((BP[1]-0x30)*100)+ ((BP[2]-0x030)*10) + ((BP[3]-0x30)*1); |
Zushauque | 0:da51bdd3cff1 | 207 | DIA=((BP[6]-0x30)*100)+ ((BP[7]-0x030)*10) + ((BP[8]-0x30)*1); |
Zushauque | 0:da51bdd3cff1 | 208 | pc.printf("BP Before History: %d %d\n\r",SYS,DIA); |
Zushauque | 0:da51bdd3cff1 | 209 | hSYS=SYS; hDIA=DIA; //Recording values, for history. |
Zushauque | 0:da51bdd3cff1 | 210 | pc.printf("BP After History: %d %d\n\r",SYS,DIA); |
Zushauque | 0:da51bdd3cff1 | 211 | break; |
Zushauque | 0:da51bdd3cff1 | 212 | } |
Zushauque | 0:da51bdd3cff1 | 213 | } |
Zushauque | 0:da51bdd3cff1 | 214 | //If values are unchanged, use the last stored in history |
Zushauque | 0:da51bdd3cff1 | 215 | if(SYS==0 && DIA==0){ |
Zushauque | 0:da51bdd3cff1 | 216 | SYS=hSYS; DIA=hDIA; |
Zushauque | 0:da51bdd3cff1 | 217 | } |
Zushauque | 0:da51bdd3cff1 | 218 | LED=0; |
Zushauque | 0:da51bdd3cff1 | 219 | ToggleBP(0); |
Zushauque | 0:da51bdd3cff1 | 220 | } |
Zushauque | 0:da51bdd3cff1 | 221 | |
Zushauque | 0:da51bdd3cff1 | 222 | void QEWS(){ |
Zushauque | 0:da51bdd3cff1 | 223 | //Calculating Oxygen Saturation Score |
Zushauque | 0:da51bdd3cff1 | 224 | (SYS >= 110 && SYS <= 179) ? BPScore=0: BPScore=BPScore; |
Zushauque | 0:da51bdd3cff1 | 225 | ((SYS >= 90 && SYS <=109)||(SYS >= 180 && SYS <= 199)) ? BPScore=1: BPScore=BPScore; |
Zushauque | 0:da51bdd3cff1 | 226 | ((SYS >= 71 && SYS <=89)||SYS >= 200) ? BPScore=2: BPScore=BPScore; |
Zushauque | 0:da51bdd3cff1 | 227 | (SYS < 70) ? BPScore=3: BPScore=BPScore; |
Zushauque | 0:da51bdd3cff1 | 228 | //Calculating Oxygen Saturation Score |
Zushauque | 0:da51bdd3cff1 | 229 | (SpO2>=95) ? SPScore=0: SPScore=SPScore; |
Zushauque | 0:da51bdd3cff1 | 230 | (SpO2>=93 && SpO2<=95) ? SPScore=1: SPScore=SPScore; |
Zushauque | 0:da51bdd3cff1 | 231 | (SpO2>=90 && SpO2<=92) ? SPScore=2: SPScore=SPScore; |
Zushauque | 0:da51bdd3cff1 | 232 | (SpO2<=90) ? SPScore=3: SPScore=SPScore; |
Zushauque | 0:da51bdd3cff1 | 233 | //Calculating Heart Rate Score |
Zushauque | 0:da51bdd3cff1 | 234 | ((HR >= 51) && (HR <= 100)) ? HRScore=0: HRScore=HRScore; |
Zushauque | 0:da51bdd3cff1 | 235 | ((HR >= 41 && HR <=50)||(HR >= 101 && HR <= 110)) ? HRScore=1: HRScore=HRScore; |
Zushauque | 0:da51bdd3cff1 | 236 | ((HR >= 31 && HR <=40)||(HR >= 111 && HR <= 129)) ? HRScore=2: HRScore=HRScore; |
Zushauque | 0:da51bdd3cff1 | 237 | ((HR < 31 )|| (HR > 129)) ? HRScore=3: HRScore=HRScore; |
Zushauque | 0:da51bdd3cff1 | 238 | QEWS_Score=HRScore+SPScore+BPScore; |
Zushauque | 0:da51bdd3cff1 | 239 | } |
Zushauque | 0:da51bdd3cff1 | 240 | |
Zushauque | 0:da51bdd3cff1 | 241 | //GSM Functions |
Zushauque | 0:da51bdd3cff1 | 242 | void FormatData(){ |
Zushauque | 0:da51bdd3cff1 | 243 | /* This message has a total of 60 characters */ |
Zushauque | 0:da51bdd3cff1 | 244 | msglength=sprintf(message,"SYS: %d\n\rDIA: %d\n\rHR: %d\n\rSpO2: %d\n\rLAT: %f\n\rLON: %f\n\rQEWS: %d\n\rTIME: %d:%d",SYS,DIA,HR,SpO2,lat,lon,QEWS_Score,t.hour,t.minute); |
Zushauque | 0:da51bdd3cff1 | 245 | } |
Zushauque | 0:da51bdd3cff1 | 246 | |
Zushauque | 0:da51bdd3cff1 | 247 | void SendMessageGSM(){ |
Zushauque | 0:da51bdd3cff1 | 248 | ToggleGSM(1); |
Zushauque | 0:da51bdd3cff1 | 249 | wait(10); |
Zushauque | 0:da51bdd3cff1 | 250 | uGSM.sendSMS("66426640",message); |
Zushauque | 0:da51bdd3cff1 | 251 | wait(15); |
Zushauque | 0:da51bdd3cff1 | 252 | ToggleGSM(0); |
Zushauque | 0:da51bdd3cff1 | 253 | } |
Zushauque | 0:da51bdd3cff1 | 254 | |
Zushauque | 0:da51bdd3cff1 | 255 | //CONFIGURATION FUNCTIONS |
Zushauque | 0:da51bdd3cff1 | 256 | void initializeRN41(){ |
Zushauque | 0:da51bdd3cff1 | 257 | ToggleRN41(1); //Turn RN41 on. |
Zushauque | 0:da51bdd3cff1 | 258 | uBP_RN41.printf("$$$"); wait(0.5); // Entering Command Mode |
Zushauque | 0:da51bdd3cff1 | 259 | uBP_RN41.printf("SR,001C0500D414\r"); wait(0.5); // Setting MAC Address |
Zushauque | 0:da51bdd3cff1 | 260 | uBP_RN41.printf("SP,681010\r"); wait(0.5); //Setting Pass-key |
Zushauque | 0:da51bdd3cff1 | 261 | uBP_RN41.printf("SU,96\r"); wait(0.5); //Setting Baudrate to 9600 |
Zushauque | 0:da51bdd3cff1 | 262 | uBP_RN41.printf("SM,6\r"); wait(0.5); //Setting Mode to Pairing Mode (6) |
Zushauque | 0:da51bdd3cff1 | 263 | uBP_RN41.printf("R,1\r"); wait(0.5); //Rebooting |
Zushauque | 0:da51bdd3cff1 | 264 | } |
Zushauque | 0:da51bdd3cff1 | 265 | |
Zushauque | 0:da51bdd3cff1 | 266 | bool CheckTime(){ |
Zushauque | 0:da51bdd3cff1 | 267 | UpdateGPS(); |
Zushauque | 0:da51bdd3cff1 | 268 | if(t.hour==0 && t.minute==0) |
Zushauque | 0:da51bdd3cff1 | 269 | return 1; |
Zushauque | 0:da51bdd3cff1 | 270 | if(t.hour==2 && t.minute==0) |
Zushauque | 0:da51bdd3cff1 | 271 | return 1; |
Zushauque | 0:da51bdd3cff1 | 272 | if(t.hour==4 && t.minute==0) |
Zushauque | 0:da51bdd3cff1 | 273 | return 1; |
Zushauque | 0:da51bdd3cff1 | 274 | if(t.hour==6 && t.minute==0) |
Zushauque | 0:da51bdd3cff1 | 275 | return 1; |
Zushauque | 0:da51bdd3cff1 | 276 | if(t.hour==7 && t.minute==4) |
Zushauque | 0:da51bdd3cff1 | 277 | return 1; |
Zushauque | 0:da51bdd3cff1 | 278 | if(t.hour==8 && t.minute==8) |
Zushauque | 0:da51bdd3cff1 | 279 | return 1; |
Zushauque | 0:da51bdd3cff1 | 280 | if(t.hour==9 && t.minute==12) |
Zushauque | 0:da51bdd3cff1 | 281 | return 1; |
Zushauque | 0:da51bdd3cff1 | 282 | if(t.hour==10 && t.minute==16) |
Zushauque | 0:da51bdd3cff1 | 283 | return 1; |
Zushauque | 0:da51bdd3cff1 | 284 | if(t.hour==11 && t.minute==20) |
Zushauque | 0:da51bdd3cff1 | 285 | return 1; |
Zushauque | 0:da51bdd3cff1 | 286 | if(t.hour==12 && t.minute==24) |
Zushauque | 0:da51bdd3cff1 | 287 | return 1; |
Zushauque | 0:da51bdd3cff1 | 288 | if(t.hour==13 && t.minute==28) |
Zushauque | 0:da51bdd3cff1 | 289 | return 1; |
Zushauque | 0:da51bdd3cff1 | 290 | if(t.hour==14 && t.minute==32) |
Zushauque | 0:da51bdd3cff1 | 291 | return 1; |
Zushauque | 0:da51bdd3cff1 | 292 | if(t.hour==15 && t.minute==36) |
Zushauque | 0:da51bdd3cff1 | 293 | return 1; |
Zushauque | 0:da51bdd3cff1 | 294 | if(t.hour==16 && t.minute==40) |
Zushauque | 0:da51bdd3cff1 | 295 | return 1; |
Zushauque | 0:da51bdd3cff1 | 296 | if(t.hour==17 && t.minute==44) |
Zushauque | 0:da51bdd3cff1 | 297 | return 1; |
Zushauque | 0:da51bdd3cff1 | 298 | if(t.hour==18 && t.minute==48) |
Zushauque | 0:da51bdd3cff1 | 299 | return 1; |
Zushauque | 0:da51bdd3cff1 | 300 | if(t.hour==19 && t.minute==52) |
Zushauque | 0:da51bdd3cff1 | 301 | return 1; |
Zushauque | 0:da51bdd3cff1 | 302 | if(t.hour==20 && t.minute==56) |
Zushauque | 0:da51bdd3cff1 | 303 | return 1; |
Zushauque | 0:da51bdd3cff1 | 304 | if(t.hour==22 && t.minute==0) |
Zushauque | 0:da51bdd3cff1 | 305 | return 1; |
Zushauque | 0:da51bdd3cff1 | 306 | else |
Zushauque | 0:da51bdd3cff1 | 307 | return 0; |
Zushauque | 0:da51bdd3cff1 | 308 | } |