![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
vr1.1
Dependencies: FreescaleIAP mbed-rtos mbed
Fork of CDMS_RTOS_v1_1 by
PL.cpp@12:cb3ee1ac3638, 2015-07-06 (annotated)
- 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?
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 | 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 | } |