vr1.1

Dependencies:   FreescaleIAP mbed-rtos mbed

Fork of CDMS_RTOS_v1_1 by Team Fox

Committer:
cholletisaik777
Date:
Mon Jul 06 10:31:29 2015 +0000
Revision:
12:cb3ee1ac3638
Parent:
9:7ff6d75cc09e
Child:
13:ba5dca9e18d8
integrated code

Who changed what in which revision?

UserRevisionLine numberNew contents of line
cholletisaik777 0:d6e3d1e21484 1 #include "mbed.h"
cholletisaik777 8:607ae92fa6af 2 #include "PL.h"
cholletisaik777 8:607ae92fa6af 3 #include "all_funcs.h"
pradeepvk2208 9:7ff6d75cc09e 4 #include "Flags.h"
cholletisaik777 0:d6e3d1e21484 5
cholletisaik777 12:cb3ee1ac3638 6 SPISlave pl_spi(PTE18, PTE19, PTE17, PTE16 ); // mosi, miso, sclk, ssel --> using SPI1
cholletisaik777 12:cb3ee1ac3638 7
cholletisaik777 0:d6e3d1e21484 8 Serial sr(USBTX,USBRX);
cholletisaik777 0:d6e3d1e21484 9
cholletisaik777 7:c270a9e37290 10 void FCTN_PL_RCV_SC_DATA()
cholletisaik777 0:d6e3d1e21484 11 {
pradeepvk2208 9:7ff6d75cc09e 12 sr.printf("in FCTN_PL_RCV_SC_DATA\r\n");
pradeepvk2208 9:7ff6d75cc09e 13 uint8_t scienceRawPacket[payloadBins];
pradeepvk2208 9:7ff6d75cc09e 14 for(int i=0; i<payloadBins; i++)
pradeepvk2208 9:7ff6d75cc09e 15 {
pradeepvk2208 9:7ff6d75cc09e 16 while(!pl_spi.receive()); // blocking statement --> waiting for data from Payload
pradeepvk2208 9:7ff6d75cc09e 17 uint8_t v = pl_spi.read(); // Read byte from master
pradeepvk2208 9:7ff6d75cc09e 18 scienceRawPacket[i] = v;
pradeepvk2208 9:7ff6d75cc09e 19 }
pradeepvk2208 9:7ff6d75cc09e 20 // serial feedback
pradeepvk2208 9:7ff6d75cc09e 21 sr.printf("Packet recieved\r\r\n");
pradeepvk2208 9:7ff6d75cc09e 22 for(int i=0; i<payloadBins; i++)
pradeepvk2208 9:7ff6d75cc09e 23 {
pradeepvk2208 9:7ff6d75cc09e 24 sr.printf("%0x\t",scienceRawPacket[i]);
pradeepvk2208 9:7ff6d75cc09e 25 scienceRawPacket[i] = 0;
pradeepvk2208 9:7ff6d75cc09e 26 }
pradeepvk2208 9:7ff6d75cc09e 27 sr.printf("\r\r\n");
pradeepvk2208 9:7ff6d75cc09e 28 }
pradeepvk2208 9:7ff6d75cc09e 29
cholletisaik777 12:cb3ee1ac3638 30 void FCTN_PL_SCIENCE()
cholletisaik777 12:cb3ee1ac3638 31 {
cholletisaik777 12:cb3ee1ac3638 32 all_flags|=PL_SCIENCE_STATUS;
cholletisaik777 12:cb3ee1ac3638 33 FCTN_PL_RCV_SC_DATA();
cholletisaik777 12:cb3ee1ac3638 34 if(all_flags&IS_FIRST_TIME_SC_DATA == 0) //What happens to TIME_ELAPSED_LAST_SRP on reset? Should it be stored in Flash?
cholletisaik777 12:cb3ee1ac3638 35 {
cholletisaik777 12:cb3ee1ac3638 36 TIME_ELAPSED_LAST_SRP=SRP_INTER_VAL_COUNTER;
cholletisaik777 12:cb3ee1ac3638 37 SRP_INTER_VAL_COUNTER.reset();
cholletisaik777 12:cb3ee1ac3638 38 }
cholletisaik777 12:cb3ee1ac3638 39 else
cholletisaik777 12:cb3ee1ac3638 40 {
cholletisaik777 12:cb3ee1ac3638 41 SRP_INTER_VAL_COUNTER.start();
cholletisaik777 12:cb3ee1ac3638 42 all_flags&=(~IS_FIRST_TIME_SC_DATA);
cholletisaik777 12:cb3ee1ac3638 43 }
cholletisaik777 12:cb3ee1ac3638 44 if(all_flags&IS_PL_FRAME_SIZE_CORRECT == 1) //How to identify FRAME_SIZE or size of data that is received via SPI?
cholletisaik777 12:cb3ee1ac3638 45 {
cholletisaik777 12:cb3ee1ac3638 46 //FCTN_COM_COMP_SC_DATA(scienceRawPacket);
cholletisaik777 12:cb3ee1ac3638 47 //FCTN_WR_SD(const uint8_t *, uint64_t) //Store SD
cholletisaik777 12:cb3ee1ac3638 48 //FCTN_CDMS_WR_FLASH(); //
cholletisaik777 12:cb3ee1ac3638 49 all_flags|=PL_FRAME_SIZE_CORRECT;
cholletisaik777 12:cb3ee1ac3638 50 }
cholletisaik777 12:cb3ee1ac3638 51 if(all_flags&IS_PL_FRAME_SIZE_CORRECT == 0)
cholletisaik777 12:cb3ee1ac3638 52 {
cholletisaik777 12:cb3ee1ac3638 53 //FCTN_WR_SD(const uint8_t *, uint64_t)
cholletisaik777 12:cb3ee1ac3638 54 //FCTN_CDMS_WR_FLASH();
cholletisaik777 12:cb3ee1ac3638 55 PL_SCIENCE_FLAG &=~(PL_FRAME_SIZE_CORRECT);
cholletisaik777 12:cb3ee1ac3638 56 }
cholletisaik777 12:cb3ee1ac3638 57 if(TIME_ELAPSED_LAST_SRP>4)
cholletisaik777 12:cb3ee1ac3638 58 {
cholletisaik777 12:cb3ee1ac3638 59 //FCTN_CDMS_WR_FLASH();
cholletisaik777 12:cb3ee1ac3638 60 all_flags|= TIME_ELAPSED_LAST_SRP_INTERVAL_HIGH;
cholletisaik777 12:cb3ee1ac3638 61 }
cholletisaik777 12:cb3ee1ac3638 62 if(TIME_ELAPSED_LAST_SRP<2)
cholletisaik777 12:cb3ee1ac3638 63 {
cholletisaik777 12:cb3ee1ac3638 64 //FCTN_CDMS_WR_FLASH();
cholletisaik777 12:cb3ee1ac3638 65 all_flags|= TIME_ELAPSED_LAST_SRP_INTERVAL_LOW;
cholletisaik777 12:cb3ee1ac3638 66 }
cholletisaik777 12:cb3ee1ac3638 67 all_flags&=~(PL_SCIENCE_STATUS);
cholletisaik777 12:cb3ee1ac3638 68 }
cholletisaik777 12:cb3ee1ac3638 69
pradeepvk2208 9:7ff6d75cc09e 70 void FCTN_PL_MAIN()
pradeepvk2208 9:7ff6d75cc09e 71 {
cholletisaik777 12:cb3ee1ac3638 72 all_flags|=PL_MAIN_STATUS;
cholletisaik777 12:cb3ee1ac3638 73 all_flags&=~(PL_LOW_POWER);
cholletisaik777 12:cb3ee1ac3638 74 all_flags = all_flags|((all_flags&PL_STATE)<<2); //pl_prev_state = pl_state;
cholletisaik777 12:cb3ee1ac3638 75 if(all_flags&IS_PL_SCHEDULE == 1) //is pl_schedule == 1
pradeepvk2208 9:7ff6d75cc09e 76 {
cholletisaik777 12:cb3ee1ac3638 77 (all_flags&PL_STATE) = pl_schedule_TC;
pradeepvk2208 9:7ff6d75cc09e 78 }
pradeepvk2208 9:7ff6d75cc09e 79 else
pradeepvk2208 9:7ff6d75cc09e 80 {
cholletisaik777 12:cb3ee1ac3638 81 if((all_flags&PL_PREV_STATE) == PL_SCIENCE)
pradeepvk2208 9:7ff6d75cc09e 82 {
pradeepvk2208 9:7ff6d75cc09e 83 pl_state= PL_HIBERNATE;
pradeepvk2208 9:7ff6d75cc09e 84 }
cholletisaik777 12:cb3ee1ac3638 85 else
pradeepvk2208 9:7ff6d75cc09e 86 {
cholletisaik777 12:cb3ee1ac3638 87 all_flags = (all_flags&(~PL_STATE))|((all_flags&PL_PREV_STATE)>>2); //pl_state = pl_prev_state;
pradeepvk2208 9:7ff6d75cc09e 88 }
pradeepvk2208 9:7ff6d75cc09e 89 }
cholletisaik777 12:cb3ee1ac3638 90 switch(all_flags&PL_STATE)
pradeepvk2208 9:7ff6d75cc09e 91 {
pradeepvk2208 9:7ff6d75cc09e 92 case PL_OFF:
cholletisaik777 0:d6e3d1e21484 93 {
cholletisaik777 12:cb3ee1ac3638 94 if(all_flags&PL_PREV_STATE!=PL_OFF)
pradeepvk2208 9:7ff6d75cc09e 95 {
pradeepvk2208 9:7ff6d75cc09e 96 sr.printf("Command SPEED DL to go to Standby State (I2C) \r\n");
pradeepvk2208 9:7ff6d75cc09e 97 }
pradeepvk2208 9:7ff6d75cc09e 98 sr.printf("Power off SPEED\r\n");
cholletisaik777 12:cb3ee1ac3638 99 all_flags = (all_flags&(~PL_STATUS))|PL_OFF;
pradeepvk2208 9:7ff6d75cc09e 100 sr.printf("Disable SRP_INTERVAL_COUNTER\r\n");
cholletisaik777 12:cb3ee1ac3638 101 all_flags = all_flags&(~PL_MAIN_STATUS);
pradeepvk2208 9:7ff6d75cc09e 102 }
pradeepvk2208 9:7ff6d75cc09e 103 case PL_STANDBY:
pradeepvk2208 9:7ff6d75cc09e 104 {
pradeepvk2208 9:7ff6d75cc09e 105 if(power_level<0)
pradeepvk2208 9:7ff6d75cc09e 106 {
cholletisaik777 12:cb3ee1ac3638 107 all_flags = all_flags|PL_LOW_POWER;
cholletisaik777 12:cb3ee1ac3638 108 if(all_flags&PL_PREV_STATE!=PL_OFF)
pradeepvk2208 9:7ff6d75cc09e 109 {
pradeepvk2208 9:7ff6d75cc09e 110 sr.printf("Command SPEED DL to go to Standby State (I2C) \r\n");
pradeepvk2208 9:7ff6d75cc09e 111 }
pradeepvk2208 9:7ff6d75cc09e 112 sr.printf("Power off SPEED\r\n");
cholletisaik777 12:cb3ee1ac3638 113 all_flags = (all_flags&(~PL_STATUS))|PL_OFF;
pradeepvk2208 9:7ff6d75cc09e 114 sr.printf("Disable SRP_INTERVAL_COUNTER\r\n");
cholletisaik777 12:cb3ee1ac3638 115 all_flags = all_flags&(~PL_MAIN_STATUS);
pradeepvk2208 9:7ff6d75cc09e 116 }
pradeepvk2208 9:7ff6d75cc09e 117 else
pradeepvk2208 9:7ff6d75cc09e 118 {
pradeepvk2208 9:7ff6d75cc09e 119 if(pl_prev_state!=PL_OFF)
pradeepvk2208 9:7ff6d75cc09e 120 {
pradeepvk2208 9:7ff6d75cc09e 121 sr.printf("Command SPEED DL to go to Standby State (I2C) \r\n");
pradeepvk2208 9:7ff6d75cc09e 122 sr.printf("Power OFF SPEED PMTs\r\n");
pradeepvk2208 9:7ff6d75cc09e 123 if(I2C_acknowledgement==1)
pradeepvk2208 9:7ff6d75cc09e 124 {
pradeepvk2208 9:7ff6d75cc09e 125 pl_status=PL_STANDBY;
pradeepvk2208 9:7ff6d75cc09e 126 }
pradeepvk2208 9:7ff6d75cc09e 127 else
pradeepvk2208 9:7ff6d75cc09e 128 {
pradeepvk2208 9:7ff6d75cc09e 129 pl_status=PL_ERR_I2C;
pradeepvk2208 9:7ff6d75cc09e 130 }
pradeepvk2208 9:7ff6d75cc09e 131 sr.printf("Disable SRP_INTERVAL_COUNTER\r\n");
pradeepvk2208 9:7ff6d75cc09e 132 pl_main_flags&=~(PL_MAIN_STATUS);
pradeepvk2208 9:7ff6d75cc09e 133 }
pradeepvk2208 9:7ff6d75cc09e 134 else
pradeepvk2208 9:7ff6d75cc09e 135 {
pradeepvk2208 9:7ff6d75cc09e 136 sr.printf("Power on SPPED DL\r\n");
pradeepvk2208 9:7ff6d75cc09e 137 sr.printf("Command SPEED DL to go to Standby State (I2C) \r\n");
pradeepvk2208 9:7ff6d75cc09e 138 if(I2C_acknowledgement==1)
pradeepvk2208 9:7ff6d75cc09e 139 {
pradeepvk2208 9:7ff6d75cc09e 140 pl_status=PL_STANDBY;
pradeepvk2208 9:7ff6d75cc09e 141 }
pradeepvk2208 9:7ff6d75cc09e 142 else
pradeepvk2208 9:7ff6d75cc09e 143 {
pradeepvk2208 9:7ff6d75cc09e 144 pl_status=PL_ERR_I2C;
pradeepvk2208 9:7ff6d75cc09e 145 }
pradeepvk2208 9:7ff6d75cc09e 146 sr.printf("Disable SRP_INTERVAL_COUNTER\r\n");
pradeepvk2208 9:7ff6d75cc09e 147 pl_main_flags&=~(PL_MAIN_STATUS);
pradeepvk2208 9:7ff6d75cc09e 148 }
pradeepvk2208 9:7ff6d75cc09e 149 }
cholletisaik777 0:d6e3d1e21484 150 }
pradeepvk2208 9:7ff6d75cc09e 151 case PL_HIBERNATE:
pradeepvk2208 9:7ff6d75cc09e 152 {
pradeepvk2208 9:7ff6d75cc09e 153 if(power_level<1)
pradeepvk2208 9:7ff6d75cc09e 154 {
pradeepvk2208 9:7ff6d75cc09e 155 pl_main_flags|=PL_LOW_POWER;
pradeepvk2208 9:7ff6d75cc09e 156 if(power_level<0)
pradeepvk2208 9:7ff6d75cc09e 157 {
pradeepvk2208 9:7ff6d75cc09e 158 pl_main_flags|=PL_LOW_POWER;
pradeepvk2208 9:7ff6d75cc09e 159 if(pl_prev_state!=PL_OFF)
pradeepvk2208 9:7ff6d75cc09e 160 {
pradeepvk2208 9:7ff6d75cc09e 161 sr.printf("Command SPEED DL to go to Standby State (I2C) \r\n");
pradeepvk2208 9:7ff6d75cc09e 162 }
pradeepvk2208 9:7ff6d75cc09e 163 sr.printf("Power off SPEED\r\n");
pradeepvk2208 9:7ff6d75cc09e 164 pl_status=PL_OFF;
pradeepvk2208 9:7ff6d75cc09e 165 sr.printf("Disable SRP_INTERVAL_COUNTER\r\n");
pradeepvk2208 9:7ff6d75cc09e 166 pl_main_flags&=~(PL_MAIN_STATUS);
pradeepvk2208 9:7ff6d75cc09e 167 }
pradeepvk2208 9:7ff6d75cc09e 168 else
pradeepvk2208 9:7ff6d75cc09e 169 {
pradeepvk2208 9:7ff6d75cc09e 170 if(pl_prev_state!=PL_OFF)
pradeepvk2208 9:7ff6d75cc09e 171 {
pradeepvk2208 9:7ff6d75cc09e 172 sr.printf("Command SPEED DL to go to Standby State (I2C) \r\n");
pradeepvk2208 9:7ff6d75cc09e 173 sr.printf("Power OFF SPEED PMTs\r\n");
pradeepvk2208 9:7ff6d75cc09e 174 if(I2C_acknowledgement==1)
pradeepvk2208 9:7ff6d75cc09e 175 {
pradeepvk2208 9:7ff6d75cc09e 176 pl_status=PL_STANDBY;
pradeepvk2208 9:7ff6d75cc09e 177 }
pradeepvk2208 9:7ff6d75cc09e 178 else
pradeepvk2208 9:7ff6d75cc09e 179 {
pradeepvk2208 9:7ff6d75cc09e 180 pl_status=PL_ERR_I2C;
pradeepvk2208 9:7ff6d75cc09e 181 }
pradeepvk2208 9:7ff6d75cc09e 182 sr.printf("Disable SRP_INTERVAL_COUNTER\r\n");
pradeepvk2208 9:7ff6d75cc09e 183 pl_main_flags&=~(PL_MAIN_STATUS);
pradeepvk2208 9:7ff6d75cc09e 184 }
pradeepvk2208 9:7ff6d75cc09e 185 else
pradeepvk2208 9:7ff6d75cc09e 186 {
pradeepvk2208 9:7ff6d75cc09e 187 sr.printf("Power on SPPED DL\r\n");
pradeepvk2208 9:7ff6d75cc09e 188 sr.printf("Command SPEED DL to go to Standby State (I2C) \r\n");
pradeepvk2208 9:7ff6d75cc09e 189 if(I2C_acknowledgement==1) {
pradeepvk2208 9:7ff6d75cc09e 190 pl_status=PL_STANDBY;
pradeepvk2208 9:7ff6d75cc09e 191 }
pradeepvk2208 9:7ff6d75cc09e 192 else
pradeepvk2208 9:7ff6d75cc09e 193 {
pradeepvk2208 9:7ff6d75cc09e 194 pl_status=PL_ERR_I2C;
pradeepvk2208 9:7ff6d75cc09e 195 }
pradeepvk2208 9:7ff6d75cc09e 196 sr.printf("Disable SRP_INTERVAL_COUNTER\r\n");
pradeepvk2208 9:7ff6d75cc09e 197 pl_main_flags&=~(PL_MAIN_STATUS);
pradeepvk2208 9:7ff6d75cc09e 198 }
pradeepvk2208 9:7ff6d75cc09e 199 }
pradeepvk2208 9:7ff6d75cc09e 200 }
pradeepvk2208 9:7ff6d75cc09e 201 if(power_level>1)
pradeepvk2208 9:7ff6d75cc09e 202 {
pradeepvk2208 9:7ff6d75cc09e 203 if(pl_prev_state==PL_OFF)
pradeepvk2208 9:7ff6d75cc09e 204 {
pradeepvk2208 9:7ff6d75cc09e 205 sr.printf("Power on SPEED DL\r\n");
pradeepvk2208 9:7ff6d75cc09e 206 }
pradeepvk2208 9:7ff6d75cc09e 207 sr.printf("Power on Speed PMT with reduced Voltage\r\n");
pradeepvk2208 9:7ff6d75cc09e 208 sr.printf("Command SPEED DL to go to Standby State (I2C) \r\n");
pradeepvk2208 9:7ff6d75cc09e 209 if(I2C_acknowledgement==1)
pradeepvk2208 9:7ff6d75cc09e 210 {
pradeepvk2208 9:7ff6d75cc09e 211 pl_status=PL_HIBERNATE;
pradeepvk2208 9:7ff6d75cc09e 212 }
pradeepvk2208 9:7ff6d75cc09e 213 else
pradeepvk2208 9:7ff6d75cc09e 214 {
pradeepvk2208 9:7ff6d75cc09e 215 pl_status=PL_ERR_I2C;
pradeepvk2208 9:7ff6d75cc09e 216 }
pradeepvk2208 9:7ff6d75cc09e 217 sr.printf("Disable SRP_INTERVAL_COUNTER\r\n");
pradeepvk2208 9:7ff6d75cc09e 218 pl_main_flags&=~(PL_MAIN_STATUS);
pradeepvk2208 9:7ff6d75cc09e 219 }
pradeepvk2208 9:7ff6d75cc09e 220 }
pradeepvk2208 9:7ff6d75cc09e 221
pradeepvk2208 9:7ff6d75cc09e 222 case PL_SCIENCE:
cholletisaik777 0:d6e3d1e21484 223 {
pradeepvk2208 9:7ff6d75cc09e 224
pradeepvk2208 9:7ff6d75cc09e 225 if(power_level<2)
pradeepvk2208 9:7ff6d75cc09e 226 {
pradeepvk2208 9:7ff6d75cc09e 227 if(power_level<1)
pradeepvk2208 9:7ff6d75cc09e 228 {
pradeepvk2208 9:7ff6d75cc09e 229 pl_main_flags|=PL_LOW_POWER;
pradeepvk2208 9:7ff6d75cc09e 230 if(power_level<0)
pradeepvk2208 9:7ff6d75cc09e 231 {
pradeepvk2208 9:7ff6d75cc09e 232 pl_main_flags|=PL_LOW_POWER;
pradeepvk2208 9:7ff6d75cc09e 233 if(pl_prev_state!=PL_OFF)
pradeepvk2208 9:7ff6d75cc09e 234 {
pradeepvk2208 9:7ff6d75cc09e 235 sr.printf("Command SPEED DL to go to Standby State (I2C) \r\n");
pradeepvk2208 9:7ff6d75cc09e 236 }
pradeepvk2208 9:7ff6d75cc09e 237 sr.printf("Power off SPEED\r\n");
pradeepvk2208 9:7ff6d75cc09e 238 pl_status=PL_OFF;
pradeepvk2208 9:7ff6d75cc09e 239 sr.printf("Disable SRP_INTERVAL_COUNTER\r\n");
pradeepvk2208 9:7ff6d75cc09e 240 pl_main_flags&=~(PL_MAIN_STATUS);
pradeepvk2208 9:7ff6d75cc09e 241 }
pradeepvk2208 9:7ff6d75cc09e 242 else
pradeepvk2208 9:7ff6d75cc09e 243 {
pradeepvk2208 9:7ff6d75cc09e 244 if(pl_prev_state!=PL_OFF)
pradeepvk2208 9:7ff6d75cc09e 245 {
pradeepvk2208 9:7ff6d75cc09e 246 sr.printf("Command SPEED DL to go to Standby State (I2C) \r\n");
pradeepvk2208 9:7ff6d75cc09e 247 sr.printf("Power OFF SPEED PMTs\r\n");
pradeepvk2208 9:7ff6d75cc09e 248 if(I2C_acknowledgement==1)
pradeepvk2208 9:7ff6d75cc09e 249 {
pradeepvk2208 9:7ff6d75cc09e 250 pl_status=PL_STANDBY;
pradeepvk2208 9:7ff6d75cc09e 251 }
pradeepvk2208 9:7ff6d75cc09e 252 else
pradeepvk2208 9:7ff6d75cc09e 253 {
pradeepvk2208 9:7ff6d75cc09e 254 pl_status=PL_ERR_I2C;
pradeepvk2208 9:7ff6d75cc09e 255 }
pradeepvk2208 9:7ff6d75cc09e 256 sr.printf("Disable SRP_INTERVAL_COUNTER\r\n");
pradeepvk2208 9:7ff6d75cc09e 257 pl_main_flags&=~(PL_MAIN_STATUS);
pradeepvk2208 9:7ff6d75cc09e 258 }
pradeepvk2208 9:7ff6d75cc09e 259 else
pradeepvk2208 9:7ff6d75cc09e 260 {
pradeepvk2208 9:7ff6d75cc09e 261 sr.printf("Power on SPPED DL\r\n");
pradeepvk2208 9:7ff6d75cc09e 262 sr.printf("Command SPEED DL to go to Standby State (I2C) \r\n");
pradeepvk2208 9:7ff6d75cc09e 263 if(I2C_acknowledgement==1)
pradeepvk2208 9:7ff6d75cc09e 264 {
pradeepvk2208 9:7ff6d75cc09e 265 pl_status=PL_STANDBY;
pradeepvk2208 9:7ff6d75cc09e 266 }
pradeepvk2208 9:7ff6d75cc09e 267 else
pradeepvk2208 9:7ff6d75cc09e 268 {
pradeepvk2208 9:7ff6d75cc09e 269 pl_status=PL_ERR_I2C;
pradeepvk2208 9:7ff6d75cc09e 270 }
pradeepvk2208 9:7ff6d75cc09e 271 sr.printf("Disable SRP_INTERVAL_COUNTER\r\n");
pradeepvk2208 9:7ff6d75cc09e 272 pl_main_flags&=~(PL_MAIN_STATUS);
pradeepvk2208 9:7ff6d75cc09e 273 }
pradeepvk2208 9:7ff6d75cc09e 274 }
pradeepvk2208 9:7ff6d75cc09e 275 }
pradeepvk2208 9:7ff6d75cc09e 276 if(power_level>1)
pradeepvk2208 9:7ff6d75cc09e 277 {
pradeepvk2208 9:7ff6d75cc09e 278 if(pl_prev_state==PL_OFF)
pradeepvk2208 9:7ff6d75cc09e 279 {
pradeepvk2208 9:7ff6d75cc09e 280 sr.printf("Power on SPEED DL\r\n");
pradeepvk2208 9:7ff6d75cc09e 281 }
pradeepvk2208 9:7ff6d75cc09e 282 sr.printf("Power on Speed PMT with reduced Voltage\r\n");
pradeepvk2208 9:7ff6d75cc09e 283 sr.printf("Command SPEED DL to go to Standby State (I2C) \r\n");
pradeepvk2208 9:7ff6d75cc09e 284 if(I2C_acknowledgement==1)
pradeepvk2208 9:7ff6d75cc09e 285 {
pradeepvk2208 9:7ff6d75cc09e 286 pl_status=PL_HIBERNATE;
pradeepvk2208 9:7ff6d75cc09e 287 }
pradeepvk2208 9:7ff6d75cc09e 288 else
pradeepvk2208 9:7ff6d75cc09e 289 {
pradeepvk2208 9:7ff6d75cc09e 290 pl_status=PL_ERR_I2C;
pradeepvk2208 9:7ff6d75cc09e 291 }
pradeepvk2208 9:7ff6d75cc09e 292 sr.printf("Disable SRP_INTERVAL_COUNTER\r\n");
pradeepvk2208 9:7ff6d75cc09e 293 pl_main_flags&=~(PL_MAIN_STATUS);
pradeepvk2208 9:7ff6d75cc09e 294 }
pradeepvk2208 9:7ff6d75cc09e 295 }
pradeepvk2208 9:7ff6d75cc09e 296 if(power_level>2)
pradeepvk2208 9:7ff6d75cc09e 297 {
pradeepvk2208 9:7ff6d75cc09e 298 if(pl_prev_state==PL_SCIENCE)
pradeepvk2208 9:7ff6d75cc09e 299 {
pradeepvk2208 9:7ff6d75cc09e 300 pl_status=PL_SCIENCE;
pradeepvk2208 9:7ff6d75cc09e 301 pl_main_flags&=~(PL_MAIN_STATUS);
pradeepvk2208 9:7ff6d75cc09e 302 }
pradeepvk2208 9:7ff6d75cc09e 303 else if(pl_prev_state==PL_HIBERNATE)
pradeepvk2208 9:7ff6d75cc09e 304 {
pradeepvk2208 9:7ff6d75cc09e 305 sr.printf("Power on SPEED PMT with high voltage \r\n");
pradeepvk2208 9:7ff6d75cc09e 306 sr.printf("Command SPEED DL to go to Standby State (I2C) \r\n");
pradeepvk2208 9:7ff6d75cc09e 307 if(I2C_acknowledgement==1)
pradeepvk2208 9:7ff6d75cc09e 308 {
pradeepvk2208 9:7ff6d75cc09e 309 sr.printf("Enable SRP_INTERVAL_COUNTER\r\n");
pradeepvk2208 9:7ff6d75cc09e 310 pl_status=PL_SCIENCE;
pradeepvk2208 9:7ff6d75cc09e 311 pl_main_flags&=~(PL_MAIN_STATUS);
pradeepvk2208 9:7ff6d75cc09e 312 }
pradeepvk2208 9:7ff6d75cc09e 313 else
pradeepvk2208 9:7ff6d75cc09e 314 {
pradeepvk2208 9:7ff6d75cc09e 315 pl_status=PL_ERR_I2C;
pradeepvk2208 9:7ff6d75cc09e 316 sr.printf("Disable SRP_INTERVAL_COUNTER\r\n");
pradeepvk2208 9:7ff6d75cc09e 317 pl_main_flags&=~(PL_MAIN_STATUS);
pradeepvk2208 9:7ff6d75cc09e 318 }
pradeepvk2208 9:7ff6d75cc09e 319 }
pradeepvk2208 9:7ff6d75cc09e 320 else
pradeepvk2208 9:7ff6d75cc09e 321
pradeepvk2208 9:7ff6d75cc09e 322 {
pradeepvk2208 9:7ff6d75cc09e 323 if(pl_prev_state==PL_OFF)
pradeepvk2208 9:7ff6d75cc09e 324 {
pradeepvk2208 9:7ff6d75cc09e 325 sr.printf("Power on SPEED DL\r\n");
pradeepvk2208 9:7ff6d75cc09e 326 }
pradeepvk2208 9:7ff6d75cc09e 327 sr.printf("Power on Speed PMT with reduced Voltage\r\n");
pradeepvk2208 9:7ff6d75cc09e 328 sr.printf("Command SPEED DL to go to Standby State (I2C) \r\n");
pradeepvk2208 9:7ff6d75cc09e 329 if(I2C_acknowledgement==1)
pradeepvk2208 9:7ff6d75cc09e 330 {
pradeepvk2208 9:7ff6d75cc09e 331 pl_status=PL_HIBERNATE;
pradeepvk2208 9:7ff6d75cc09e 332 }
pradeepvk2208 9:7ff6d75cc09e 333 else
pradeepvk2208 9:7ff6d75cc09e 334 {
pradeepvk2208 9:7ff6d75cc09e 335 pl_status=PL_ERR_I2C;
pradeepvk2208 9:7ff6d75cc09e 336 }
pradeepvk2208 9:7ff6d75cc09e 337 sr.printf("Disable SRP_INTERVAL_COUNTER\r\n");
pradeepvk2208 9:7ff6d75cc09e 338 pl_main_flags&=~(PL_MAIN_STATUS);
pradeepvk2208 9:7ff6d75cc09e 339 }
pradeepvk2208 9:7ff6d75cc09e 340 }
pradeepvk2208 9:7ff6d75cc09e 341
pradeepvk2208 9:7ff6d75cc09e 342
cholletisaik777 0:d6e3d1e21484 343 }
pradeepvk2208 9:7ff6d75cc09e 344
pradeepvk2208 9:7ff6d75cc09e 345 }
cholletisaik777 0:d6e3d1e21484 346 }