##// END OF EJS Templates
3.0.0.19...
3.0.0.19 the compliance between the incoming timecode and the CTR value contained in the TC_LFR_UPDATE_TIME telecommand is checked if at least one TC_LFR_UPDATE_TIME has been received (this implies the modification of the coarse_time_load register) lastValidEnterModeTime internal variable management updated

File last commit:

r271:98f943ec5c62 R3a
r271:98f943ec5c62 R3a
Show More
tc_handler.h
81 lines | 3.1 KiB | text/x-c | CLexer
#ifndef TC_HANDLER_H_INCLUDED
#define TC_HANDLER_H_INCLUDED
#include <rtems.h>
#include <leon.h>
#include "tc_load_dump_parameters.h"
#include "tc_acceptance.h"
#include "tm_lfr_tc_exe.h"
#include "wf_handler.h"
#include "fsw_processing.h"
#include "lfr_cpu_usage_report.h"
extern unsigned int lastValidEnterModeTime;
extern unsigned char oneTcLfrUpdateTimeReceived;
//****
// ISR
rtems_isr commutation_isr1( rtems_vector_number vector );
rtems_isr commutation_isr2( rtems_vector_number vector );
//***********
// RTEMS TASK
rtems_task actn_task( rtems_task_argument unused );
//***********
// TC ACTIONS
int action_reset( ccsdsTelecommandPacket_t *TC, rtems_id queue_id, unsigned char *time );
int action_enter_mode(ccsdsTelecommandPacket_t *TC, rtems_id queue_id);
int action_update_info( ccsdsTelecommandPacket_t *TC, rtems_id queue_id );
int action_enable_calibration( ccsdsTelecommandPacket_t *TC, rtems_id queue_id, unsigned char *time );
int action_disable_calibration( ccsdsTelecommandPacket_t *TC, rtems_id queue_id, unsigned char *time );
int action_update_time( ccsdsTelecommandPacket_t *TC);
// mode transition
int check_mode_value( unsigned char requestedMode );
int check_mode_transition( unsigned char requestedMode );
void update_last_valid_transition_date( unsigned int transitionCoarseTime );
int check_transition_date( unsigned int transitionCoarseTime );
int stop_spectral_matrices( void );
int stop_current_mode( void );
int enter_mode_standby(void );
int enter_mode_normal( unsigned int transitionCoarseTime );
int enter_mode_burst( unsigned int transitionCoarseTime );
int enter_mode_sbm1( unsigned int transitionCoarseTime );
int enter_mode_sbm2( unsigned int transitionCoarseTime );
int restart_science_tasks( unsigned char lfrRequestedMode );
int restart_asm_tasks(unsigned char lfrRequestedMode );
int suspend_science_tasks(void);
int suspend_asm_tasks( void );
void launch_waveform_picker( unsigned char mode , unsigned int transitionCoarseTime );
void launch_spectral_matrix( void );
void set_sm_irq_onNewMatrix( unsigned char value );
void set_sm_irq_onError( unsigned char value );
// other functions
void updateLFRCurrentMode(unsigned char requestedMode);
void set_lfr_soft_reset( unsigned char value );
void reset_lfr( void );
// CALIBRATION
void setCalibrationPrescaler( unsigned int prescaler );
void setCalibrationDivisor( unsigned int divisionFactor );
void setCalibrationData( void );
void setCalibrationReload( bool state);
void setCalibrationEnable( bool state );
void setCalibrationInterleaved( bool state );
void setCalibration( bool state );
void configureCalibration( bool interleaved );
//
void update_last_TC_exe( ccsdsTelecommandPacket_t *TC , unsigned char *time );
void update_last_TC_rej(ccsdsTelecommandPacket_t *TC , unsigned char *time );
void close_action( ccsdsTelecommandPacket_t *TC, int result, rtems_id queue_id );
extern rtems_status_code get_message_queue_id_send( rtems_id *queue_id );
extern rtems_status_code get_message_queue_id_recv( rtems_id *queue_id );
#endif // TC_HANDLER_H_INCLUDED