vr1.1
Dependencies: FreescaleIAP mbed-rtos mbed
Fork of CDMS_RTOS_v1_1 by
PL.cpp@13:ba5dca9e18d8, 2015-07-06 (annotated)
- 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?
User | Revision | Line number | New 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 | } |