vr1.1

Dependencies:   FreescaleIAP mbed-rtos mbed

Fork of CDMS_RTOS_v1_1 by Team Fox

Committer:
cholletisaik777
Date:
Mon Jul 06 11:26:57 2015 +0000
Revision:
13:ba5dca9e18d8
Parent:
12:cb3ee1ac3638
Child:
15:2c8629da6ec9
FLAGS DONE FOR SCIENCE

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 13:ba5dca9e18d8 55 all_flags&=~(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 13:ba5dca9e18d8 77 all_flags = (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 {
cholletisaik777 13:ba5dca9e18d8 83 all_flags = (all_flags&(~PL_STATUS))|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 {
cholletisaik777 13:ba5dca9e18d8 119 if(all_flags&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");
cholletisaik777 13:ba5dca9e18d8 123 if(all_flags&IS_I2C_ACK == 1)
pradeepvk2208 9:7ff6d75cc09e 124 {
cholletisaik777 13:ba5dca9e18d8 125 all_flags = (all_flags&(~PL_STATUS))|PL_STANDBY; }
pradeepvk2208 9:7ff6d75cc09e 126 else
pradeepvk2208 9:7ff6d75cc09e 127 {
cholletisaik777 13:ba5dca9e18d8 128 all_flags = (all_flags&(~PL_STATUS))|PL_ERR_I2C;
pradeepvk2208 9:7ff6d75cc09e 129 }
pradeepvk2208 9:7ff6d75cc09e 130 sr.printf("Disable SRP_INTERVAL_COUNTER\r\n");
cholletisaik777 13:ba5dca9e18d8 131 all_flags = all_flags&(~PL_MAIN_STATUS);
pradeepvk2208 9:7ff6d75cc09e 132 }
pradeepvk2208 9:7ff6d75cc09e 133 else
pradeepvk2208 9:7ff6d75cc09e 134 {
pradeepvk2208 9:7ff6d75cc09e 135 sr.printf("Power on SPPED DL\r\n");
pradeepvk2208 9:7ff6d75cc09e 136 sr.printf("Command SPEED DL to go to Standby State (I2C) \r\n");
cholletisaik777 13:ba5dca9e18d8 137 if(all_flags&IS_I2C_ACK == 1)
pradeepvk2208 9:7ff6d75cc09e 138 {
cholletisaik777 13:ba5dca9e18d8 139 all_flags = (all_flags&(~PL_STATUS))|PL_STANDBY;
pradeepvk2208 9:7ff6d75cc09e 140 }
pradeepvk2208 9:7ff6d75cc09e 141 else
pradeepvk2208 9:7ff6d75cc09e 142 {
cholletisaik777 13:ba5dca9e18d8 143 all_flags = (all_flags&(~PL_STATUS))|PL_ERR_I2C;
pradeepvk2208 9:7ff6d75cc09e 144 }
pradeepvk2208 9:7ff6d75cc09e 145 sr.printf("Disable SRP_INTERVAL_COUNTER\r\n");
cholletisaik777 13:ba5dca9e18d8 146 all_flags = all_flags&(~PL_MAIN_STATUS);
pradeepvk2208 9:7ff6d75cc09e 147 }
pradeepvk2208 9:7ff6d75cc09e 148 }
cholletisaik777 0:d6e3d1e21484 149 }
pradeepvk2208 9:7ff6d75cc09e 150 case PL_HIBERNATE:
pradeepvk2208 9:7ff6d75cc09e 151 {
pradeepvk2208 9:7ff6d75cc09e 152 if(power_level<1)
pradeepvk2208 9:7ff6d75cc09e 153 {
cholletisaik777 13:ba5dca9e18d8 154 all_flags = all_flags|PL_LOW_POWER;
pradeepvk2208 9:7ff6d75cc09e 155 if(power_level<0)
pradeepvk2208 9:7ff6d75cc09e 156 {
cholletisaik777 13:ba5dca9e18d8 157 if(all_flags&PL_PREV_STATE!=PL_OFF)
pradeepvk2208 9:7ff6d75cc09e 158 {
pradeepvk2208 9:7ff6d75cc09e 159 sr.printf("Command SPEED DL to go to Standby State (I2C) \r\n");
pradeepvk2208 9:7ff6d75cc09e 160 }
pradeepvk2208 9:7ff6d75cc09e 161 sr.printf("Power off SPEED\r\n");
cholletisaik777 13:ba5dca9e18d8 162 all_flags = (all_flags&(~PL_STATUS))|PL_OFF;
pradeepvk2208 9:7ff6d75cc09e 163 sr.printf("Disable SRP_INTERVAL_COUNTER\r\n");
cholletisaik777 13:ba5dca9e18d8 164 all_flags = all_flags&(~PL_MAIN_STATUS);
pradeepvk2208 9:7ff6d75cc09e 165 }
pradeepvk2208 9:7ff6d75cc09e 166 else
pradeepvk2208 9:7ff6d75cc09e 167 {
cholletisaik777 13:ba5dca9e18d8 168 if(all_flags&PL_PREV_STATE!=PL_OFF)
pradeepvk2208 9:7ff6d75cc09e 169 {
pradeepvk2208 9:7ff6d75cc09e 170 sr.printf("Command SPEED DL to go to Standby State (I2C) \r\n");
pradeepvk2208 9:7ff6d75cc09e 171 sr.printf("Power OFF SPEED PMTs\r\n");
cholletisaik777 13:ba5dca9e18d8 172 if(all_flags&IS_I2C_ACK == 1)
pradeepvk2208 9:7ff6d75cc09e 173 {
cholletisaik777 13:ba5dca9e18d8 174 all_flags = (all_flags&(~PL_STATUS))|PL_STANDBY; }
pradeepvk2208 9:7ff6d75cc09e 175 else
pradeepvk2208 9:7ff6d75cc09e 176 {
cholletisaik777 13:ba5dca9e18d8 177 all_flags = (all_flags&(~PL_STATUS))|PL_ERR_I2C;
pradeepvk2208 9:7ff6d75cc09e 178 }
pradeepvk2208 9:7ff6d75cc09e 179 sr.printf("Disable SRP_INTERVAL_COUNTER\r\n");
cholletisaik777 13:ba5dca9e18d8 180 all_flags = all_flags&(~PL_MAIN_STATUS);
pradeepvk2208 9:7ff6d75cc09e 181 }
pradeepvk2208 9:7ff6d75cc09e 182 else
pradeepvk2208 9:7ff6d75cc09e 183 {
pradeepvk2208 9:7ff6d75cc09e 184 sr.printf("Power on SPPED DL\r\n");
pradeepvk2208 9:7ff6d75cc09e 185 sr.printf("Command SPEED DL to go to Standby State (I2C) \r\n");
cholletisaik777 13:ba5dca9e18d8 186 if(all_flags&IS_I2C_ACK == 1)
cholletisaik777 13:ba5dca9e18d8 187 {
cholletisaik777 13:ba5dca9e18d8 188 all_flags = (all_flags&(~PL_STATUS))|PL_STANDBY;
pradeepvk2208 9:7ff6d75cc09e 189 }
pradeepvk2208 9:7ff6d75cc09e 190 else
pradeepvk2208 9:7ff6d75cc09e 191 {
cholletisaik777 13:ba5dca9e18d8 192 all_flags = (all_flags&(~PL_STATUS))|PL_ERR_I2C;
pradeepvk2208 9:7ff6d75cc09e 193 }
pradeepvk2208 9:7ff6d75cc09e 194 sr.printf("Disable SRP_INTERVAL_COUNTER\r\n");
cholletisaik777 13:ba5dca9e18d8 195 all_flags = all_flags&(~PL_MAIN_STATUS);
pradeepvk2208 9:7ff6d75cc09e 196 }
pradeepvk2208 9:7ff6d75cc09e 197 }
pradeepvk2208 9:7ff6d75cc09e 198 }
cholletisaik777 13:ba5dca9e18d8 199 else if(power_level>1)
pradeepvk2208 9:7ff6d75cc09e 200 {
cholletisaik777 13:ba5dca9e18d8 201 if(all_flags&PL_PREV_STATE==PL_OFF)
pradeepvk2208 9:7ff6d75cc09e 202 {
pradeepvk2208 9:7ff6d75cc09e 203 sr.printf("Power on SPEED DL\r\n");
pradeepvk2208 9:7ff6d75cc09e 204 }
pradeepvk2208 9:7ff6d75cc09e 205 sr.printf("Power on Speed PMT with reduced Voltage\r\n");
pradeepvk2208 9:7ff6d75cc09e 206 sr.printf("Command SPEED DL to go to Standby State (I2C) \r\n");
cholletisaik777 13:ba5dca9e18d8 207 if(all_flags&IS_I2C_ACK == 1)
pradeepvk2208 9:7ff6d75cc09e 208 {
cholletisaik777 13:ba5dca9e18d8 209 all_flags = (all_flags&(~PL_STATUS))|PL_HIBERNATE;
pradeepvk2208 9:7ff6d75cc09e 210 }
pradeepvk2208 9:7ff6d75cc09e 211 else
pradeepvk2208 9:7ff6d75cc09e 212 {
cholletisaik777 13:ba5dca9e18d8 213 all_flags = (all_flags&(~PL_STATUS))|PL_ERR_I2C;
pradeepvk2208 9:7ff6d75cc09e 214 }
pradeepvk2208 9:7ff6d75cc09e 215 sr.printf("Disable SRP_INTERVAL_COUNTER\r\n");
cholletisaik777 13:ba5dca9e18d8 216 all_flags = all_flags&(~PL_MAIN_STATUS);
pradeepvk2208 9:7ff6d75cc09e 217 }
pradeepvk2208 9:7ff6d75cc09e 218 }
pradeepvk2208 9:7ff6d75cc09e 219 case PL_SCIENCE:
cholletisaik777 0:d6e3d1e21484 220 {
pradeepvk2208 9:7ff6d75cc09e 221 if(power_level<2)
pradeepvk2208 9:7ff6d75cc09e 222 {
pradeepvk2208 9:7ff6d75cc09e 223 if(power_level<1)
pradeepvk2208 9:7ff6d75cc09e 224 {
cholletisaik777 13:ba5dca9e18d8 225 all_flags = all_flags|PL_LOW_POWER;
pradeepvk2208 9:7ff6d75cc09e 226 if(power_level<0)
pradeepvk2208 9:7ff6d75cc09e 227 {
cholletisaik777 13:ba5dca9e18d8 228 if(all_flags&PL_PREV_STATE!=PL_OFF)
pradeepvk2208 9:7ff6d75cc09e 229 {
pradeepvk2208 9:7ff6d75cc09e 230 sr.printf("Command SPEED DL to go to Standby State (I2C) \r\n");
pradeepvk2208 9:7ff6d75cc09e 231 }
pradeepvk2208 9:7ff6d75cc09e 232 sr.printf("Power off SPEED\r\n");
cholletisaik777 13:ba5dca9e18d8 233 all_flags = (all_flags&(~PL_STATUS))|PL_OFF;
pradeepvk2208 9:7ff6d75cc09e 234 sr.printf("Disable SRP_INTERVAL_COUNTER\r\n");
cholletisaik777 13:ba5dca9e18d8 235 all_flags = all_flags&(~PL_MAIN_STATUS);
pradeepvk2208 9:7ff6d75cc09e 236 }
pradeepvk2208 9:7ff6d75cc09e 237 else
pradeepvk2208 9:7ff6d75cc09e 238 {
cholletisaik777 13:ba5dca9e18d8 239 if(all_flags&PL_PREV_STATE!=PL_OFF)
pradeepvk2208 9:7ff6d75cc09e 240 {
pradeepvk2208 9:7ff6d75cc09e 241 sr.printf("Command SPEED DL to go to Standby State (I2C) \r\n");
pradeepvk2208 9:7ff6d75cc09e 242 sr.printf("Power OFF SPEED PMTs\r\n");
cholletisaik777 13:ba5dca9e18d8 243 if(all_flags&IS_I2C_ACK == 1)
pradeepvk2208 9:7ff6d75cc09e 244 {
cholletisaik777 13:ba5dca9e18d8 245 all_flags = (all_flags&(~PL_STATUS))|PL_STANDBY; }
pradeepvk2208 9:7ff6d75cc09e 246 else
pradeepvk2208 9:7ff6d75cc09e 247 {
cholletisaik777 13:ba5dca9e18d8 248 all_flags = (all_flags&(~PL_STATUS))|PL_ERR_I2C;
pradeepvk2208 9:7ff6d75cc09e 249 }
pradeepvk2208 9:7ff6d75cc09e 250 sr.printf("Disable SRP_INTERVAL_COUNTER\r\n");
cholletisaik777 13:ba5dca9e18d8 251 all_flags = all_flags&(~PL_MAIN_STATUS);
pradeepvk2208 9:7ff6d75cc09e 252 }
pradeepvk2208 9:7ff6d75cc09e 253 else
pradeepvk2208 9:7ff6d75cc09e 254 {
pradeepvk2208 9:7ff6d75cc09e 255 sr.printf("Power on SPPED DL\r\n");
pradeepvk2208 9:7ff6d75cc09e 256 sr.printf("Command SPEED DL to go to Standby State (I2C) \r\n");
cholletisaik777 13:ba5dca9e18d8 257 if(all_flags&IS_I2C_ACK == 1)
pradeepvk2208 9:7ff6d75cc09e 258 {
cholletisaik777 13:ba5dca9e18d8 259 all_flags = (all_flags&(~PL_STATUS))|PL_STANDBY;
pradeepvk2208 9:7ff6d75cc09e 260 }
pradeepvk2208 9:7ff6d75cc09e 261 else
pradeepvk2208 9:7ff6d75cc09e 262 {
cholletisaik777 13:ba5dca9e18d8 263 all_flags = (all_flags&(~PL_STATUS))|PL_ERR_I2C;
pradeepvk2208 9:7ff6d75cc09e 264 }
pradeepvk2208 9:7ff6d75cc09e 265 sr.printf("Disable SRP_INTERVAL_COUNTER\r\n");
cholletisaik777 13:ba5dca9e18d8 266 all_flags = all_flags&(~PL_MAIN_STATUS);
pradeepvk2208 9:7ff6d75cc09e 267 }
pradeepvk2208 9:7ff6d75cc09e 268 }
pradeepvk2208 9:7ff6d75cc09e 269 }
cholletisaik777 13:ba5dca9e18d8 270 else if(power_level>1)
pradeepvk2208 9:7ff6d75cc09e 271 {
cholletisaik777 13:ba5dca9e18d8 272 if(all_flags&PL_PREV_STATE==PL_OFF)
pradeepvk2208 9:7ff6d75cc09e 273 {
pradeepvk2208 9:7ff6d75cc09e 274 sr.printf("Power on SPEED DL\r\n");
pradeepvk2208 9:7ff6d75cc09e 275 }
pradeepvk2208 9:7ff6d75cc09e 276 sr.printf("Power on Speed PMT with reduced Voltage\r\n");
pradeepvk2208 9:7ff6d75cc09e 277 sr.printf("Command SPEED DL to go to Standby State (I2C) \r\n");
cholletisaik777 13:ba5dca9e18d8 278 if(all_flags&IS_I2C_ACK == 1)
cholletisaik777 13:ba5dca9e18d8 279 {
cholletisaik777 13:ba5dca9e18d8 280 all_flags = (all_flags&(~PL_STATUS))|PL_HIBERNATE; }
cholletisaik777 13:ba5dca9e18d8 281 else
pradeepvk2208 9:7ff6d75cc09e 282 {
cholletisaik777 13:ba5dca9e18d8 283 all_flags = (all_flags&(~PL_STATUS))|PL_ERR_I2C;
cholletisaik777 13:ba5dca9e18d8 284 }
cholletisaik777 13:ba5dca9e18d8 285 sr.printf("Disable SRP_INTERVAL_COUNTER\r\n");
cholletisaik777 13:ba5dca9e18d8 286 all_flags = all_flags&(~PL_MAIN_STATUS);
cholletisaik777 13:ba5dca9e18d8 287 }
cholletisaik777 13:ba5dca9e18d8 288 }
cholletisaik777 13:ba5dca9e18d8 289 else if(power_level>2)
cholletisaik777 13:ba5dca9e18d8 290 {
cholletisaik777 13:ba5dca9e18d8 291 if(all_flags&PL_PREV_STATE==PL_SCIENCE)
cholletisaik777 13:ba5dca9e18d8 292 {
cholletisaik777 13:ba5dca9e18d8 293 all_flags = (all_flags&(~PL_STATUS))|PL_SCIENCE;
cholletisaik777 13:ba5dca9e18d8 294 all_flags = all_flags&(~PL_MAIN_STATUS);
cholletisaik777 13:ba5dca9e18d8 295 }
cholletisaik777 13:ba5dca9e18d8 296 else if(all_flags&PL_PREV_STATE==PL_HIBERNATE)
cholletisaik777 13:ba5dca9e18d8 297 {
cholletisaik777 13:ba5dca9e18d8 298 sr.printf("Power on SPEED PMT with high voltage \r\n");
cholletisaik777 13:ba5dca9e18d8 299 sr.printf("Command SPEED DL to go to Standby State (I2C) \r\n");
cholletisaik777 13:ba5dca9e18d8 300 if(all_flags&IS_I2C_ACK == 1)
cholletisaik777 13:ba5dca9e18d8 301 {
cholletisaik777 13:ba5dca9e18d8 302 sr.printf("Enable SRP_INTERVAL_COUNTER\r\n");
cholletisaik777 13:ba5dca9e18d8 303 all_flags = (all_flags&(~PL_STATUS))|PL_SCIENCE;
cholletisaik777 13:ba5dca9e18d8 304 all_flags = all_flags&(~PL_MAIN_STATUS);
pradeepvk2208 9:7ff6d75cc09e 305 }
pradeepvk2208 9:7ff6d75cc09e 306 else
pradeepvk2208 9:7ff6d75cc09e 307 {
cholletisaik777 13:ba5dca9e18d8 308 all_flags = (all_flags&(~PL_STATUS))|PL_ERR_I2C;
pradeepvk2208 9:7ff6d75cc09e 309 sr.printf("Disable SRP_INTERVAL_COUNTER\r\n");
cholletisaik777 13:ba5dca9e18d8 310 all_flags = all_flags&(~PL_MAIN_STATUS);
pradeepvk2208 9:7ff6d75cc09e 311 }
pradeepvk2208 9:7ff6d75cc09e 312 }
pradeepvk2208 9:7ff6d75cc09e 313 else
pradeepvk2208 9:7ff6d75cc09e 314
pradeepvk2208 9:7ff6d75cc09e 315 {
cholletisaik777 13:ba5dca9e18d8 316 if(all_flags&PL_PREV_STATE!=PL_OFF)
pradeepvk2208 9:7ff6d75cc09e 317 {
pradeepvk2208 9:7ff6d75cc09e 318 sr.printf("Power on SPEED DL\r\n");
pradeepvk2208 9:7ff6d75cc09e 319 }
pradeepvk2208 9:7ff6d75cc09e 320 sr.printf("Power on Speed PMT with reduced Voltage\r\n");
pradeepvk2208 9:7ff6d75cc09e 321 sr.printf("Command SPEED DL to go to Standby State (I2C) \r\n");
cholletisaik777 13:ba5dca9e18d8 322 if(all_flags&IS_I2C_ACK == 1)
pradeepvk2208 9:7ff6d75cc09e 323 {
cholletisaik777 13:ba5dca9e18d8 324 all_flags = (all_flags&(~PL_STATUS))|PL_HIBERNATE;
pradeepvk2208 9:7ff6d75cc09e 325 }
pradeepvk2208 9:7ff6d75cc09e 326 else
pradeepvk2208 9:7ff6d75cc09e 327 {
cholletisaik777 13:ba5dca9e18d8 328 all_flags = (all_flags&(~PL_STATUS))|PL_ERR_I2C;
pradeepvk2208 9:7ff6d75cc09e 329 }
pradeepvk2208 9:7ff6d75cc09e 330 sr.printf("Disable SRP_INTERVAL_COUNTER\r\n");
cholletisaik777 13:ba5dca9e18d8 331 all_flags = all_flags&(~PL_MAIN_STATUS);
pradeepvk2208 9:7ff6d75cc09e 332 }
pradeepvk2208 9:7ff6d75cc09e 333 }
cholletisaik777 0:d6e3d1e21484 334 }
pradeepvk2208 9:7ff6d75cc09e 335 }
cholletisaik777 0:d6e3d1e21484 336 }