diff --git a/FSW-qt/Makefile b/FSW-qt/Makefile --- a/FSW-qt/Makefile +++ b/FSW-qt/Makefile @@ -1,6 +1,6 @@ ############################################################################# # Makefile for building: bin/fsw -# Generated by qmake (2.01a) (Qt 4.8.6) on: Tue May 13 07:12:26 2014 +# Generated by qmake (2.01a) (Qt 4.8.6) on: Tue May 13 15:18:10 2014 # Project: fsw-qt.pro # Template: app # Command: /usr/bin/qmake-qt4 -spec /usr/lib64/qt4/mkspecs/linux-g++ -o Makefile fsw-qt.pro diff --git a/FSW-qt/fsw-qt.pro.user b/FSW-qt/fsw-qt.pro.user --- a/FSW-qt/fsw-qt.pro.user +++ b/FSW-qt/fsw-qt.pro.user @@ -1,6 +1,6 @@ - + ProjectExplorer.Project.ActiveTarget @@ -51,9 +51,9 @@ ProjectExplorer.Project.Target.0 - Desktop-Qt 4.8.3 in PATH (System) - Desktop-Qt 4.8.3 in PATH (System) - {be73cf6a-f9d8-4d5a-8adf-adc2d83e2e44} + Desktop-Qt 4.8.2 in PATH (System) + Desktop-Qt 4.8.2 in PATH (System) + {5289e843-9ef2-45ce-88c6-ad27d8e08def} 0 0 0 @@ -192,7 +192,7 @@ ProjectExplorer.Project.Updater.EnvironmentId - {cdbf9cdc-1e84-406e-889b-c4feef49e75c} + {2e58a81f-9962-4bba-ae6b-760177f0656c} ProjectExplorer.Project.Updater.FileVersion diff --git a/header/ccsds_types.h b/header/ccsds_types.h --- a/header/ccsds_types.h +++ b/header/ccsds_types.h @@ -572,7 +572,7 @@ typedef struct { unsigned char hk_lfr_dpu_spw_tick_out_cnt; unsigned char hk_lfr_dpu_spw_last_timc; // ahb error statistics - unsigned int hk_lfr_last_fail_addr; + unsigned char hk_lfr_last_fail_addr[4]; // temperatures unsigned char hk_lfr_temp_scm[2]; unsigned char hk_lfr_temp_pcb[2]; diff --git a/header/fsw_misc.h b/header/fsw_misc.h --- a/header/fsw_misc.h +++ b/header/fsw_misc.h @@ -36,8 +36,10 @@ void increment_seq_counter( unsigned cha void getTime( unsigned char *time); unsigned long long int getTimeAsUnsignedLongLongInt( ); void send_dumb_hk( void ); -void get_v_e1_e2_f3 (unsigned char *v, unsigned char *e1, unsigned char *e2, bool init_buffer_addr ); +void get_v_e1_e2_f3 (unsigned char *v, unsigned char *e1, unsigned char *e2); extern int sched_yield( void ); +extern ring_node *current_ring_node_f3; +extern ring_node *ring_node_to_send_cwf_f3; #endif // FSW_MISC_H_INCLUDED diff --git a/header/wf_handler.h b/header/wf_handler.h --- a/header/wf_handler.h +++ b/header/wf_handler.h @@ -51,7 +51,6 @@ rtems_task swbd_task( rtems_task_argumen //****************** // general functions -void init_waveforms( void ); void init_waveform_rings( void ); void init_waveform_ring( ring_node waveform_ring[], unsigned char nbNodes, volatile int wfrm[] ); void reset_current_ring_nodes( void ); diff --git a/src/fsw_misc.c b/src/fsw_misc.c --- a/src/fsw_misc.c +++ b/src/fsw_misc.c @@ -222,8 +222,7 @@ rtems_task hous_task(rtems_task_argument spacewire_update_statistics(); get_v_e1_e2_f3( - housekeeping_packet.hk_lfr_sc_v_f3, housekeeping_packet.hk_lfr_sc_e1_f3, housekeeping_packet.hk_lfr_sc_e2_f3, - false ); + housekeeping_packet.hk_lfr_sc_v_f3, housekeeping_packet.hk_lfr_sc_e1_f3, housekeeping_packet.hk_lfr_sc_e2_f3 ); // SEND PACKET status = rtems_message_queue_urgent( queue_id, &housekeeping_packet, @@ -437,7 +436,7 @@ void send_dumb_hk( void ) PACKET_LENGTH_HK + CCSDS_TC_TM_PACKET_OFFSET + CCSDS_PROTOCOLE_EXTRA_BYTES); } -void get_v_e1_e2_f3( unsigned char *v, unsigned char *e1, unsigned char *e2, bool init_buffer_addr ) +void get_v_e1_e2_f3( unsigned char *v, unsigned char *e1, unsigned char *e2 ) { unsigned int coarseTime; unsigned int acquisitionTime; @@ -460,7 +459,7 @@ void get_v_e1_e2_f3( unsigned char *v, u else { coarseTime = time_management_regs->coarse_time & 0x7fffffff; - bufferPtr = (unsigned char*) waveform_picker_regs->addr_data_f3; + bufferPtr = (unsigned char*) current_ring_node_f3->buffer_address; acquisitionTime = (unsigned int) ( ( bufferPtr[2] & 0x7f ) << 24 ) + (unsigned int) ( bufferPtr[3] << 16 ) + (unsigned int) ( bufferPtr[0] << 8 ) @@ -472,7 +471,8 @@ void get_v_e1_e2_f3( unsigned char *v, u } else if( coarseTime == acquisitionTime ) { - offset_in_samples = 0; + bufferPtr = (unsigned char*) current_ring_node_f3->previous->buffer_address; // pick up v e1 and e2 in the previous f3 buffer + offset_in_samples = NB_SAMPLES_PER_SNAPSHOT-1; } else { @@ -482,7 +482,7 @@ void get_v_e1_e2_f3( unsigned char *v, u if ( offset_in_samples > (NB_SAMPLES_PER_SNAPSHOT - 1) ) { - PRINTF1("ERR *** in get_v_e1_e2_f3 *** trying to read out the buffer, counter = %d\n", offset_in_samples) + PRINTF1("ERR *** in get_v_e1_e2_f3 *** trying to read out of the buffer, counter = %d\n", offset_in_samples) offset_in_samples = NB_SAMPLES_PER_SNAPSHOT -1; } PRINTF1("f3 data @ %x *** ", waveform_picker_regs->addr_data_f3 ) diff --git a/src/wf_handler.c b/src/wf_handler.c --- a/src/wf_handler.c +++ b/src/wf_handler.c @@ -214,8 +214,6 @@ rtems_task wfrm_task(rtems_task_argument init_header_snapshot_wf_table( SID_NORM_SWF_F1, headerSWF_F1 ); init_header_snapshot_wf_table( SID_NORM_SWF_F2, headerSWF_F2 ); - init_waveforms(); - status = get_message_queue_id_send( &queue_id ); if (status != RTEMS_SUCCESSFUL) { @@ -449,37 +447,6 @@ rtems_task swbd_task(rtems_task_argument //****************** // general functions -void init_waveforms( void ) -{ - int i = 0; - - for (i=0; i< NB_SAMPLES_PER_SNAPSHOT; i++) - { - //*** - // F0 -// wf_snap_f0[ (i* NB_WORDS_SWF_BLK) + 0 + TIME_OFFSET ] = 0x88887777; // -// wf_snap_f0[ (i* NB_WORDS_SWF_BLK) + 1 + TIME_OFFSET ] = 0x22221111; // -// wf_snap_f0[ (i* NB_WORDS_SWF_BLK) + 2 + TIME_OFFSET ] = 0x44443333; // - - //*** - // F1 -// wf_snap_f1[ (i* NB_WORDS_SWF_BLK) + 0 + TIME_OFFSET ] = 0x22221111; -// wf_snap_f1[ (i* NB_WORDS_SWF_BLK) + 1 + TIME_OFFSET ] = 0x44443333; -// wf_snap_f1[ (i* NB_WORDS_SWF_BLK) + 2 + TIME_OFFSET ] = 0xaaaa0000; - - //*** - // F2 -// wf_snap_f2[ (i* NB_WORDS_SWF_BLK) + 0 + TIME_OFFSET ] = 0x44443333; -// wf_snap_f2[ (i* NB_WORDS_SWF_BLK) + 1 + TIME_OFFSET ] = 0x22221111; -// wf_snap_f2[ (i* NB_WORDS_SWF_BLK) + 2 + TIME_OFFSET ] = 0xaaaa0000; - - //*** - // F3 -// wf_cont_f3[ (i* NB_WORDS_SWF_BLK) + 0 ] = val1; -// wf_cont_f3[ (i* NB_WORDS_SWF_BLK) + 1 ] = val2; -// wf_cont_f3[ (i* NB_WORDS_SWF_BLK) + 2 ] = 0xaaaa0000; - } -} void init_waveform_rings( void ) {