##// END OF EJS Templates
Bug 803 Tr_BoucleSortie...
paul -
r319:9f779b655c52 R3_plus draft
parent child
Show More
@@ -231,6 +231,9 rtems_task hous_task(rtems_task_argument
231 rtems_status_code spare_status;
231 rtems_status_code spare_status;
232 rtems_id queue_id;
232 rtems_id queue_id;
233 rtems_rate_monotonic_period_status period_status;
233 rtems_rate_monotonic_period_status period_status;
234 bool isSynchronized;
235
236 isSynchronized = false;
234
237
235 status = get_message_queue_id_send( &queue_id );
238 status = get_message_queue_id_send( &queue_id );
236 if (status != RTEMS_SUCCESSFUL)
239 if (status != RTEMS_SUCCESSFUL)
@@ -259,11 +262,12 rtems_task hous_task(rtems_task_argument
259 status = rtems_rate_monotonic_period( HK_id, SY_LFR_TIME_SYN_TIMEOUT_in_ticks );
262 status = rtems_rate_monotonic_period( HK_id, SY_LFR_TIME_SYN_TIMEOUT_in_ticks );
260 status = rtems_rate_monotonic_get_status( HK_id, &period_status );
263 status = rtems_rate_monotonic_get_status( HK_id, &period_status );
261 DEBUG_PRINTF1("startup HK, HK_id status = %d\n", period_status.state)
264 DEBUG_PRINTF1("startup HK, HK_id status = %d\n", period_status.state)
262 while(period_status.state != RATE_MONOTONIC_EXPIRED ) // after SY_LFR_TIME_SYN_TIMEOUT ms, starts HK anyway
265 while( (period_status.state != RATE_MONOTONIC_EXPIRED)
266 && (isSynchronized == false) ) // after SY_LFR_TIME_SYN_TIMEOUT ms, starts HK anyway
263 {
267 {
264 if ((time_management_regs->coarse_time & VAL_LFR_SYNCHRONIZED) == INT32_ALL_0) // check time synchronization
268 if ((time_management_regs->coarse_time & VAL_LFR_SYNCHRONIZED) == INT32_ALL_0) // check time synchronization
265 {
269 {
266 break; // break if LFR is synchronized
270 isSynchronized = true;
267 }
271 }
268 else
272 else
269 {
273 {
@@ -508,7 +508,8 int spacewire_several_connect_attemps( v
508 rtems_status_code status;
508 rtems_status_code status;
509 int i;
509 int i;
510
510
511 for ( i=0; i<SY_LFR_DPU_CONNECT_ATTEMPT; i++ )
511 i = 0;
512 while (i < SY_LFR_DPU_CONNECT_ATTEMPT)
512 {
513 {
513 PRINTF1("in spacewire_reset_link *** link recovery, try %d\n", i);
514 PRINTF1("in spacewire_reset_link *** link recovery, try %d\n", i);
514
515
@@ -520,12 +521,12 int spacewire_several_connect_attemps( v
520
521
521 if ( status_spw != RTEMS_SUCCESSFUL )
522 if ( status_spw != RTEMS_SUCCESSFUL )
522 {
523 {
523 PRINTF1("in spacewire_reset_link *** ERR spacewire_start_link code %d\n", status_spw)
524 i = i + 1;
525 PRINTF1("in spacewire_reset_link *** ERR spacewire_start_link code %d\n", status_spw);
524 }
526 }
525
527 else
526 if ( status_spw == RTEMS_SUCCESSFUL)
527 {
528 {
528 break;
529 i = SY_LFR_DPU_CONNECT_ATTEMPT;
529 }
530 }
530 }
531 }
531
532
@@ -116,6 +116,8 void spectral_matrices_isr_f0( int statu
116 }
116 }
117 spectral_matrix_regs->status = BIT_READY_1; // [0000 0010]
117 spectral_matrix_regs->status = BIT_READY_1; // [0000 0010]
118 break;
118 break;
119 default:
120 break;
119 }
121 }
120 }
122 }
121
123
@@ -174,6 +176,8 void spectral_matrices_isr_f1( int statu
174 }
176 }
175 spectral_matrix_regs->status = BIT_STATUS_F1_1; // [1000 0000]
177 spectral_matrix_regs->status = BIT_STATUS_F1_1; // [1000 0000]
176 break;
178 break;
179 default:
180 break;
177 }
181 }
178 }
182 }
179
183
@@ -217,6 +221,8 void spectral_matrices_isr_f2( int statu
217 status_code = rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_3 );
221 status_code = rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_3 );
218 }
222 }
219 break;
223 break;
224 default:
225 break;
220 }
226 }
221 }
227 }
222
228
@@ -585,7 +585,7 rtems_task swbd_task(rtems_task_argument
585 if (event_out == RTEMS_EVENT_MODE_NORM_S1_S2)
585 if (event_out == RTEMS_EVENT_MODE_NORM_S1_S2)
586 {
586 {
587 acquisitionTimeF0_asLong = get_acquisition_time( (unsigned char *) &ring_node_to_send_swf_f0->coarseTime );
587 acquisitionTimeF0_asLong = get_acquisition_time( (unsigned char *) &ring_node_to_send_swf_f0->coarseTime );
588 build_snapshot_from_ring( ring_node_to_send_swf_f1, 1, acquisitionTimeF0_asLong,
588 build_snapshot_from_ring( ring_node_to_send_swf_f1, CHANNELF1, acquisitionTimeF0_asLong,
589 &ring_node_swf1_extracted, swf1_extracted );
589 &ring_node_swf1_extracted, swf1_extracted );
590 swf1_ready = true; // the snapshot has been extracted and is ready to be sent
590 swf1_ready = true; // the snapshot has been extracted and is ready to be sent
591 }
591 }
@@ -770,6 +770,7 void build_snapshot_from_ring( ring_node
770 int *swf_extracted)
770 int *swf_extracted)
771 {
771 {
772 unsigned int i;
772 unsigned int i;
773 unsigned int node;
773 unsigned long long int centerTime_asLong;
774 unsigned long long int centerTime_asLong;
774 unsigned long long int acquisitionTime_asLong;
775 unsigned long long int acquisitionTime_asLong;
775 unsigned long long int bufferAcquisitionTime_asLong;
776 unsigned long long int bufferAcquisitionTime_asLong;
@@ -813,23 +814,29 void build_snapshot_from_ring( ring_node
813 break;
814 break;
814 default:
815 default:
815 acquisitionTime_asLong = centerTime_asLong;
816 acquisitionTime_asLong = centerTime_asLong;
817 nb_ring_nodes = 0;
816 frequency_asLong = FREQ_F2;
818 frequency_asLong = FREQ_F2;
817 nbTicksPerSample_asLong = TICKS_PER_T2;
819 nbTicksPerSample_asLong = TICKS_PER_T2;
818 break;
820 break;
819 }
821 }
820
822
821 //****************************************************************************
823 //*****************************************************************************
822 // (4) search the ring_node with the acquisition time <= acquisitionTime_asLong
824 // (4) search the ring_node with the acquisition time <= acquisitionTime_asLong
823 for (i=0; i<nb_ring_nodes; i++)
825 node = 0;
826 while ( node < nb_ring_nodes)
824 {
827 {
825 //PRINTF1("%d ... ", i);
828 //PRINTF1("%d ... ", node);
826 bufferAcquisitionTime_asLong = get_acquisition_time( (unsigned char *) &ring_node_to_send->coarseTime );
829 bufferAcquisitionTime_asLong = get_acquisition_time( (unsigned char *) &ring_node_to_send->coarseTime );
827 if (bufferAcquisitionTime_asLong <= acquisitionTime_asLong)
830 if (bufferAcquisitionTime_asLong <= acquisitionTime_asLong)
828 {
831 {
829 //PRINTF1("buffer found with acquisition time = %llx\n", bufferAcquisitionTime_asLong);
832 //PRINTF1("buffer found with acquisition time = %llx\n", bufferAcquisitionTime_asLong);
830 break;
833 node = nb_ring_nodes;
831 }
834 }
832 ring_node_to_send = ring_node_to_send->previous;
835 else
836 {
837 node = node + 1;
838 ring_node_to_send = ring_node_to_send->previous;
839 }
833 }
840 }
834
841
835 // (5) compute the number of samples to take in the current buffer
842 // (5) compute the number of samples to take in the current buffer
General Comments 0
You need to be logged in to leave comments. Login now