##// END OF EJS Templates
Removed last dead code function found and set FSW ver to 3.2.0.23
Removed last dead code function found and set FSW ver to 3.2.0.23

File last commit:

r390:1c936ff95146 No PWD scrub with...
r403:56ae035bb062 3.2.0.23 R3++
Show More
wf_handler.c
1366 lines | 51.4 KiB | text/x-c | CLexer
Added GPL header and documented some more functions
r390 /*------------------------------------------------------------------------------
-- Solar Orbiter's Low Frequency Receiver Flight Software (LFR FSW),
-- This file is a part of the LFR FSW
-- Copyright (C) 2012-2018, Plasma Physics Laboratory - CNRS
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation; either version 2 of the License, or
-- (at your option) any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with this program; if not, write to the Free Software
-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-------------------------------------------------------------------------------*/
/*-- Author : Paul Leroy
-- Contact : Alexis Jeandet
-- Mail : alexis.jeandet@lpp.polytechnique.fr
----------------------------------------------------------------------------*/
paul
Header files inclusion reworked...
r40 /** Functions and tasks related to waveform packet generation.
*
* @file
* @author P. LEROY
*
* A group of functions to handle waveforms, in snapshot or continuous format.\n
*
*/
#include "wf_handler.h"
paul@pc-solar1.lab-lpp.local
Naming convention changed...
r5
paul
The flight software is now compatible with the VHDL 0.1.32...
r171 //***************
// waveform rings
// F0
paul
Bug #796 Don_Initialisation_P1
r321 ring_node waveform_ring_f0[NB_RING_NODES_F0]= {0};
ring_node *current_ring_node_f0 = NULL;
ring_node *ring_node_to_send_swf_f0 = NULL;
paul
The flight software is now compatible with the VHDL 0.1.32...
r171 // F1
paul
Bug #796 Don_Initialisation_P1
r321 ring_node waveform_ring_f1[NB_RING_NODES_F1] = {0};
ring_node *current_ring_node_f1 = NULL;
ring_node *ring_node_to_send_swf_f1 = NULL;
ring_node *ring_node_to_send_cwf_f1 = NULL;
paul
The flight software is now compatible with the VHDL 0.1.32...
r171 // F2
paul
Bug #796 Don_Initialisation_P1
r321 ring_node waveform_ring_f2[NB_RING_NODES_F2] = {0};
ring_node *current_ring_node_f2 = NULL;
ring_node *ring_node_to_send_swf_f2 = NULL;
ring_node *ring_node_to_send_cwf_f2 = NULL;
paul
The flight software is now compatible with the VHDL 0.1.32...
r171 // F3
paul
Bug #796 Don_Initialisation_P1
r321 ring_node waveform_ring_f3[NB_RING_NODES_F3] = {0};
ring_node *current_ring_node_f3 = NULL;
ring_node *ring_node_to_send_cwf_f3 = NULL;
char wf_cont_f3_light[ (NB_SAMPLES_PER_SNAPSHOT) * NB_BYTES_CWF3_LIGHT_BLK ] = {0};
paul
First version of the rings for the waveform picker.
r87
paul
Modification of the launch of NORMAL, SBM1 and SBM2 modes
r238 bool extractSWF1 = false;
bool extractSWF2 = false;
bool swf0_ready_flag_f1 = false;
bool swf0_ready_flag_f2 = false;
bool swf1_ready = false;
bool swf2_ready = false;
paul
snapshot extraction for the waveform ring is operational...
r105
paul
Bug #796 Don_Initialisation_P1
r321 int swf1_extracted[ (NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK) ] = {0};
int swf2_extracted[ (NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK) ] = {0};
ring_node ring_node_swf1_extracted = {0};
ring_node ring_node_swf2_extracted = {0};
paul
snapshots extraction fully functionnal in SBM1 and SBM2
r106
paul
Commit before changing the resynchro strategy
r256 typedef enum resynchro_state_t
{
paul
Snapshot resynchro modified
r267 MEASURE,
CORRECTION
paul
Commit before changing the resynchro strategy
r256 } resynchro_state;
paul
snapshots extraction fully functionnal in SBM1 and SBM2
r106 //*********************
// Interrupt SubRoutine
paul
Integration of basic parameters functions in the flight software...
r179 ring_node * getRingNodeToSendCWF( unsigned char frequencyChannel)
{
ring_node *node;
node = NULL;
switch ( frequencyChannel ) {
paul
Many corrections, mainly related to #807 Don_Enumeration
r318 case CHANNELF1:
paul
Integration of basic parameters functions in the flight software...
r179 node = ring_node_to_send_cwf_f1;
break;
paul
Many corrections, mainly related to #807 Don_Enumeration
r318 case CHANNELF2:
paul
Integration of basic parameters functions in the flight software...
r179 node = ring_node_to_send_cwf_f2;
break;
paul
Many corrections, mainly related to #807 Don_Enumeration
r318 case CHANNELF3:
paul
Integration of basic parameters functions in the flight software...
r179 node = ring_node_to_send_cwf_f3;
break;
default:
break;
}
return node;
}
ring_node * getRingNodeToSendSWF( unsigned char frequencyChannel)
{
ring_node *node;
node = NULL;
switch ( frequencyChannel ) {
paul
Many corrections, mainly related to #807 Don_Enumeration
r318 case CHANNELF0:
paul
Integration of basic parameters functions in the flight software...
r179 node = ring_node_to_send_swf_f0;
break;
paul
Many corrections, mainly related to #807 Don_Enumeration
r318 case CHANNELF1:
paul
Integration of basic parameters functions in the flight software...
r179 node = ring_node_to_send_swf_f1;
break;
paul
Many corrections, mainly related to #807 Don_Enumeration
r318 case CHANNELF2:
paul
Integration of basic parameters functions in the flight software...
r179 node = ring_node_to_send_swf_f2;
break;
default:
break;
}
return node;
}
paul
snapshots extraction fully functionnal in SBM1 and SBM2
r106 void reset_extractSWF( void )
{
paul
Modification of the launch of NORMAL, SBM1 and SBM2 modes
r238 extractSWF1 = false;
extractSWF2 = false;
swf0_ready_flag_f1 = false;
swf0_ready_flag_f2 = false;
swf1_ready = false;
swf2_ready = false;
paul
snapshots extraction fully functionnal in SBM1 and SBM2
r106 }
paul
snapshot extraction for the waveform ring is operational...
r105
paul
New version of the waveform picker packet transmission...
r172 inline void waveforms_isr_f3( void )
paul
timegen version 0.0.0.1
r170 {
rtems_status_code spare_status;
if ( (lfrCurrentMode == LFR_MODE_NORMAL) || (lfrCurrentMode == LFR_MODE_BURST) // in BURST the data are used to place v, e1 and e2 in the HK packet
|| (lfrCurrentMode == LFR_MODE_SBM1) || (lfrCurrentMode == LFR_MODE_SBM2) )
{ // in modes other than STANDBY and BURST, send the CWF_F3 data
paul
The flight software is now compatible with the VHDL 0.1.32...
r171 //***
// F3
paul
Many corrections, mainly related to #807 Don_Enumeration
r318 if ( (waveform_picker_regs->status & BITS_WFP_STATUS_F3) != INIT_CHAR ) { // [1100 0000] check the f3 full bits
paul
The flight software is now compatible with the VHDL 0.1.32...
r171 ring_node_to_send_cwf_f3 = current_ring_node_f3->previous;
current_ring_node_f3 = current_ring_node_f3->next;
paul
Many corrections, mainly related to #807 Don_Enumeration
r318 if ((waveform_picker_regs->status & BIT_WFP_BUF_F3_0) == BIT_WFP_BUF_F3_0){ // [0100 0000] f3 buffer 0 is full
paul
The flight software is now compatible with the VHDL 0.1.32...
r171 ring_node_to_send_cwf_f3->coarseTime = waveform_picker_regs->f3_0_coarse_time;
ring_node_to_send_cwf_f3->fineTime = waveform_picker_regs->f3_0_fine_time;
waveform_picker_regs->addr_data_f3_0 = current_ring_node_f3->buffer_address;
paul
Many corrections, mainly related to #807 Don_Enumeration
r318 waveform_picker_regs->status = waveform_picker_regs->status & RST_WFP_F3_0; // [1000 1000 0100 0000]
paul
The flight software is now compatible with the VHDL 0.1.32...
r171 }
paul
Many corrections, mainly related to #807 Don_Enumeration
r318 else if ((waveform_picker_regs->status & BIT_WFP_BUF_F3_1) == BIT_WFP_BUF_F3_1){ // [1000 0000] f3 buffer 1 is full
paul
The flight software is now compatible with the VHDL 0.1.32...
r171 ring_node_to_send_cwf_f3->coarseTime = waveform_picker_regs->f3_1_coarse_time;
ring_node_to_send_cwf_f3->fineTime = waveform_picker_regs->f3_1_fine_time;
waveform_picker_regs->addr_data_f3_1 = current_ring_node_f3->buffer_address;
paul
Many corrections, mainly related to #807 Don_Enumeration
r318 waveform_picker_regs->status = waveform_picker_regs->status & RST_WFP_F3_1; // [1000 1000 1000 0000]
paul
The flight software is now compatible with the VHDL 0.1.32...
r171 }
paul
timegen version 0.0.0.1
r170 if (rtems_event_send( Task_id[TASKID_CWF3], RTEMS_EVENT_0 ) != RTEMS_SUCCESSFUL) {
paul
The flight software is now compatible with the VHDL 0.1.32...
r171 spare_status = rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_0 );
paul
timegen version 0.0.0.1
r170 }
}
}
}
paul
New version of the waveform picker packet transmission...
r172 inline void waveforms_isr_burst( void )
paul
timegen version 0.0.0.1
r170 {
paul
Integration of basic parameters functions in the flight software...
r179 unsigned char status;
paul
timegen version 0.0.0.1
r170 rtems_status_code spare_status;
paul
Many corrections, mainly related to #807 Don_Enumeration
r318 status = (waveform_picker_regs->status & BITS_WFP_STATUS_F2) >> SHIFT_WFP_STATUS_F2; // [0011 0000] get the status bits for f2
paul
Integration of basic parameters functions in the flight software...
r179
switch(status)
{
paul
Many corrections, mainly related to #807 Don_Enumeration
r318 case BIT_WFP_BUFFER_0:
paul
2.0.2.1
r185 ring_node_to_send_cwf_f2 = current_ring_node_f2->previous;
ring_node_to_send_cwf_f2->sid = SID_BURST_CWF_F2;
paul
Integration of basic parameters functions in the flight software...
r179 ring_node_to_send_cwf_f2->coarseTime = waveform_picker_regs->f2_0_coarse_time;
ring_node_to_send_cwf_f2->fineTime = waveform_picker_regs->f2_0_fine_time;
paul
2.0.2.1
r185 current_ring_node_f2 = current_ring_node_f2->next;
paul
Integration of basic parameters functions in the flight software...
r179 waveform_picker_regs->addr_data_f2_0 = current_ring_node_f2->buffer_address;
paul
timegen version 0.0.0.1
r170 if (rtems_event_send( Task_id[TASKID_CWF2], RTEMS_EVENT_MODE_BURST ) != RTEMS_SUCCESSFUL) {
paul
The flight software is now compatible with the VHDL 0.1.32...
r171 spare_status = rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_0 );
paul
timegen version 0.0.0.1
r170 }
paul
Many corrections, mainly related to #807 Don_Enumeration
r318 waveform_picker_regs->status = waveform_picker_regs->status & RST_WFP_F2_0; // [0100 0100 0001 0000]
paul
Integration of basic parameters functions in the flight software...
r179 break;
paul
Many corrections, mainly related to #807 Don_Enumeration
r318 case BIT_WFP_BUFFER_1:
paul
2.0.2.1
r185 ring_node_to_send_cwf_f2 = current_ring_node_f2->previous;
ring_node_to_send_cwf_f2->sid = SID_BURST_CWF_F2;
paul
Integration of basic parameters functions in the flight software...
r179 ring_node_to_send_cwf_f2->coarseTime = waveform_picker_regs->f2_1_coarse_time;
ring_node_to_send_cwf_f2->fineTime = waveform_picker_regs->f2_1_fine_time;
paul
2.0.2.1
r185 current_ring_node_f2 = current_ring_node_f2->next;
paul
Integration of basic parameters functions in the flight software...
r179 waveform_picker_regs->addr_data_f2_1 = current_ring_node_f2->buffer_address;
if (rtems_event_send( Task_id[TASKID_CWF2], RTEMS_EVENT_MODE_BURST ) != RTEMS_SUCCESSFUL) {
spare_status = rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_0 );
}
paul
Many corrections, mainly related to #807 Don_Enumeration
r318 waveform_picker_regs->status = waveform_picker_regs->status & RST_WFP_F2_1; // [0100 0100 0010 0000]
paul
Integration of basic parameters functions in the flight software...
r179 break;
default:
break;
paul
timegen version 0.0.0.1
r170 }
}
paul
Modification of the launch of NORMAL, SBM1 and SBM2 modes
r238 inline void waveform_isr_normal_sbm1_sbm2( void )
paul
timegen version 0.0.0.1
r170 {
rtems_status_code status;
//***
paul
Modification of the launch of NORMAL, SBM1 and SBM2 modes
r238 // F0
paul
Many corrections, mainly related to #807 Don_Enumeration
r318 if ( (waveform_picker_regs->status & BITS_WFP_STATUS_F0) != INIT_CHAR ) // [0000 0011] check the f0 full bits
paul
Modification of the launch of NORMAL, SBM1 and SBM2 modes
r238 {
swf0_ready_flag_f1 = true;
swf0_ready_flag_f2 = true;
ring_node_to_send_swf_f0 = current_ring_node_f0->previous;
current_ring_node_f0 = current_ring_node_f0->next;
paul
Many corrections, mainly related to #807 Don_Enumeration
r318 if ( (waveform_picker_regs->status & BIT_WFP_BUFFER_0) == BIT_WFP_BUFFER_0)
paul
Modification of the launch of NORMAL, SBM1 and SBM2 modes
r238 {
ring_node_to_send_swf_f0->coarseTime = waveform_picker_regs->f0_0_coarse_time;
ring_node_to_send_swf_f0->fineTime = waveform_picker_regs->f0_0_fine_time;
waveform_picker_regs->addr_data_f0_0 = current_ring_node_f0->buffer_address;
paul
Many corrections, mainly related to #807 Don_Enumeration
r318 waveform_picker_regs->status = waveform_picker_regs->status & RST_WFP_F0_0; // [0001 0001 0000 0001]
paul
Modification of the launch of NORMAL, SBM1 and SBM2 modes
r238 }
paul
Many corrections, mainly related to #807 Don_Enumeration
r318 else if ( (waveform_picker_regs->status & BIT_WFP_BUFFER_1) == BIT_WFP_BUFFER_1)
paul
Modification of the launch of NORMAL, SBM1 and SBM2 modes
r238 {
ring_node_to_send_swf_f0->coarseTime = waveform_picker_regs->f0_1_coarse_time;
ring_node_to_send_swf_f0->fineTime = waveform_picker_regs->f0_1_fine_time;
waveform_picker_regs->addr_data_f0_1 = current_ring_node_f0->buffer_address;
paul
Many corrections, mainly related to #807 Don_Enumeration
r318 waveform_picker_regs->status = waveform_picker_regs->status & RST_WFP_F0_1; // [0001 0001 0000 0010]
paul
Modification of the launch of NORMAL, SBM1 and SBM2 modes
r238 }
paul
Snapshot resynchro modified
r267 // send an event to the WFRM task for resynchro activities
status = rtems_event_send( Task_id[TASKID_WFRM], RTEMS_EVENT_SWF_RESYNCH );
Implemented Calibrations Task...
r375 status = rtems_event_send( Task_id[TASKID_CALI], RTEMS_EVENT_CAL_SWEEP_WAKE );
paul
Modification of the launch of NORMAL, SBM1 and SBM2 modes
r238 }
//***
paul
timegen version 0.0.0.1
r170 // F1
paul
union usage removed from the sources (#897 Don_ArtVariables)...
r324 if ( (waveform_picker_regs->status & BITS_WFP_STATUS_F1) != INIT_CHAR ) { // [0000 1100] check the f1 full bits
paul
timegen version 0.0.0.1
r170 // (1) change the receiving buffer for the waveform picker
paul
The flight software is now compatible with the VHDL 0.1.32...
r171 ring_node_to_send_cwf_f1 = current_ring_node_f1->previous;
current_ring_node_f1 = current_ring_node_f1->next;
paul
Many corrections, mainly related to #807 Don_Enumeration
r318 if ( (waveform_picker_regs->status & BIT_WFP_BUF_F1_0) == BIT_WFP_BUF_F1_0)
paul
The flight software is now compatible with the VHDL 0.1.32...
r171 {
ring_node_to_send_cwf_f1->coarseTime = waveform_picker_regs->f1_0_coarse_time;
ring_node_to_send_cwf_f1->fineTime = waveform_picker_regs->f1_0_fine_time;
waveform_picker_regs->addr_data_f1_0 = current_ring_node_f1->buffer_address;
paul
Many corrections, mainly related to #807 Don_Enumeration
r318 waveform_picker_regs->status = waveform_picker_regs->status & RST_WFP_F1_0; // [0010 0010 0000 0100] f1 bits = 0
paul
The flight software is now compatible with the VHDL 0.1.32...
r171 }
paul
Many corrections, mainly related to #807 Don_Enumeration
r318 else if ( (waveform_picker_regs->status & BIT_WFP_BUF_F1_1) == BIT_WFP_BUF_F1_1)
paul
The flight software is now compatible with the VHDL 0.1.32...
r171 {
ring_node_to_send_cwf_f1->coarseTime = waveform_picker_regs->f1_1_coarse_time;
ring_node_to_send_cwf_f1->fineTime = waveform_picker_regs->f1_1_fine_time;
waveform_picker_regs->addr_data_f1_1 = current_ring_node_f1->buffer_address;
paul
Many corrections, mainly related to #807 Don_Enumeration
r318 waveform_picker_regs->status = waveform_picker_regs->status & RST_WFP_F1_1; // [0010 0010 0000 1000] f1 bits = 0
paul
The flight software is now compatible with the VHDL 0.1.32...
r171 }
paul
timegen version 0.0.0.1
r170 // (2) send an event for the the CWF1 task for transmission (and snapshot extraction if needed)
paul
Modification of the launch of NORMAL, SBM1 and SBM2 modes
r238 status = rtems_event_send( Task_id[TASKID_CWF1], RTEMS_EVENT_MODE_NORM_S1_S2 );
paul
timegen version 0.0.0.1
r170 }
//***
// F2
paul
Many corrections, mainly related to #807 Don_Enumeration
r318 if ( (waveform_picker_regs->status & BITS_WFP_STATUS_F2) != INIT_CHAR ) { // [0011 0000] check the f2 full bit
paul
timegen version 0.0.0.1
r170 // (1) change the receiving buffer for the waveform picker
paul
sync
r181 ring_node_to_send_cwf_f2 = current_ring_node_f2->previous;
ring_node_to_send_cwf_f2->sid = SID_SBM2_CWF_F2;
current_ring_node_f2 = current_ring_node_f2->next;
paul
Many corrections, mainly related to #807 Don_Enumeration
r318 if ( (waveform_picker_regs->status & BIT_WFP_BUF_F2_0) == BIT_WFP_BUF_F2_0)
paul
The flight software is now compatible with the VHDL 0.1.32...
r171 {
ring_node_to_send_cwf_f2->coarseTime = waveform_picker_regs->f2_0_coarse_time;
ring_node_to_send_cwf_f2->fineTime = waveform_picker_regs->f2_0_fine_time;
waveform_picker_regs->addr_data_f2_0 = current_ring_node_f2->buffer_address;
paul
Many corrections, mainly related to #807 Don_Enumeration
r318 waveform_picker_regs->status = waveform_picker_regs->status & RST_WFP_F2_0; // [0100 0100 0001 0000]
paul
The flight software is now compatible with the VHDL 0.1.32...
r171 }
paul
Many corrections, mainly related to #807 Don_Enumeration
r318 else if ( (waveform_picker_regs->status & BIT_WFP_BUF_F2_1) == BIT_WFP_BUF_F2_1)
paul
The flight software is now compatible with the VHDL 0.1.32...
r171 {
ring_node_to_send_cwf_f2->coarseTime = waveform_picker_regs->f2_1_coarse_time;
ring_node_to_send_cwf_f2->fineTime = waveform_picker_regs->f2_1_fine_time;
waveform_picker_regs->addr_data_f2_1 = current_ring_node_f2->buffer_address;
paul
Many corrections, mainly related to #807 Don_Enumeration
r318 waveform_picker_regs->status = waveform_picker_regs->status & RST_WFP_F2_1; // [0100 0100 0010 0000]
paul
The flight software is now compatible with the VHDL 0.1.32...
r171 }
paul
timegen version 0.0.0.1
r170 // (2) send an event for the waveforms transmission
paul
Modification of the launch of NORMAL, SBM1 and SBM2 modes
r238 status = rtems_event_send( Task_id[TASKID_CWF2], RTEMS_EVENT_MODE_NORM_S1_S2 );
paul
timegen version 0.0.0.1
r170 }
}
paul@pc-solar1.lab-lpp.local
Current version with modes NORMAL and SBM1 operational
r21 rtems_isr waveforms_isr( rtems_vector_number vector )
{
paul
Minor changes in .h inclusion
r45 /** This is the interrupt sub routine called by the waveform picker core.
*
* This ISR launch different actions depending mainly on two pieces of information:
* 1. the values read in the registers of the waveform picker.
* 2. the current LFR mode.
*
*/
paul@pc-solar1.lab-lpp.local
Current version with modes NORMAL and SBM1 operational
r21
paul
timegen version 0.0.0.1
r170 // STATUS
// new error error buffer full
// 15 14 13 12 11 10 9 8
// f3 f2 f1 f0 f3 f2 f1 f0
//
// ready buffer
// 7 6 5 4 3 2 1 0
// f3_1 f3_0 f2_1 f2_0 f1_1 f1_0 f0_1 f0_0
paul
Many corrections done after Logiscope analysis
r166 rtems_status_code spare_status;
paul
Sync
r95
paul
timegen version 0.0.0.1
r170 waveforms_isr_f3();
paul
two fields added to the housekeeping parameters:...
r265 //*************************************************
// copy the status bits in the housekeeping packets
housekeeping_packet.hk_lfr_vhdl_iir_cal =
paul
Many corrections, mainly related to #807 Don_Enumeration
r318 (unsigned char) ((waveform_picker_regs->status & BYTE0_MASK) >> SHIFT_1_BYTE);
paul
two fields added to the housekeeping parameters:...
r265
paul
Many corrections, mainly related to #807 Don_Enumeration
r318 if ( (waveform_picker_regs->status & BYTE0_MASK) != INIT_CHAR) // [1111 1111 0000 0000] check the error bits
paul
timegen version 0.0.0.1
r170 {
paul
The flight software is now compatible with the VHDL 0.1.32...
r171 spare_status = rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_10 );
paul
sy_lfr_n_swf_p implemented...
r32 }
paul
packet emission task added...
r33 switch(lfrCurrentMode)
paul@pc-solar1.lab-lpp.local
Current version with modes NORMAL and SBM1 operational
r21 {
paul
Modification of the launch of NORMAL, SBM1 and SBM2 modes
r238 //********
// STANDBY
case LFR_MODE_STANDBY:
paul
packet emission task added...
r33 break;
paul
sync before modifying the snapshot resynchronization
r246 //**************************
// LFR NORMAL, SBM1 and SBM2
paul
Modification of the launch of NORMAL, SBM1 and SBM2 modes
r238 case LFR_MODE_NORMAL:
case LFR_MODE_SBM1:
case LFR_MODE_SBM2:
waveform_isr_normal_sbm1_sbm2();
paul
Sync
r95 break;
paul
sync before modifying the snapshot resynchronization
r246 //******
// BURST
paul
Modification of the launch of NORMAL, SBM1 and SBM2 modes
r238 case LFR_MODE_BURST:
paul
timegen version 0.0.0.1
r170 waveforms_isr_burst();
paul
Sync
r95 break;
paul
sync before modifying the snapshot resynchronization
r246 //********
// DEFAULT
paul
Modification of the launch of NORMAL, SBM1 and SBM2 modes
r238 default:
paul
packet emission task added...
r33 break;
paul@pc-solar1.lab-lpp.local
Current version with modes NORMAL and SBM1 operational
r21 }
}
paul
snapshots extraction fully functionnal in SBM1 and SBM2
r106 //************
// RTEMS TASKS
paul@pc-solar1.lab-lpp.local
Updates of the ICD taken into account...
r18 rtems_task wfrm_task(rtems_task_argument argument) //used with the waveform picker VHDL IP
{
paul
Minor changes in .h inclusion
r45 /** This RTEMS task is dedicated to the transmission of snapshots of the NORMAL mode.
*
* @param unused is the starting argument of the RTEMS task
*
* The following data packets are sent by this task:
* - TM_LFR_SCIENCE_NORMAL_SWF_F0
* - TM_LFR_SCIENCE_NORMAL_SWF_F1
* - TM_LFR_SCIENCE_NORMAL_SWF_F2
*
*/
paul@pc-solar1.lab-lpp.local
Naming convention changed...
r5 rtems_event_set event_out;
paul
Last commit before release 0-13...
r35 rtems_id queue_id;
paul
fsw-1-0...
r82 rtems_status_code status;
paul
Modification of the launch of NORMAL, SBM1 and SBM2 modes
r238 ring_node *ring_node_swf1_extracted_ptr;
ring_node *ring_node_swf2_extracted_ptr;
paul
New version of the waveform picker packet transmission...
r172
paul
Bug #801 Don_Initialisation_P2
r320 event_out = EVENT_SETS_NONE_PENDING;
queue_id = RTEMS_ID_NONE;
paul
Modification of the launch of NORMAL, SBM1 and SBM2 modes
r238 ring_node_swf1_extracted_ptr = (ring_node *) &ring_node_swf1_extracted;
ring_node_swf2_extracted_ptr = (ring_node *) &ring_node_swf2_extracted;
paul
2.0.1.1...
r168
paul
fsw-1-0...
r82 status = get_message_queue_id_send( &queue_id );
if (status != RTEMS_SUCCESSFUL)
{
paul
sync before modifying the snapshot resynchronization
r246 PRINTF1("in WFRM *** ERR get_message_queue_id_send %d\n", status);
paul
fsw-1-0...
r82 }
paul
Last commit before release 0-13...
r35
paul
sync before modifying the snapshot resynchronization
r246 BOOT_PRINTF("in WFRM ***\n");
paul@pc-solar1.lab-lpp.local
Updates of the ICD taken into account...
r18
paul
sync before modifying the snapshot resynchronization
r246 while(1){
paul@pc-solar1.lab-lpp.local
Current version with modes NORMAL and SBM1 operational
r21 // wait for an RTEMS_EVENT
paul
Snapshot resynchro modified
r267 rtems_event_receive(RTEMS_EVENT_MODE_NORMAL | RTEMS_EVENT_SWF_RESYNCH,
paul@pc-solar1.lab-lpp.local
Current version with modes NORMAL and SBM1 operational
r21 RTEMS_WAIT | RTEMS_EVENT_ANY, RTEMS_NO_TIMEOUT, &event_out);
paul
Behaviour changed upon reception of a TC_LFR_ENTER_MODE with a transition...
r247
paul
Last commit before release 0-13...
r35 if (event_out == RTEMS_EVENT_MODE_NORMAL)
{
paul
sync before modifying the snapshot resynchronization
r246 DEBUG_PRINTF("WFRM received RTEMS_EVENT_MODE_SBM2\n");
ring_node_to_send_swf_f0->sid = SID_NORM_SWF_F0;
paul
Modification of the launch of NORMAL, SBM1 and SBM2 modes
r238 ring_node_swf1_extracted_ptr->sid = SID_NORM_SWF_F1;
ring_node_swf2_extracted_ptr->sid = SID_NORM_SWF_F2;
status = rtems_message_queue_send( queue_id, &ring_node_to_send_swf_f0, sizeof( ring_node* ) );
status = rtems_message_queue_send( queue_id, &ring_node_swf1_extracted_ptr, sizeof( ring_node* ) );
status = rtems_message_queue_send( queue_id, &ring_node_swf2_extracted_ptr, sizeof( ring_node* ) );
paul
snapshots extraction fully functionnal in SBM1 and SBM2
r106 }
paul
Snapshot resynchro modified
r267 if (event_out == RTEMS_EVENT_SWF_RESYNCH)
{
snapshot_resynchronization( (unsigned char *) &ring_node_to_send_swf_f0->coarseTime );
}
paul@pc-solar1.lab-lpp.local
Naming convention changed...
r5 }
}
paul@pc-solar1.lab-lpp.local
automatic reconnexion of the spacewire link...
r17
paul
sy_lfr_n_swf_p implemented...
r32 rtems_task cwf3_task(rtems_task_argument argument) //used with the waveform picker VHDL IP
{
paul
Minor changes in .h inclusion
r45 /** This RTEMS task is dedicated to the transmission of continuous waveforms at f3.
*
* @param unused is the starting argument of the RTEMS task
*
* The following data packet is sent by this task:
* - TM_LFR_SCIENCE_NORMAL_CWF_F3
*
*/
paul
sy_lfr_n_swf_p implemented...
r32 rtems_event_set event_out;
paul
Last commit before release 0-13...
r35 rtems_id queue_id;
paul
fsw-1-0...
r82 rtems_status_code status;
paul
New version of the waveform picker packet transmission...
r172 ring_node ring_node_cwf3_light;
paul
rev 3.0.0.2
r205 ring_node *ring_node_to_send_cwf;
paul
sy_lfr_n_swf_p implemented...
r32
paul
Bug #801 Don_Initialisation_P2
r320 event_out = EVENT_SETS_NONE_PENDING;
queue_id = RTEMS_ID_NONE;
paul
fsw-1-0...
r82 status = get_message_queue_id_send( &queue_id );
if (status != RTEMS_SUCCESSFUL)
{
PRINTF1("in CWF3 *** ERR get_message_queue_id_send %d\n", status)
}
paul
Last commit before release 0-13...
r35
paul
New version of the waveform picker packet transmission...
r172 ring_node_to_send_cwf_f3->sid = SID_NORM_CWF_LONG_F3;
// init the ring_node_cwf3_light structure
ring_node_cwf3_light.buffer_address = (int) wf_cont_f3_light;
paul
Many corrections, mainly related to #807 Don_Enumeration