Updated EPS code with flowchart v2.3 (CDMS and HW faults)

Dependencies:   FreescaleIAP mbed-rtos mbed

Fork of QM_BAE_review_1_EPS_faults by Mohamed Azad

Revision:
6:036d08b62785
Parent:
5:bb592f3185cc
Child:
7:a46a1dee4497
--- a/main.cpp	Thu Dec 31 17:12:52 2015 +0000
+++ b/main.cpp	Fri Jan 22 19:51:50 2016 +0000
@@ -39,7 +39,8 @@
 char EPS_BATTERY_HEAT_ENABLE = 'q';
 
 //.......................global variables..................................................................// new hk structure- everything has to changed based on this
-uint8_t BAE_data[73];     
+uint8_t BAE_data[74];  
+char BAE_chardata[74];     
     
 
 //*************************************Global declarations************************************************//
@@ -180,7 +181,7 @@
         }
     }
     
-    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};
+    //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
@@ -202,18 +203,18 @@
     pc.printf("gyro values\n\r"); //printing the angular velocity and magnetic field values
     for(int i=0; i<3; i++) 
     {
-        pc.printf("%f\n\r",data[i]);
+        pc.printf("%f\n\r",actual_data.AngularSpeed_actual[i]);
     }
     pc.printf("mag values\n\r");
-    for(int i=3; i<6; i++) 
+    for(int i=0; i<3; i++) 
     {
-        pc.printf("%f\n\r",data[i]);
+        pc.printf("%f\n\r",actual_data.Bvalue_actual[i]);
     }
-        for(int i=0;i<3;i++)
-    {
-    omega1[i]= data[i];
-    b1[i] = data[i+3];
-    }
+      //  for(int i=0;i<3;i++)
+//    {
+//    omega1[i]= data[i];
+//    b1[i] = data[i+3];
+//    }
     }//if ACS_DATA_ACQ_ENABLE = 1
      else
     {
@@ -262,7 +263,7 @@
                             FLAG();
                             printf("\n\r nominal");
                             ACS_STATUS = '4';                    // set ACS_STATUS = ACS_NOMINAL_ONLY
-                            FCTN_ACS_CNTRLALGO(b1,omega1);
+                            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++) 
                             {
@@ -286,7 +287,7 @@
                                     FLAG();
                                     printf("\n\r Entered detumbling \n");
                                     ACS_STATUS = '6';                    // set ACS_STATUS = ACS_DETUMBLING_ONLY  
-                                    FCTN_ACS_CNTRLALGO(b1,omega1);  // detumbling code has to be included
+                                    FCTN_ACS_CNTRLALGO(actual_data.Bvalue_actual,actual_data.AngularSpeed_actual);  // detumbling code has to be included
                                     FCTN_ACS_GENPWM_MAIN(moment) ; 
                                 }
                                 else
@@ -314,9 +315,6 @@
                 PWM3 = 0;                     //clear pwm pins
             }
     } //else for acs control off
-    
-
-  
     ACS_MAIN_STATUS = 'c'; //clear ACS_MAIN_STATUS flag 
         
 }
@@ -370,9 +368,10 @@
 //          EPS_STATUS = EPS_ERR_BATTERY_TEMP;
 //        }
         FCTN_HK_MAIN();
+       // printf("\n\r here");
         FCTN_APPEND_HKDATA();
         minMaxHkData();
-          
+        //printf("\n\r here");  
         EPS_MAIN_STATUS = 'c'; // clear EPS main status 
 
 }
@@ -401,7 +400,11 @@
         else if( slave.receive() == 1)                                     // slave writes to master
         {
              if(data_send_flag == 'h')
-                write_ack=slave.write((char*)BAE_data,73); 
+             {
+                //FCTN_APPEND_HKDATA();
+                // pc.printf("\n\r here");
+                write_ack=slave.write(BAE_chardata,74); 
+            }
             else if(data_send_flag == 't')
             {
                 write_ack=slave.write(telemetry,tm_len);
@@ -412,8 +415,8 @@
         else if( slave.receive()==3 ||  slave.receive()==2)             // slave read 
         {
            read_ack=slave.read(telecommand,tc_len);
-           pc.printf("\n\rTELECOMMAND received from CDMS is %s \n",telecommand);
-           pc.printf("\n\r Executing Telecommand \n"); 
+           //pc.printf("\n\rTELECOMMAND received from CDMS is %s \n",telecommand);
+           //pc.printf("\n\r Executing Telecommand \n"); 
            // FCTN_TC_DECODE((uint8_t*) telecommand);
            uint8_t* temp = FCTN_BAE_TM_TC((uint8_t*) telecommand);
            telemetry = (char*)temp;
@@ -422,6 +425,7 @@
             //pc.printf("%c", telemetry[i]);
         } 
        
+      
     } 
 }