QITH FLAGS

Dependencies:   FreescaleIAP mbed-rtos mbed

Fork of TF_conops_BAE1_3 by Team Fox

EPS.h

Committer:
sakthipriya
Date:
2015-06-30
Revision:
0:246d1b5f11ae
Child:
1:7185136654ce

File content as of revision 0:246d1b5f11ae:

#include "mbed.h"

#define vstart 3.3
#define vstep 0.84667
#define cstart 0.0691
#define cstep 0.09133
#define rsens 0.095
#define Bnewvalue_start -100//in microTesla...max possible field is .0001 T 
#define Bnewvalue_step 13.333
#define AngularSpeed_start -10//max possible ang. velocity in space is 10 deg/sec
#define AngularSpeed_step 1.3333 

/***********************************************Configuring Peripherals*******************************************************************/

DigitalOut SelectLinesA[] = {PIN43,PIN44,PIN45,PIN46};         //to mux1=>voltage mux , PTA 13-16 , CHNGE TO PIN43 LATER
DigitalOut SelectLinesB[] = {PIN56,PIN57,PIN58,PIN59};         //to mux2=>current mux(differential mux) , PTB 3,7,8,9
                                                               //MSB is SelectLines[0],LSB is SelectLines[3]
AnalogIn CurrentInput(PIN53);                                  // output from Current Mux PTB0
AnalogIn VoltageInput(PIN54);                                  // output from Voltage Multiplexer  PTB1

/**************************************************Variables******************************************************************************/
typedef struct SensorData                 //soc value has to be included
{
    float Voltage[16];
    float Current[8];
    float PanelTemperature[4];      // not finalised
    float BatteryTemperature;   
    char fault_poll;             //polled faults
    char fault_ir;               //interrupted faults
    char clear_fault_poll;      //to be confirmed
    char clear_fault_ir;
    char power_mode;            //power modes
    float AngularSpeed[3];      //in order x,y,z
    float Bnewvalue[3];         //in order Bx,By,Bz
} SensorData;

 
typedef struct SensorDataQuantised 
{
    char Voltage[8];
    char Current[4];
    char PanelTemperature[2];//read by the 4 thermistors on solar panels
    char BatteryTemperature;    //to be populated   
    char faultpoll;             //polled faults
    char faultir;               //interrupted faults
    char power_mode;            //power modes
    char AngularSpeed[2];
    char Bnewvalue[2];
    
    //float magnetometer,gyro=>to be addes
} SensorDataQuantised;
 
 
typedef struct ShortBeacon 
{
    char Voltage[1];                            //battery voltage from gauge, needs  to be quantised
    char AngularSpeed[2];                       //all the 3 data
    char SubsystemStatus[1];                    //power modes
    char Temp[2];                               //temp of solar panel
    //Temp[0]'s LSB=> PanelTemperature[0], Temp[0]'s MSB=> PanelTemperature[1], Temp[1]'s LSB=> PanelTemperature[2], Temp[1]'s MSB=> PanelTemperature[3]
    char ErrorFlag[1];                          //fault
}ShortBeacy; 
 
 
void FCTN_EPS_INIT(); 
void FCTN_EPS_MAIN();
 
int FCTN_QUANTIZE(float l_start,float l_step,float l_x);
void FCTN_WRITE_BEASTRUCT(ShortBeacy* x,SensorDataQuantised y);