ACS completed fully. All cases to be tested

Dependencies:   FreescaleIAP mbed-rtos mbed

Fork of ACS_Flowchart_BAE by Team Fox

Files at this revision

API Documentation at this revision

Comitter:
sakthipriya
Date:
Fri Apr 01 21:13:16 2016 +0000
Parent:
8:82250e41da81
Child:
10:f93407b97750
Commit message:
updating telecommands.

Changed in this revision

ACS.cpp Show annotated file Show diff for this revision Revisions of this file
EPS.h Show annotated file Show diff for this revision Revisions of this file
TCTM.cpp Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/ACS.cpp	Sat Mar 12 12:54:14 2016 +0000
+++ b/ACS.cpp	Fri Apr 01 21:13:16 2016 +0000
@@ -11,15 +11,15 @@
 //********************************flags******************************************//
 extern uint32_t BAE_STATUS;
 extern uint32_t BAE_ENABLE;
-extern char ACS_INIT_STATUS;
-extern char ACS_DATA_ACQ_STATUS;
-extern char ACS_ATS_STATUS;
-extern char ACS_MAIN_STATUS;
-extern char ACS_STATUS;
+extern uint8_t ACS_INIT_STATUS;
+extern uint8_t ACS_DATA_ACQ_STATUS;
+extern uint8_t ACS_ATS_STATUS;
+extern uint8_t ACS_MAIN_STATUS;
+extern uint8_t ACS_STATUS;
 
-extern char ACS_ATS_ENABLE;
-extern char ACS_DATA_ACQ_ENABLE;
-extern char ACS_STATE;
+extern uint8_t ACS_ATS_ENABLE;
+extern uint8_t ACS_DATA_ACQ_ENABLE;
+extern uint8_t ACS_STATE;
 
 DigitalOut phase_TR_x(PIN27); // PHASE pin for x-torquerod
 DigitalOut phase_TR_y(PIN28); // PHASE pin for y-torquerod
@@ -37,8 +37,8 @@
 extern BAE_HK_actual actual_data;
 
 
-//DigitalOut gpo1(PTC0); // enable of att sens2 switch
-//DigitalOut gpo2(PTC16); // enable of att sens switch
+//DigitalOut ATS1_SW_ENABLE(PTC0); // enable of att sens2 switch
+//DigitalOut ATS2_SW_ENABLE(PTC16); // enable of att sens switch
 
 
 Serial pc_acs(USBTX,USBRX); //for usb communication
@@ -199,7 +199,7 @@
 
 void  FCTN_ACS_INIT()
 {
-    ACS_INIT_STATUS = 's';     //set ACS_INIT_STATUS flag
+    ACS_INIT_STATUS = 1;     //set ACS_INIT_STATUS flag
     //FLAG();
     pc_acs.printf("Attitude sensor init called \n \r");
     //FLAG();
@@ -247,13 +247,13 @@
     cmd[1]=BIT_EVT_ENB;
     i2c.write(SLAVE_ADDR,cmd,2);
     wait_ms(100);
-    ACS_INIT_STATUS = 'c'; //set ACS_INIT_STATUS flag
+    ACS_INIT_STATUS = 0; //set ACS_INIT_STATUS flag
 }
 
 void FCTN_ATS_DATA_ACQ()
 {
-    ACS_DATA_ACQ_STATUS = 's';        //set ACS_DATA_ACQ_STATUS flag for att sens 2
-    if( ACS_ATS_ENABLE == 'e')
+    ACS_DATA_ACQ_STATUS = 1;        //set ACS_DATA_ACQ_STATUS flag for att sens 2
+    if( ACS_ATS_ENABLE == 1)
     {
     FLAG();
     pc_acs.printf("attitude sensor execution called \n \r");
@@ -307,9 +307,9 @@
     }
     else    //ACS_DATA_ACQ_STATUS = ACS_DATA_ACQ_FAILURE
     {
-       ACS_DATA_ACQ_STATUS = 'f';   
+       ACS_DATA_ACQ_STATUS = 1;   
     }
-    ACS_DATA_ACQ_STATUS = 'c';        //clear ACS_DATA_ACQ_STATUS flag for att sens 2
+    ACS_DATA_ACQ_STATUS = 0;        //clear ACS_DATA_ACQ_STATUS flag for att sens 2
 }
 
 void FCTN_ACS_GENPWM_MAIN(float Moment[3])
--- a/EPS.h	Sat Mar 12 12:54:14 2016 +0000
+++ b/EPS.h	Fri Apr 01 21:13:16 2016 +0000
@@ -106,7 +106,7 @@
     uint8_t current_quant[12];
     uint8_t Batt_temp_quant[2];
     uint8_t Batt_gauge_quant[3];       // why only 3 here??
-    float Batt_gauge_alerts;
+    float Batt_gauge_alerts;  //why is this float??
     uint8_t BAE_temp_quant;
     float AngularSpeed_quant[3];   
     float Bvalue_quant[3];  
--- a/TCTM.cpp	Sat Mar 12 12:54:14 2016 +0000
+++ b/TCTM.cpp	Fri Apr 01 21:13:16 2016 +0000
@@ -9,8 +9,8 @@
 #include "stdint.h"
 #include "cassert"
 
-extern DigitalOut gpo1; // enable of att sens2 switch
-extern DigitalOut gpo2; // enable of att sens switch
+extern DigitalOut ATS1_SW_ENABLE; // enable of att sens2 switch
+extern DigitalOut ATS2_SW_ENABLE; // enable of att sens switch
 
 extern DigitalOut TRXY_SW;  //TR XY Switch
 extern DigitalOut TRZ_SW;  //TR Z Switch
@@ -79,7 +79,7 @@
                            return tm;
                        }
                        //.........................
-                       case 0x0010:
+                     /*  case 0x0010:
                        {
                            printf("Read MUX DATA\r\n");
                            tm[0] = 0x60;
@@ -97,7 +97,7 @@
                            tm[132] = (uint8_t)((crc16&0xFF00)>>8);
                            tm[133] = (uint8_t)(crc16&0x00FF); 
                            return tm;
-                       }
+                       }*/
                        //..........................................
                        case 0x2:
                        {
@@ -424,7 +424,7 @@
                             tm[0]=0xB0;
                             tm[1]=tc[0];
                             tm[2]=1;
-                            gpo1 = 0;
+                            ATS1_SW_ENABLE = 0;
                             for(uint8_t i=3;i<11;i++)
                             {
                                 tm[i]=0x00;
@@ -444,7 +444,7 @@
                             //ACK_L234_TM
                             tm[0]=0xB0;
                             tm[1]=tc[0];
-                            gpo2 = 0;
+                            ATS2_SW_ENABLE = 0;
                             tm[2]=1;
                             for(uint8_t i=3;i<11;i++)
                             {
@@ -529,7 +529,7 @@
                             tm[0]=0xB0;
                             tm[1]=tc[0];
                             tm[2]=1;
-                            gpo1 = 1;
+                            ATS1_SW_ENABLE = 1;
                             for(uint8_t i=3;i<11;i++)
                             {
                                 tm[i]=0x00;
@@ -550,7 +550,7 @@
                             tm[0]=0xB0;
                             tm[1]=tc[0];
                             tm[2]=1;
-                            gpo2 = 1;
+                            ATS2_SW_ENABLE = 1;
                             for(uint8_t i=3;i<11;i++)
                             {
                                 tm[i]=0x00;
@@ -634,9 +634,9 @@
                             tm[0]=0xB0;
                             tm[1]=tc[0];
                             tm[2]=1;
-                            gpo1 = 1;
+                            ATS1_SW_ENABLE = 1;
                             wait_us(1);
-                            gpo1 = 0;
+                            ATS1_SW_ENABLE = 0;
                             for(uint8_t i=3;i<11;i++)
                             {
                                 tm[i]=0x00;
@@ -680,9 +680,9 @@
                             tm[0]=0xB0;
                             tm[1]=tc[0];
                             tm[2]=1;
-                            gpo1 = 1;
+                            ATS1_SW_ENABLE = 1;
                             wait_us(1);
-                            gpo1 = 0;
+                            ATS1_SW_ENABLE = 0;
                             for(uint8_t i=3;i<11;i++)
                             {
                                 tm[i]=0x00;
--- a/main.cpp	Sat Mar 12 12:54:14 2016 +0000
+++ b/main.cpp	Fri Apr 01 21:13:16 2016 +0000
@@ -9,6 +9,7 @@
 #define tm_len 134
 #define tc_len 135
 #define batt_heat_low 20
+
 //***************************************************** flags *************************************************************//
 uint32_t BAE_STATUS = 0x00000000;
 uint32_t BAE_ENABLE = 0xFFFFFFFF;
@@ -17,7 +18,7 @@
 char data_send_flag = 'h'; 
 
 //.........acs...............//
-char ACS_INIT_STATUS = 'q';
+/* char ACS_INIT_STATUS = 'q';
 char ACS_DATA_ACQ_STATUS = 'q';
 char ACS_ATS_STATUS = 'q';
 char ACS_MAIN_STATUS = 'q';
@@ -25,11 +26,21 @@
 
 char ACS_ATS_ENABLE = 'q';
 char ACS_DATA_ACQ_ENABLE = 'q';
-char ACS_STATE = 'q';
+char ACS_STATE = 'q';*/
+
+uint8_t ACS_INIT_STATUS = 0;
+uint8_t ACS_DATA_ACQ_STATUS = 0;
+uint8_t ACS_ATS_STATUS = 0;
+uint8_t ACS_MAIN_STATUS = 0;
+uint8_t ACS_STATUS = 0;
+
+uint8_t ACS_ATS_ENABLE = 1;
+uint8_t ACS_DATA_ACQ_ENABLE = 1;
+uint8_t ACS_STATE = 4;
 
 //.....................eps...................//
 //eps init
-char EPS_INIT_STATUS = 'q';
+/*char EPS_INIT_STATUS = 'q';
 char EPS_BATTERY_GAUGE_STATUS = 'q';
 //eps main
 char EPS_MAIN_STATUS = 'q';
@@ -37,6 +48,16 @@
 char EPS_STATUS = 'q';
 
 char EPS_BATTERY_HEAT_ENABLE = 'q';
+*/
+
+uint8_t EPS_INIT_STATUS = 0;
+uint8_t EPS_BATTERY_GAUGE_STATUS = 0;
+//eps main
+uint8_t EPS_MAIN_STATUS = 0;
+uint8_t EPS_BATTERY_TEMP_STATUS = 0;
+uint8_t EPS_STATUS = 7; //invalid status
+
+uint8_t EPS_BATTERY_HEAT_ENABLE = 0;
 
 //.......................global variables..................................................................// new hk structure- everything has to changed based on this
 uint8_t BAE_data[74];  
@@ -72,14 +93,14 @@
 bool if2check = 1;
 
 //*****************************************************Assigning pins******************************************************//
-DigitalOut gpo1(PTC0); // enable of att sens2 switch
-DigitalOut gpo2(PTC16); // enable of att sens switch
+DigitalOut ATS1_SW_ENABLE(PTC0); // enable of att sens2 switch
+DigitalOut ATS2_SW_ENABLE(PTC16); // enable of att sens switch
 InterruptIn irpt_4m_mstr(PIN38);                                      //I2c interrupt from CDMS
 DigitalOut irpt_2_mstr(PIN4);                                        //I2C interrupt to CDMS
 I2CSlave slave (PIN1,PIN2);
 DigitalOut batt_heat(PIN96);
 
-//gpo1 = 0;
+//ATS1_SW_ENABLE = 0;
 PwmOut PWM1(PIN93); //x                         //Functions used to generate PWM signal 
 PwmOut PWM2(PIN94); //y
 PwmOut PWM3(PIN95); //z                         //PWM output comes from pins p6
@@ -91,7 +112,7 @@
 DigitalIn pf3(PIN83);//Fault Bar for TRXY driver
  
 //Interrupt based faults
-//InterruptIn  ir1(PIN73);//Battery Gauge - Alert Bar Signal
+InterruptIn  ir1(PIN73);//Battery Gauge - Alert Bar Signal
 InterruptIn  ir2(PIN72);//TRXY Driver TR switch Fault
 InterruptIn  ir3(PIN89);//TRZ Driver Fault Bar
 InterruptIn  ir4(PIN91);//TRZ Driver TR switch Fault
@@ -99,7 +120,7 @@
 InterruptIn  ir6(PIN80);//Beacon- Switch OC bar
 InterruptIn  ir7(PIN42);//Charger IC - Fault Bar
 
-DigitalOut TRXY_SW(PIN71);  //TR XY Switch
+DigitalOut TRXY_SW_EN(PIN71);  //TR XY Switch
 DigitalOut DRV_Z_SLP(PIN88);    //Sleep pin of driver z
 DigitalOut TRZ_SW(PIN40);  //TR Z Switch
 DigitalOut CDMS_RESET(PIN7); // CDMS RESET
@@ -131,47 +152,47 @@
 void F_ACS()
 {
     
-    //........dummy check..........//
-    PWM1 = 0.56;
-    printf ("\n\r pwm1 value %f",PWM1);
+
     //...................//
     
     if(pf1check == 1)
     {
         if(iterP1 >= 3)
         {
-            gpo1 = 1;  // turn off ats1 permanently
+            ATS1_SW_ENABLE = 1;  // turn off ats1 permanently
             //FCTN_SWITCH_ATS(0);  // switch on ATS2    
         }
         else    
         {
-        gpo1 = 0;
+        ATS1_SW_ENABLE = 0;
         iterP1++;
         }
+        pf1check = 0;
     }
     if(pf2check == 1)
     {
         if(iterP1 >= 3)
         {
-            gpo2 = 1;  // turn off ats2 permanently
-            ACS_DATA_ACQ_ENABLE == 'd';
-            ACS_STATE == '2' ; // check ACS_STATE = ACS_ZAXIS_MOMENT_ONLY    
+            ATS2_SW_ENABLE = 1;  // turn off ats2 permanently
+            ACS_DATA_ACQ_ENABLE == 0;
+            ACS_STATE == 2 ; // check ACS_STATE = ACS_ZAXIS_MOMENT_ONLY    
         }
         else    
         {
-        gpo2 = 0;
+        ATS2_SW_ENABLE = 0;
         iterP2++;
         }
+        pf2check = 0;
     }
      if(if1check == 1)
     {
         if(iterI1 >= 3)
         {
-            TRXY_SW = 0;  // turn off TRXY permanently
+            TRXY_SW_EN = 0;  // turn off TRXY permanently
         }
         else    
         {
-         TRXY_SW = 1;   //switch on TRXY
+         TRXY_SW_EN = 1;   //switch on TRXY
          iterI1++;
         }
     }    
@@ -180,7 +201,7 @@
         if(iterI2 >= 3)
         {
             TRZ_SW = 0;  // turn off TRZ permanently
-            ACS_STATE == '2' ; // check ACS_STATE = ACS_ZAXIS_MOMENT_ONLY  
+            ACS_STATE == 2 ; // check ACS_STATE = ACS_ZAXIS_MOMENT_ONLY  
         }
         else    
         {
@@ -192,19 +213,19 @@
     //float b1[3]={-23.376,-37.56,14.739}, omega1[3]={-1.52,2.746,0.7629}, moment1[3]= {1.0498,-1.0535,1.3246};
     //b1[3] = {22, 22,10};
     //omega1[3] = {2.1,3.0,1.5};
-    // gpo1 = 0;  // att sens2 switch is disabled
-    // gpo2 = 0; // att sens switch is disabled
+    // ATS1_SW_ENABLE = 0;  // att sens2 switch is disabled
+    // ATS2_SW_ENABLE = 0; // att sens switch is disabled
      
     
         
     //Thread::signal_wait(0x1);  
-    ACS_MAIN_STATUS = 's'; //set ACS_MAIN_STATUS flag 
+    ACS_MAIN_STATUS = 1; //set ACS_MAIN_STATUS flag 
     PWM1 = 0;                     //clear pwm pins
     PWM2 = 0;                     //clear pwm pins
     PWM3 = 0;                     //clear pwm pins
     pc.printf("\n\rEntered ACS   %f\n",t_start.read());
     
-    if(ACS_DATA_ACQ_ENABLE == 'e')// check if ACS_DATA_ACQ_ENABLE = 1?
+    if(ACS_DATA_ACQ_ENABLE == 1)// check if ACS_DATA_ACQ_ENABLE = 1?
     {
     FLAG();
     FCTN_ATS_DATA_ACQ(); //the angular velocity is stored in the first 3 values and magnetic field values in next 3
@@ -228,11 +249,11 @@
     {
         // Z axis actuation is the only final solution,
     }
-    if(ACS_STATE == '0')        // check ACS_STATE = ACS_CONTROL_OFF?
+    if(ACS_STATE == 0)        // check ACS_STATE = ACS_CONTROL_OFF?
     {
           printf("\n\r acs control off\n");
           FLAG();
-          ACS_STATUS = '0';                // set ACS_STATUS = ACS_CONTROL_OFF
+          ACS_STATUS = 0;                // set ACS_STATUS = ACS_CONTROL_OFF
           PWM1 = 0;                     //clear pwm pins
           PWM2 = 0;                     //clear pwm pins
           PWM3 = 0;                     //clear pwm pins
@@ -242,11 +263,11 @@
             if(actual_data.power_mode>1)
             
             {
-                if(ACS_STATE == '2')   // check ACS_STATE = ACS_ZAXIS_MOMENT_ONLY 
+                if(ACS_STATE == 2)   // check ACS_STATE = ACS_ZAXIS_MOMENT_ONLY 
                 {
                     FLAG();
                     printf("\n\r z axis moment only\n");
-                    ACS_STATUS = '2';                    // set ACS_STATUS = ACS_ZAXIS_MOMENT_ONLY   
+                    ACS_STATUS = 2;                    // set ACS_STATUS = ACS_ZAXIS_MOMENT_ONLY   
                     //   FCTN_ACS_CNTRLALGO(b1, omega1);
                     moment[0] = 0;
                     moment[1] = 0;
@@ -255,22 +276,22 @@
                  }
                  else
                 {
-                if(ACS_STATE == '3') // check ACS_STATE = ACS_DATA_ACQ_FAILURE
+                if(ACS_STATE == 3) // check ACS_STATE = ACS_DATA_ACQ_FAILURE
                 {
                      FLAG();
                      printf("\n\r acs data failure "); 
-                     ACS_STATUS = '3';                    // set ACS_STATUS = ACS_DATA_ACQ_FAILURE
+                     ACS_STATUS = 3;                    // set ACS_STATUS = ACS_DATA_ACQ_FAILURE
                         PWM1 = 0;                     //clear pwm pins
                         PWM2 = 0;                     //clear pwm pins
                         PWM3 = 0;                     //clear pwm pins
                  }
                  else
                  {
-                     if(ACS_STATE == '4')       // check ACS_STATE = ACS_NOMINAL_ONLY
+                     if(ACS_STATE == 4)       // check ACS_STATE = ACS_NOMINAL_ONLY
                         {
                             FLAG();
                             printf("\n\r nominal");
-                            ACS_STATUS = '4';                    // set ACS_STATUS = ACS_NOMINAL_ONLY
+                            ACS_STATUS = 4;                    // set ACS_STATUS = ACS_NOMINAL_ONLY
                             FCTN_ACS_CNTRLALGO(actual_data.Bvalue_actual,actual_data.AngularSpeed_actual);
                             printf("\n\r moment values returned by control algo \n");
                             for(int i=0; i<3; i++) 
@@ -281,20 +302,20 @@
                         }
                         else
                         {
-                            if(ACS_STATE == '5')       // check ACS_STATE = ACS_AUTO_CONTROL
+                            if(ACS_STATE == 5)       // check ACS_STATE = ACS_AUTO_CONTROL
                             {
                                 FLAG();
                                 printf("\n\r auto control");
-                                ACS_STATUS = '5';                    // set ACS_STATUS = ACS_AUTO_CONTROL
+                                ACS_STATUS = 5;                    // set ACS_STATUS = ACS_AUTO_CONTROL
                                 //FCTN_ACS_AUTOCTRL_LOGIC                    // gotta include this code
                             }
                             else
                             {
-                                if(ACS_STATE == '6')       // check ACS_STATE = ACS_DETUMBLING_ONLY
+                                if(ACS_STATE == 6)       // check ACS_STATE = ACS_DETUMBLING_ONLY
                                 {
                                     FLAG();
                                     printf("\n\r Entered detumbling \n");
-                                    ACS_STATUS = '6';                    // set ACS_STATUS = ACS_DETUMBLING_ONLY  
+                                    ACS_STATUS = 6;                    // set ACS_STATUS = ACS_DETUMBLING_ONLY  
                                     FCTN_ACS_CNTRLALGO(actual_data.Bvalue_actual,actual_data.AngularSpeed_actual);  // detumbling code has to be included
                                     FCTN_ACS_GENPWM_MAIN(moment) ; 
                                 }
@@ -302,7 +323,7 @@
                                 {
                                     FLAG();
                                     printf("\n\r invalid state");
-                                    ACS_STATUS = '7' ;                    // set ACS_STATUS = INVALID STATE 
+                                    ACS_STATUS = 7 ;                    // set ACS_STATUS = INVALID STATE 
                                     PWM1 = 0;                     //clear pwm pins
                                     PWM2 = 0;                     //clear pwm pins
                                     PWM3 = 0;                     //clear pwm pins
@@ -317,13 +338,13 @@
             {
                 FLAG();
                 printf("\n\r low power");
-                ACS_STATUS = '1';                    // set ACS_STATUS = ACS_LOW_POWER
+                ACS_STATUS = 1;                    // set ACS_STATUS = ACS_LOW_POWER
                 PWM1 = 0;                     //clear pwm pins
                 PWM2 = 0;                     //clear pwm pins
                 PWM3 = 0;                     //clear pwm pins
             }
     } //else for acs control off
-    ACS_MAIN_STATUS = 'c'; //clear ACS_MAIN_STATUS flag 
+    ACS_MAIN_STATUS = 0; //clear ACS_MAIN_STATUS flag 
         
 }
 //***************************************************EPS THREAD***********************************************//
@@ -332,11 +353,11 @@
 {
     
         pc.printf("\n\rEntered EPS   %f\n",t_start.read());
-        EPS_MAIN_STATUS = 's'; // Set EPS main status
+        EPS_MAIN_STATUS = 1; // Set EPS main status
         FCTN_BATT_TEMP_SENSOR_MAIN(actual_data.Batt_temp_actual);
           pc.printf("\n\r Battery temperature %f %f" ,actual_data.Batt_temp_actual[0], actual_data.Batt_temp_actual[1]);
-          EPS_BATTERY_TEMP_STATUS = 's';          //set EPS_BATTERY_TEMP_STATUS
-          if(EPS_BATTERY_HEAT_ENABLE == 'e')
+          EPS_BATTERY_TEMP_STATUS = 1;          //set EPS_BATTERY_TEMP_STATUS
+          if(EPS_BATTERY_HEAT_ENABLE == 1)
           {
               if((actual_data.Batt_temp_actual[0] < batt_heat_low) && (actual_data.Batt_temp_actual[1] < batt_heat_low)) // to confirm
               {
@@ -348,7 +369,7 @@
               }
               
            } 
-          else if(EPS_BATTERY_HEAT_ENABLE == 'd')
+          else if(EPS_BATTERY_HEAT_ENABLE == 0)
           {
                 EPS_STATUS = 1;//EPS_STATUS = EPS_BATTERY_HEATER_DISABLED
           }
@@ -356,13 +377,13 @@
         if (actual_data.Batt_gauge_actual[1] == 200)   //data not received
         {
           actual_data.power_mode = 1;
-          EPS_BATTERY_GAUGE_STATUS = 'c';           //clear EPS_BATTERY_GAUGE_STATUS
+          EPS_BATTERY_GAUGE_STATUS = 0;           //clear EPS_BATTERY_GAUGE_STATUS
           
         }
         else
         {
           FCTN_EPS_POWERMODE(actual_data.Batt_gauge_actual[1]);            //updating power level 
-          EPS_BATTERY_GAUGE_STATUS = 's';           //set EPS_BATTERY_GAUGE_STATUS
+          EPS_BATTERY_GAUGE_STATUS = 1;           //set EPS_BATTERY_GAUGE_STATUS
         }
        // if( Temperature data received)
         //{
@@ -372,7 +393,7 @@
 //        else
 //        {
 //          Set battery temp to XX  
-//          EPS_BATTERY_TEMP_STATUS = 'c';          //clear EPS_BATTERY_TEMP_STATUS
+//          EPS_BATTERY_TEMP_STATUS = 0;          //clear EPS_BATTERY_TEMP_STATUS
 //          EPS_STATUS = EPS_ERR_BATTERY_TEMP;
 //        }
         FCTN_HK_MAIN();
@@ -380,7 +401,7 @@
         FCTN_APPEND_HKDATA();
         minMaxHkData();
         //printf("\n\r here");  
-        EPS_MAIN_STATUS = 'c'; // clear EPS main status 
+        EPS_MAIN_STATUS = 0; // clear EPS main status 
 
 }
 
@@ -472,7 +493,7 @@
 void ir2clear()
 {
     actual_data.faultIr_status |= 0x02;
-    TRXY_SW = 0;   // Switch off TR XY
+    TRXY_SW_EN = 0;   // Switch off TR XY
     if1check = 1;
 }
  
@@ -525,7 +546,7 @@
     { 
         pf1check=1;
         actual_data.faultPoll_status |=0x01 ;
-        gpo1 = 1;  // turn off ats1  // to be turned on next cycle in ACS
+        ATS1_SW_ENABLE = 1;  // turn off ats1  // to be turned on next cycle in ACS
     }
     else actual_data.faultPoll_status &= 0xFE;
  
@@ -533,7 +554,7 @@
     {   
         pf2check=1;
         actual_data.faultPoll_status |=0x02 ;
-        gpo2 = 1;  // turn off ats2  // turn on in ACS
+        ATS2_SW_ENABLE = 1;  // turn off ats2  // turn on in ACS
     }
     else actual_data.faultPoll_status &= 0xFD;
  
@@ -613,27 +634,27 @@
 {
     
 //.............acs..................//    
-    if(ACS_INIT_STATUS == 's')
+    if(ACS_INIT_STATUS == 1)
         BAE_STATUS = BAE_STATUS | 0x00000080;  //set ACS_INIT_STATUS flag
-    else if(ACS_INIT_STATUS == 'c')
+    else if(ACS_INIT_STATUS == 0)
         BAE_STATUS &= 0xFFFFFF7F;              //clear ACS_INIT_STATUS flag 
     
-    if(ACS_DATA_ACQ_STATUS == 's')
+    if(ACS_DATA_ACQ_STATUS == 1)
         BAE_STATUS =BAE_STATUS | 0x00000100;     //set ACS_DATA_ACQ_STATUS flag
-    else if(ACS_DATA_ACQ_STATUS == 'c')
+    else if(ACS_DATA_ACQ_STATUS == 0)
         BAE_STATUS &= 0xFFFFFEFF;      //clear ACS_DATA_ACQ_STATUS flag    
     
-    if(ACS_ATS_ENABLE == 'e')
+    if(ACS_ATS_ENABLE == 1)
         BAE_ENABLE |= 0x00000004;
-    else if(ACS_ATS_ENABLE == 'd')
+    else if(ACS_ATS_ENABLE == 0)
         BAE_ENABLE = BAE_ENABLE &0xFFFFFFFB | 0x00000004;
     
     if(ACS_DATA_ACQ_STATUS == 'f')
         BAE_STATUS |= 0x00000200;
     
-    if(ACS_MAIN_STATUS == 's')
+    if(ACS_MAIN_STATUS == 1)
         BAE_STATUS = (BAE_STATUS | 0x00001000);     //set ACS_MAIN_STATUS flag
-   else if(ACS_MAIN_STATUS == 'c')
+   else if(ACS_MAIN_STATUS == 0)
         BAE_STATUS &= 0xFFFFEFFF;     //clear ACS_MAIN_STATUS flag 
     
     if(ACS_STATUS == '0')
@@ -669,27 +690,27 @@
 //...............eps......................//
 
     
-if (EPS_INIT_STATUS=='s')                                  // Set EPS_INIT_STATUS
+if (EPS_INIT_STATUS==1)                                  // Set EPS_INIT_STATUS
     BAE_STATUS |= 0x00010000;                     
-else if(EPS_INIT_STATUS=='c')                              // Clear
+else if(EPS_INIT_STATUS==0)                              // Clear
     BAE_STATUS &= 0xFFFEFFFF;
 
 
-if (EPS_MAIN_STATUS=='s')                              // Set EPS_MAIIN_STATUS
+if (EPS_MAIN_STATUS==1)                              // Set EPS_MAIIN_STATUS
     BAE_STATUS |= 0x00040000;
-else if(EPS_MAIN_STATUS=='c')                          // Clear
+else if(EPS_MAIN_STATUS==0)                          // Clear
     BAE_STATUS &= 0xFFFBFFFF;
 
 
-if (EPS_BATTERY_GAUGE_STATUS=='s')              // Set EPS_BATTERY_GAUGE_STATUS
+if (EPS_BATTERY_GAUGE_STATUS==1)              // Set EPS_BATTERY_GAUGE_STATUS
     BAE_STATUS |= 0x00020000;
-else if(EPS_BATTERY_GAUGE_STATUS=='c')          // Clear
+else if(EPS_BATTERY_GAUGE_STATUS==0)          // Clear
     BAE_STATUS &= 0xFFFDFFFF;
 
 
-if (EPS_BATTERY_TEMP_STATUS=='s')             // Set EPS_BATTERY_TEMP_STATUS
+if (EPS_BATTERY_TEMP_STATUS==1)             // Set EPS_BATTERY_TEMP_STATUS
     BAE_STATUS |= 0x00080000;
-else if(EPS_BATTERY_TEMP_STATUS=='c')       // Clear
+else if(EPS_BATTERY_TEMP_STATUS==0)       // Clear
     BAE_STATUS &= 0xFFF7FFFF;
 
 if (EPS_STATUS==0)
@@ -706,9 +727,9 @@
     BAE_STATUS = (BAE_STATUS & 0xFF8FFFFF)|0x00050000;          // Set EPS_BATTERY_HEATER_ON   
     
 
-    if(EPS_BATTERY_HEAT_ENABLE == 'e')
+    if(EPS_BATTERY_HEAT_ENABLE == 1)
         BAE_ENABLE |= 0x00000080;
-    else if(EPS_BATTERY_HEAT_ENABLE == 'd')
+    else if(EPS_BATTERY_HEAT_ENABLE == 0)
         BAE_ENABLE = BAE_ENABLE &0xFFFFFF7;    
     
 
@@ -721,9 +742,13 @@
     printf("\n\r Initialising BAE ");
     //..........intial status....//
     ACS_STATE = '4';
-    ACS_ATS_ENABLE = 'e';
-    ACS_DATA_ACQ_ENABLE = 'e';
-    EPS_BATTERY_HEAT_ENABLE = 'e';
+    ACS_ATS_ENABLE = 1;
+    ACS_DATA_ACQ_ENABLE = 1;
+    EPS_BATTERY_HEAT_ENABLE = 1;
+    //............intializing pins................//
+    ATS1_SW_ENABLE = 0;
+    ATS2_SW_ENABLE = 1;
+    
     //............................//
     FCTN_ACS_INIT();
     FCTN_EPS_INIT();
@@ -746,9 +771,9 @@
     }               
     */
     
-    //ACS_INIT_STATUS = 'c';
-    //ACS_DATA_ACQ_STATUS = 'c';
-    gpo1 = 0;
+    //ACS_INIT_STATUS = 0;
+    //ACS_DATA_ACQ_STATUS = 0;
+    
     FLAG();
     FCTN_BAE_INIT();
     
@@ -775,7 +800,7 @@
     t_start.start();
     pc.printf("\n\rStarted scheduler %f\n\r",t_start.read()); 
     
-    gpo1 = 0;  // att sens2 switch is enabled
+    ATS1_SW_ENABLE = 0;  // att sens2 switch is enabled
     //FCTN_BAE_INIT();
     while(1);                                                   //required to prevent main from terminating
 }