@@ -1,2 +1,2 | |||||
1 | a586fe639ac179e95bdc150ebdbab0312f31dc30 LFR_basic-parameters |
|
1 | a586fe639ac179e95bdc150ebdbab0312f31dc30 LFR_basic-parameters | |
2 | 611fe904e4b4e05736a8a618c561980d10bceead header/lfr_common_headers |
|
2 | d700fe1774be46689e78de1efae2ed50655b0f1c header/lfr_common_headers |
@@ -9,10 +9,10 include(./sparc.pri) | |||||
9 |
|
9 | |||
10 | # flight software version |
|
10 | # flight software version | |
11 | SWVERSION=-1-0 |
|
11 | SWVERSION=-1-0 | |
12 |
DEFINES += SW_VERSION_N1= |
|
12 | DEFINES += SW_VERSION_N1=3 # major | |
13 | DEFINES += SW_VERSION_N2=0 # minor |
|
13 | DEFINES += SW_VERSION_N2=0 # minor | |
14 |
DEFINES += SW_VERSION_N3= |
|
14 | DEFINES += SW_VERSION_N3=0 # patch | |
15 |
DEFINES += SW_VERSION_N4= |
|
15 | DEFINES += SW_VERSION_N4=0 # internal | |
16 |
|
16 | |||
17 | # <GCOV> |
|
17 | # <GCOV> | |
18 | #QMAKE_CFLAGS_RELEASE += -fprofile-arcs -ftest-coverage |
|
18 | #QMAKE_CFLAGS_RELEASE += -fprofile-arcs -ftest-coverage |
@@ -37,6 +37,8 typedef struct | |||||
37 | // AUXILIARY HEADER |
|
37 | // AUXILIARY HEADER | |
38 | unsigned char sid; |
|
38 | unsigned char sid; | |
39 | unsigned char biaStatusInfo; |
|
39 | unsigned char biaStatusInfo; | |
|
40 | unsigned char sy_lfr_common_parameters_spare; | |||
|
41 | unsigned char sy_lfr_common_parameters; | |||
40 | unsigned char acquisitionTime[6]; |
|
42 | unsigned char acquisitionTime[6]; | |
41 | unsigned char pa_lfr_bp_blk_nr[2]; |
|
43 | unsigned char pa_lfr_bp_blk_nr[2]; | |
42 | // SOURCE DATA |
|
44 | // SOURCE DATA | |
@@ -61,6 +63,8 typedef struct | |||||
61 | // AUXILIARY HEADER |
|
63 | // AUXILIARY HEADER | |
62 | unsigned char sid; |
|
64 | unsigned char sid; | |
63 | unsigned char biaStatusInfo; |
|
65 | unsigned char biaStatusInfo; | |
|
66 | unsigned char sy_lfr_common_parameters_spare; | |||
|
67 | unsigned char sy_lfr_common_parameters; | |||
64 | unsigned char acquisitionTime[6]; |
|
68 | unsigned char acquisitionTime[6]; | |
65 | unsigned char source_data_spare; |
|
69 | unsigned char source_data_spare; | |
66 | unsigned char pa_lfr_bp_blk_nr[2]; |
|
70 | unsigned char pa_lfr_bp_blk_nr[2]; |
@@ -18,6 +18,9 int action_load_normal_par(ccsdsTelecomm | |||||
18 | int action_load_burst_par(ccsdsTelecommandPacket_t *TC, rtems_id queue_id , unsigned char *time); |
|
18 | int action_load_burst_par(ccsdsTelecommandPacket_t *TC, rtems_id queue_id , unsigned char *time); | |
19 | int action_load_sbm1_par(ccsdsTelecommandPacket_t *TC, rtems_id queue_id , unsigned char *time); |
|
19 | int action_load_sbm1_par(ccsdsTelecommandPacket_t *TC, rtems_id queue_id , unsigned char *time); | |
20 | int action_load_sbm2_par(ccsdsTelecommandPacket_t *TC, rtems_id queue_id , unsigned char *time); |
|
20 | int action_load_sbm2_par(ccsdsTelecommandPacket_t *TC, rtems_id queue_id , unsigned char *time); | |
|
21 | int action_load_kcoefficients(ccsdsTelecommandPacket_t *TC, rtems_id queue_id, unsigned char *time); | |||
|
22 | int action_load_fbins_mask(ccsdsTelecommandPacket_t *TC, rtems_id queue_id, unsigned char *time); | |||
|
23 | int action_dump_kcoefficients(ccsdsTelecommandPacket_t *TC, rtems_id queue_id, unsigned char *time); | |||
21 | int action_dump_par(rtems_id queue_id ); |
|
24 | int action_dump_par(rtems_id queue_id ); | |
22 |
|
25 | |||
23 | // NORMAL |
|
26 | // NORMAL |
@@ -1,7 +1,8 | |||||
1 | # LOAD FSW USING LINK 1 |
|
1 | # LOAD FSW USING LINK 1 | |
2 | SpwPlugin0.StarDundeeSelectLinkNumber( 1 ) |
|
2 | SpwPlugin0.StarDundeeSelectLinkNumber( 1 ) | |
3 |
|
3 | |||
4 | dsu3plugin0.openFile("/opt/DEV_PLE/FSW-qt/bin/fsw") |
|
4 | #dsu3plugin0.openFile("/opt/DEV_PLE/FSW-qt/bin/fsw") | |
|
5 | dsu3plugin0.openFile("/opt/LFR/LFR-FSW/2.0.2.3/fsw") | |||
5 | dsu3plugin0.loadFile() |
|
6 | dsu3plugin0.loadFile() | |
6 |
|
7 | |||
7 | dsu3plugin0.run() |
|
8 | dsu3plugin0.run() |
@@ -24,7 +24,6 | |||||
24 |
|
24 | |||
25 | // RTEMS GLOBAL VARIABLES |
|
25 | // RTEMS GLOBAL VARIABLES | |
26 | rtems_name misc_name[5]; |
|
26 | rtems_name misc_name[5]; | |
27 | rtems_id misc_id[5]; |
|
|||
28 | rtems_name Task_name[20]; /* array of task names */ |
|
27 | rtems_name Task_name[20]; /* array of task names */ | |
29 | rtems_id Task_id[20]; /* array of task ids */ |
|
28 | rtems_id Task_id[20]; /* array of task ids */ | |
30 | unsigned int maxCount; |
|
29 | unsigned int maxCount; |
@@ -699,7 +699,7 void init_header_cwf( Header_TM_LFR_SCIE | |||||
699 | // DATA FIELD HEADER |
|
699 | // DATA FIELD HEADER | |
700 | header->spare1_pusVersion_spare2 = DEFAULT_SPARE1_PUSVERSION_SPARE2; |
|
700 | header->spare1_pusVersion_spare2 = DEFAULT_SPARE1_PUSVERSION_SPARE2; | |
701 | header->serviceType = TM_TYPE_LFR_SCIENCE; // service type |
|
701 | header->serviceType = TM_TYPE_LFR_SCIENCE; // service type | |
702 | header->serviceSubType = TM_SUBTYPE_LFR_SCIENCE; // service subtype |
|
702 | header->serviceSubType = TM_SUBTYPE_LFR_SCIENCE_6; // service subtype | |
703 | header->destinationID = TM_DESTINATION_ID_GROUND; |
|
703 | header->destinationID = TM_DESTINATION_ID_GROUND; | |
704 | header->time[0] = 0x00; |
|
704 | header->time[0] = 0x00; | |
705 | header->time[0] = 0x00; |
|
705 | header->time[0] = 0x00; | |
@@ -729,7 +729,7 void init_header_swf( Header_TM_LFR_SCIE | |||||
729 | // DATA FIELD HEADER |
|
729 | // DATA FIELD HEADER | |
730 | header->spare1_pusVersion_spare2 = DEFAULT_SPARE1_PUSVERSION_SPARE2; |
|
730 | header->spare1_pusVersion_spare2 = DEFAULT_SPARE1_PUSVERSION_SPARE2; | |
731 | header->serviceType = TM_TYPE_LFR_SCIENCE; // service type |
|
731 | header->serviceType = TM_TYPE_LFR_SCIENCE; // service type | |
732 | header->serviceSubType = TM_SUBTYPE_LFR_SCIENCE; // service subtype |
|
732 | header->serviceSubType = TM_SUBTYPE_LFR_SCIENCE_3; // service subtype | |
733 | header->destinationID = TM_DESTINATION_ID_GROUND; |
|
733 | header->destinationID = TM_DESTINATION_ID_GROUND; | |
734 | header->time[0] = 0x00; |
|
734 | header->time[0] = 0x00; | |
735 | header->time[0] = 0x00; |
|
735 | header->time[0] = 0x00; | |
@@ -761,7 +761,7 void init_header_asm( Header_TM_LFR_SCIE | |||||
761 | // DATA FIELD HEADER |
|
761 | // DATA FIELD HEADER | |
762 | header->spare1_pusVersion_spare2 = DEFAULT_SPARE1_PUSVERSION_SPARE2; |
|
762 | header->spare1_pusVersion_spare2 = DEFAULT_SPARE1_PUSVERSION_SPARE2; | |
763 | header->serviceType = TM_TYPE_LFR_SCIENCE; // service type |
|
763 | header->serviceType = TM_TYPE_LFR_SCIENCE; // service type | |
764 | header->serviceSubType = TM_SUBTYPE_LFR_SCIENCE; // service subtype |
|
764 | header->serviceSubType = TM_SUBTYPE_LFR_SCIENCE_3; // service subtype | |
765 | header->destinationID = TM_DESTINATION_ID_GROUND; |
|
765 | header->destinationID = TM_DESTINATION_ID_GROUND; | |
766 | header->time[0] = 0x00; |
|
766 | header->time[0] = 0x00; | |
767 | header->time[0] = 0x00; |
|
767 | header->time[0] = 0x00; | |
@@ -814,6 +814,7 int spw_send_waveform_CWF( ring_node *ri | |||||
814 |
|
814 | |||
815 | header->packetLength[0] = (unsigned char) (TM_LEN_SCI_CWF_336 >> 8); |
|
815 | header->packetLength[0] = (unsigned char) (TM_LEN_SCI_CWF_336 >> 8); | |
816 | header->packetLength[1] = (unsigned char) (TM_LEN_SCI_CWF_336 ); |
|
816 | header->packetLength[1] = (unsigned char) (TM_LEN_SCI_CWF_336 ); | |
|
817 | header->sy_lfr_common_parameters = parameter_dump_packet.sy_lfr_common_parameters; | |||
817 | header->blkNr[0] = (unsigned char) (BLK_NR_CWF >> 8); |
|
818 | header->blkNr[0] = (unsigned char) (BLK_NR_CWF >> 8); | |
818 | header->blkNr[1] = (unsigned char) (BLK_NR_CWF ); |
|
819 | header->blkNr[1] = (unsigned char) (BLK_NR_CWF ); | |
819 |
|
820 | |||
@@ -896,6 +897,8 int spw_send_waveform_SWF( ring_node *ri | |||||
896 | dataPtr = (int*) ring_node_to_send->buffer_address; |
|
897 | dataPtr = (int*) ring_node_to_send->buffer_address; | |
897 | sid = ring_node_to_send->sid; |
|
898 | sid = ring_node_to_send->sid; | |
898 |
|
899 | |||
|
900 | header->sy_lfr_common_parameters = parameter_dump_packet.sy_lfr_common_parameters; | |||
|
901 | ||||
899 | for (i=0; i<7; i++) // send waveform |
|
902 | for (i=0; i<7; i++) // send waveform | |
900 | { |
|
903 | { | |
901 | spw_ioctl_send_SWF.data = (char*) &dataPtr[ (i * BLK_NR_304 * NB_WORDS_SWF_BLK) ]; |
|
904 | spw_ioctl_send_SWF.data = (char*) &dataPtr[ (i * BLK_NR_304 * NB_WORDS_SWF_BLK) ]; | |
@@ -985,6 +988,7 int spw_send_waveform_CWF3_light( ring_n | |||||
985 |
|
988 | |||
986 | header->packetLength[0] = (unsigned char) (TM_LEN_SCI_CWF_672 >> 8); |
|
989 | header->packetLength[0] = (unsigned char) (TM_LEN_SCI_CWF_672 >> 8); | |
987 | header->packetLength[1] = (unsigned char) (TM_LEN_SCI_CWF_672 ); |
|
990 | header->packetLength[1] = (unsigned char) (TM_LEN_SCI_CWF_672 ); | |
|
991 | header->sy_lfr_common_parameters = parameter_dump_packet.sy_lfr_common_parameters; | |||
988 | header->blkNr[0] = (unsigned char) (BLK_NR_CWF_SHORT_F3 >> 8); |
|
992 | header->blkNr[0] = (unsigned char) (BLK_NR_CWF_SHORT_F3 >> 8); | |
989 | header->blkNr[1] = (unsigned char) (BLK_NR_CWF_SHORT_F3 ); |
|
993 | header->blkNr[1] = (unsigned char) (BLK_NR_CWF_SHORT_F3 ); | |
990 |
|
994 | |||
@@ -1045,6 +1049,8 void spw_send_asm( ring_node *ring_node_ | |||||
1045 | coarseTime = ring_node_to_send->coarseTime; |
|
1049 | coarseTime = ring_node_to_send->coarseTime; | |
1046 | fineTime = ring_node_to_send->fineTime; |
|
1050 | fineTime = ring_node_to_send->fineTime; | |
1047 |
|
1051 | |||
|
1052 | header->sy_lfr_common_parameters = parameter_dump_packet.sy_lfr_common_parameters; | |||
|
1053 | ||||
1048 | for (i=0; i<2; i++) |
|
1054 | for (i=0; i<2; i++) | |
1049 | { |
|
1055 | { | |
1050 | // (1) BUILD THE DATA |
|
1056 | // (1) BUILD THE DATA | |
@@ -1056,6 +1062,7 void spw_send_asm( ring_node *ring_node_ | |||||
1056 | ( (ASM_F0_INDICE_START + (i*NB_BINS_PER_PKT_ASM_F0) ) * NB_VALUES_PER_SM ) * 2 |
|
1062 | ( (ASM_F0_INDICE_START + (i*NB_BINS_PER_PKT_ASM_F0) ) * NB_VALUES_PER_SM ) * 2 | |
1057 | ]; |
|
1063 | ]; | |
1058 | length = PACKET_LENGTH_TM_LFR_SCIENCE_ASM_F0; |
|
1064 | length = PACKET_LENGTH_TM_LFR_SCIENCE_ASM_F0; | |
|
1065 | header->serviceSubType = TM_SUBTYPE_LFR_SCIENCE_6; | |||
1059 | header->pa_lfr_asm_blk_nr[0] = (unsigned char) ( (NB_BINS_PER_PKT_ASM_F0) >> 8 ); // BLK_NR MSB |
|
1066 | header->pa_lfr_asm_blk_nr[0] = (unsigned char) ( (NB_BINS_PER_PKT_ASM_F0) >> 8 ); // BLK_NR MSB | |
1060 | header->pa_lfr_asm_blk_nr[1] = (unsigned char) (NB_BINS_PER_PKT_ASM_F0); // BLK_NR LSB |
|
1067 | header->pa_lfr_asm_blk_nr[1] = (unsigned char) (NB_BINS_PER_PKT_ASM_F0); // BLK_NR LSB | |
1061 | break; |
|
1068 | break; | |
@@ -1065,6 +1072,7 void spw_send_asm( ring_node *ring_node_ | |||||
1065 | ( (ASM_F1_INDICE_START + (i*NB_BINS_PER_PKT_ASM_F1) ) * NB_VALUES_PER_SM ) * 2 |
|
1072 | ( (ASM_F1_INDICE_START + (i*NB_BINS_PER_PKT_ASM_F1) ) * NB_VALUES_PER_SM ) * 2 | |
1066 | ]; |
|
1073 | ]; | |
1067 | length = PACKET_LENGTH_TM_LFR_SCIENCE_ASM_F1; |
|
1074 | length = PACKET_LENGTH_TM_LFR_SCIENCE_ASM_F1; | |
|
1075 | header->serviceSubType = TM_SUBTYPE_LFR_SCIENCE_6; | |||
1068 | header->pa_lfr_asm_blk_nr[0] = (unsigned char) ( (NB_BINS_PER_PKT_ASM_F1) >> 8 ); // BLK_NR MSB |
|
1076 | header->pa_lfr_asm_blk_nr[0] = (unsigned char) ( (NB_BINS_PER_PKT_ASM_F1) >> 8 ); // BLK_NR MSB | |
1069 | header->pa_lfr_asm_blk_nr[1] = (unsigned char) (NB_BINS_PER_PKT_ASM_F1); // BLK_NR LSB |
|
1077 | header->pa_lfr_asm_blk_nr[1] = (unsigned char) (NB_BINS_PER_PKT_ASM_F1); // BLK_NR LSB | |
1070 | break; |
|
1078 | break; | |
@@ -1074,6 +1082,7 void spw_send_asm( ring_node *ring_node_ | |||||
1074 | ( (ASM_F2_INDICE_START + (i*NB_BINS_PER_PKT_ASM_F2) ) * NB_VALUES_PER_SM ) * 2 |
|
1082 | ( (ASM_F2_INDICE_START + (i*NB_BINS_PER_PKT_ASM_F2) ) * NB_VALUES_PER_SM ) * 2 | |
1075 | ]; |
|
1083 | ]; | |
1076 | length = PACKET_LENGTH_TM_LFR_SCIENCE_ASM_F2; |
|
1084 | length = PACKET_LENGTH_TM_LFR_SCIENCE_ASM_F2; | |
|
1085 | header->serviceSubType = TM_SUBTYPE_LFR_SCIENCE_3; | |||
1077 | header->pa_lfr_asm_blk_nr[0] = (unsigned char) ( (NB_BINS_PER_PKT_ASM_F2) >> 8 ); // BLK_NR MSB |
|
1086 | header->pa_lfr_asm_blk_nr[0] = (unsigned char) ( (NB_BINS_PER_PKT_ASM_F2) >> 8 ); // BLK_NR MSB | |
1078 | header->pa_lfr_asm_blk_nr[1] = (unsigned char) (NB_BINS_PER_PKT_ASM_F2); // BLK_NR LSB |
|
1087 | header->pa_lfr_asm_blk_nr[1] = (unsigned char) (NB_BINS_PER_PKT_ASM_F2); // BLK_NR LSB | |
1079 | break; |
|
1088 | break; |
@@ -283,6 +283,7 rtems_task prc0_task( rtems_task_argumen | |||||
283 | // 3) send the BP1 set |
|
283 | // 3) send the BP1 set | |
284 | set_time( packet_sbm_bp1.time, (unsigned char *) &incomingMsg->coarseTimeSBM ); |
|
284 | set_time( packet_sbm_bp1.time, (unsigned char *) &incomingMsg->coarseTimeSBM ); | |
285 | set_time( packet_sbm_bp1.acquisitionTime, (unsigned char *) &incomingMsg->coarseTimeSBM ); |
|
285 | set_time( packet_sbm_bp1.acquisitionTime, (unsigned char *) &incomingMsg->coarseTimeSBM ); | |
|
286 | packet_sbm_bp1.sy_lfr_common_parameters = parameter_dump_packet.sy_lfr_common_parameters; | |||
286 | BP_send( (char *) &packet_sbm_bp1, queue_id, |
|
287 | BP_send( (char *) &packet_sbm_bp1, queue_id, | |
287 | PACKET_LENGTH_TM_LFR_SCIENCE_SBM_BP1_F0 + PACKET_LENGTH_DELTA, |
|
288 | PACKET_LENGTH_TM_LFR_SCIENCE_SBM_BP1_F0 + PACKET_LENGTH_DELTA, | |
288 | sid); |
|
289 | sid); | |
@@ -294,6 +295,7 rtems_task prc0_task( rtems_task_argumen | |||||
294 | // 2) send the BP2 set |
|
295 | // 2) send the BP2 set | |
295 | set_time( packet_sbm_bp2.time, (unsigned char *) &incomingMsg->coarseTimeSBM ); |
|
296 | set_time( packet_sbm_bp2.time, (unsigned char *) &incomingMsg->coarseTimeSBM ); | |
296 | set_time( packet_sbm_bp2.acquisitionTime, (unsigned char *) &incomingMsg->coarseTimeSBM ); |
|
297 | set_time( packet_sbm_bp2.acquisitionTime, (unsigned char *) &incomingMsg->coarseTimeSBM ); | |
|
298 | packet_sbm_bp2.sy_lfr_common_parameters = parameter_dump_packet.sy_lfr_common_parameters; | |||
297 | BP_send( (char *) &packet_sbm_bp2, queue_id, |
|
299 | BP_send( (char *) &packet_sbm_bp2, queue_id, | |
298 | PACKET_LENGTH_TM_LFR_SCIENCE_SBM_BP2_F0 + PACKET_LENGTH_DELTA, |
|
300 | PACKET_LENGTH_TM_LFR_SCIENCE_SBM_BP2_F0 + PACKET_LENGTH_DELTA, | |
299 | sid); |
|
301 | sid); | |
@@ -317,6 +319,7 rtems_task prc0_task( rtems_task_argumen | |||||
317 | // 3) send the BP1 set |
|
319 | // 3) send the BP1 set | |
318 | set_time( packet_norm_bp1.time, (unsigned char *) &incomingMsg->coarseTimeNORM ); |
|
320 | set_time( packet_norm_bp1.time, (unsigned char *) &incomingMsg->coarseTimeNORM ); | |
319 | set_time( packet_norm_bp1.acquisitionTime, (unsigned char *) &incomingMsg->coarseTimeNORM ); |
|
321 | set_time( packet_norm_bp1.acquisitionTime, (unsigned char *) &incomingMsg->coarseTimeNORM ); | |
|
322 | packet_norm_bp1.sy_lfr_common_parameters = parameter_dump_packet.sy_lfr_common_parameters; | |||
320 | BP_send( (char *) &packet_norm_bp1, queue_id, |
|
323 | BP_send( (char *) &packet_norm_bp1, queue_id, | |
321 | PACKET_LENGTH_TM_LFR_SCIENCE_NORM_BP1_F0 + PACKET_LENGTH_DELTA, |
|
324 | PACKET_LENGTH_TM_LFR_SCIENCE_NORM_BP1_F0 + PACKET_LENGTH_DELTA, | |
322 | SID_NORM_BP1_F0 ); |
|
325 | SID_NORM_BP1_F0 ); | |
@@ -327,6 +330,7 rtems_task prc0_task( rtems_task_argumen | |||||
327 | // 2) send the BP2 set |
|
330 | // 2) send the BP2 set | |
328 | set_time( packet_norm_bp2.time, (unsigned char *) &incomingMsg->coarseTimeNORM ); |
|
331 | set_time( packet_norm_bp2.time, (unsigned char *) &incomingMsg->coarseTimeNORM ); | |
329 | set_time( packet_norm_bp2.acquisitionTime, (unsigned char *) &incomingMsg->coarseTimeNORM ); |
|
332 | set_time( packet_norm_bp2.acquisitionTime, (unsigned char *) &incomingMsg->coarseTimeNORM ); | |
|
333 | packet_norm_bp2.sy_lfr_common_parameters = parameter_dump_packet.sy_lfr_common_parameters; | |||
330 | BP_send( (char *) &packet_norm_bp2, queue_id, |
|
334 | BP_send( (char *) &packet_norm_bp2, queue_id, | |
331 | PACKET_LENGTH_TM_LFR_SCIENCE_NORM_BP2_F0 + PACKET_LENGTH_DELTA, |
|
335 | PACKET_LENGTH_TM_LFR_SCIENCE_NORM_BP2_F0 + PACKET_LENGTH_DELTA, | |
332 | SID_NORM_BP2_F0); |
|
336 | SID_NORM_BP2_F0); |
@@ -278,6 +278,7 rtems_task prc1_task( rtems_task_argumen | |||||
278 | // 3) send the BP1 set |
|
278 | // 3) send the BP1 set | |
279 | set_time( packet_sbm_bp1.time, (unsigned char *) &incomingMsg->coarseTimeSBM ); |
|
279 | set_time( packet_sbm_bp1.time, (unsigned char *) &incomingMsg->coarseTimeSBM ); | |
280 | set_time( packet_sbm_bp1.acquisitionTime, (unsigned char *) &incomingMsg->coarseTimeSBM ); |
|
280 | set_time( packet_sbm_bp1.acquisitionTime, (unsigned char *) &incomingMsg->coarseTimeSBM ); | |
|
281 | packet_sbm_bp1.sy_lfr_common_parameters = parameter_dump_packet.sy_lfr_common_parameters; | |||
281 | BP_send( (char *) &packet_sbm_bp1, queue_id_send, |
|
282 | BP_send( (char *) &packet_sbm_bp1, queue_id_send, | |
282 | PACKET_LENGTH_TM_LFR_SCIENCE_SBM_BP1_F1 + PACKET_LENGTH_DELTA, |
|
283 | PACKET_LENGTH_TM_LFR_SCIENCE_SBM_BP1_F1 + PACKET_LENGTH_DELTA, | |
283 | sid ); |
|
284 | sid ); | |
@@ -289,6 +290,7 rtems_task prc1_task( rtems_task_argumen | |||||
289 | // 2) send the BP2 set |
|
290 | // 2) send the BP2 set | |
290 | set_time( packet_sbm_bp2.time, (unsigned char *) &incomingMsg->coarseTimeSBM ); |
|
291 | set_time( packet_sbm_bp2.time, (unsigned char *) &incomingMsg->coarseTimeSBM ); | |
291 | set_time( packet_sbm_bp2.acquisitionTime, (unsigned char *) &incomingMsg->coarseTimeSBM ); |
|
292 | set_time( packet_sbm_bp2.acquisitionTime, (unsigned char *) &incomingMsg->coarseTimeSBM ); | |
|
293 | packet_sbm_bp2.sy_lfr_common_parameters = parameter_dump_packet.sy_lfr_common_parameters; | |||
292 | BP_send( (char *) &packet_sbm_bp2, queue_id_send, |
|
294 | BP_send( (char *) &packet_sbm_bp2, queue_id_send, | |
293 | PACKET_LENGTH_TM_LFR_SCIENCE_SBM_BP2_F1 + PACKET_LENGTH_DELTA, |
|
295 | PACKET_LENGTH_TM_LFR_SCIENCE_SBM_BP2_F1 + PACKET_LENGTH_DELTA, | |
294 | sid ); |
|
296 | sid ); | |
@@ -312,6 +314,7 rtems_task prc1_task( rtems_task_argumen | |||||
312 | // 3) send the BP1 set |
|
314 | // 3) send the BP1 set | |
313 | set_time( packet_norm_bp1.time, (unsigned char *) &incomingMsg->coarseTimeNORM ); |
|
315 | set_time( packet_norm_bp1.time, (unsigned char *) &incomingMsg->coarseTimeNORM ); | |
314 |
set_time( packet_norm_bp1.acquisitionTime, (unsigned char *) &incomingMsg->coarseTimeNORM |
|
316 | set_time( packet_norm_bp1.acquisitionTime, (unsigned char *) &incomingMsg->coarseTimeNORM ); | |
|
317 | packet_norm_bp1.sy_lfr_common_parameters = parameter_dump_packet.sy_lfr_common_parameters; | |||
315 | BP_send( (char *) &packet_norm_bp1, queue_id_send, |
|
318 | BP_send( (char *) &packet_norm_bp1, queue_id_send, | |
316 | PACKET_LENGTH_TM_LFR_SCIENCE_NORM_BP1_F1 + PACKET_LENGTH_DELTA, |
|
319 | PACKET_LENGTH_TM_LFR_SCIENCE_NORM_BP1_F1 + PACKET_LENGTH_DELTA, | |
317 | SID_NORM_BP1_F1 ); |
|
320 | SID_NORM_BP1_F1 ); | |
@@ -322,6 +325,7 rtems_task prc1_task( rtems_task_argumen | |||||
322 | // 2) send the BP2 set |
|
325 | // 2) send the BP2 set | |
323 | set_time( packet_norm_bp2.time, (unsigned char *) &incomingMsg->coarseTimeNORM ); |
|
326 | set_time( packet_norm_bp2.time, (unsigned char *) &incomingMsg->coarseTimeNORM ); | |
324 | set_time( packet_norm_bp2.acquisitionTime, (unsigned char *) &incomingMsg->coarseTimeNORM ); |
|
327 | set_time( packet_norm_bp2.acquisitionTime, (unsigned char *) &incomingMsg->coarseTimeNORM ); | |
|
328 | packet_norm_bp2.sy_lfr_common_parameters = parameter_dump_packet.sy_lfr_common_parameters; | |||
325 | BP_send( (char *) &packet_norm_bp2, queue_id_send, |
|
329 | BP_send( (char *) &packet_norm_bp2, queue_id_send, | |
326 | PACKET_LENGTH_TM_LFR_SCIENCE_NORM_BP2_F1 + PACKET_LENGTH_DELTA, |
|
330 | PACKET_LENGTH_TM_LFR_SCIENCE_NORM_BP2_F1 + PACKET_LENGTH_DELTA, | |
327 | SID_NORM_BP2_F1 ); |
|
331 | SID_NORM_BP2_F1 ); |
@@ -212,6 +212,7 rtems_task prc2_task( rtems_task_argumen | |||||
212 | // 2) send the BP1 set |
|
212 | // 2) send the BP1 set | |
213 | set_time( packet_norm_bp1.time, (unsigned char *) &incomingMsg->coarseTimeNORM ); |
|
213 | set_time( packet_norm_bp1.time, (unsigned char *) &incomingMsg->coarseTimeNORM ); | |
214 | set_time( packet_norm_bp1.acquisitionTime, (unsigned char *) &incomingMsg->coarseTimeNORM ); |
|
214 | set_time( packet_norm_bp1.acquisitionTime, (unsigned char *) &incomingMsg->coarseTimeNORM ); | |
|
215 | packet_norm_bp1.sy_lfr_common_parameters = parameter_dump_packet.sy_lfr_common_parameters; | |||
215 | BP_send( (char *) &packet_norm_bp1, queue_id_send, |
|
216 | BP_send( (char *) &packet_norm_bp1, queue_id_send, | |
216 | PACKET_LENGTH_TM_LFR_SCIENCE_NORM_BP1_F2 + PACKET_LENGTH_DELTA, |
|
217 | PACKET_LENGTH_TM_LFR_SCIENCE_NORM_BP1_F2 + PACKET_LENGTH_DELTA, | |
217 | SID_NORM_BP1_F2 ); |
|
218 | SID_NORM_BP1_F2 ); | |
@@ -224,6 +225,7 rtems_task prc2_task( rtems_task_argumen | |||||
224 | // 2) send the BP2 set |
|
225 | // 2) send the BP2 set | |
225 | set_time( packet_norm_bp2.time, (unsigned char *) &incomingMsg->coarseTimeNORM ); |
|
226 | set_time( packet_norm_bp2.time, (unsigned char *) &incomingMsg->coarseTimeNORM ); | |
226 | set_time( packet_norm_bp2.acquisitionTime, (unsigned char *) &incomingMsg->coarseTimeNORM ); |
|
227 | set_time( packet_norm_bp2.acquisitionTime, (unsigned char *) &incomingMsg->coarseTimeNORM ); | |
|
228 | packet_norm_bp2.sy_lfr_common_parameters = parameter_dump_packet.sy_lfr_common_parameters; | |||
227 | BP_send( (char *) &packet_norm_bp2, queue_id_send, |
|
229 | BP_send( (char *) &packet_norm_bp2, queue_id_send, | |
228 | PACKET_LENGTH_TM_LFR_SCIENCE_NORM_BP2_F2 + PACKET_LENGTH_DELTA, |
|
230 | PACKET_LENGTH_TM_LFR_SCIENCE_NORM_BP2_F2 + PACKET_LENGTH_DELTA, | |
229 | SID_NORM_BP2_F2 ); |
|
231 | SID_NORM_BP2_F2 ); |
@@ -364,7 +364,7 void BP_init_header( bp_packet *packet, | |||||
364 | // DATA FIELD HEADER |
|
364 | // DATA FIELD HEADER | |
365 | packet->spare1_pusVersion_spare2 = 0x10; |
|
365 | packet->spare1_pusVersion_spare2 = 0x10; | |
366 | packet->serviceType = TM_TYPE_LFR_SCIENCE; // service type |
|
366 | packet->serviceType = TM_TYPE_LFR_SCIENCE; // service type | |
367 | packet->serviceSubType = TM_SUBTYPE_LFR_SCIENCE; // service subtype |
|
367 | packet->serviceSubType = TM_SUBTYPE_LFR_SCIENCE_3; // service subtype | |
368 | packet->destinationID = TM_DESTINATION_ID_GROUND; |
|
368 | packet->destinationID = TM_DESTINATION_ID_GROUND; | |
369 | packet->time[0] = 0x00; |
|
369 | packet->time[0] = 0x00; | |
370 | packet->time[1] = 0x00; |
|
370 | packet->time[1] = 0x00; | |
@@ -402,7 +402,7 void BP_init_header_with_spare( bp_packe | |||||
402 | // DATA FIELD HEADER |
|
402 | // DATA FIELD HEADER | |
403 | packet->spare1_pusVersion_spare2 = 0x10; |
|
403 | packet->spare1_pusVersion_spare2 = 0x10; | |
404 | packet->serviceType = TM_TYPE_LFR_SCIENCE; // service type |
|
404 | packet->serviceType = TM_TYPE_LFR_SCIENCE; // service type | |
405 | packet->serviceSubType = TM_SUBTYPE_LFR_SCIENCE; // service subtype |
|
405 | packet->serviceSubType = TM_SUBTYPE_LFR_SCIENCE_3; // service subtype | |
406 | packet->destinationID = TM_DESTINATION_ID_GROUND; |
|
406 | packet->destinationID = TM_DESTINATION_ID_GROUND; | |
407 | // AUXILIARY DATA HEADER |
|
407 | // AUXILIARY DATA HEADER | |
408 | packet->sid = sid; |
|
408 | packet->sid = sid; |
@@ -71,62 +71,62 rtems_task actn_task( rtems_task_argumen | |||||
71 |
|
|
71 | result = action_reset( &TC, queue_snd_id, time ); | |
72 |
|
|
72 | close_action( &TC, result, queue_snd_id ); | |
73 |
|
|
73 | break; | |
74 | // |
|
|||
75 |
|
|
74 | case TC_SUBTYPE_LOAD_COMM: | |
76 |
|
|
75 | result = action_load_common_par( &TC ); | |
77 |
|
|
76 | close_action( &TC, result, queue_snd_id ); | |
78 |
|
|
77 | break; | |
79 | // |
|
|||
80 |
|
|
78 | case TC_SUBTYPE_LOAD_NORM: | |
81 |
|
|
79 | result = action_load_normal_par( &TC, queue_snd_id, time ); | |
82 |
|
|
80 | close_action( &TC, result, queue_snd_id ); | |
83 |
|
|
81 | break; | |
84 | // |
|
|||
85 |
|
|
82 | case TC_SUBTYPE_LOAD_BURST: | |
86 |
|
|
83 | result = action_load_burst_par( &TC, queue_snd_id, time ); | |
87 |
|
|
84 | close_action( &TC, result, queue_snd_id ); | |
88 |
|
|
85 | break; | |
89 | // |
|
|||
90 |
|
|
86 | case TC_SUBTYPE_LOAD_SBM1: | |
91 |
|
|
87 | result = action_load_sbm1_par( &TC, queue_snd_id, time ); | |
92 |
|
|
88 | close_action( &TC, result, queue_snd_id ); | |
93 |
|
|
89 | break; | |
94 | // |
|
|||
95 |
|
|
90 | case TC_SUBTYPE_LOAD_SBM2: | |
96 |
|
|
91 | result = action_load_sbm2_par( &TC, queue_snd_id, time ); | |
97 |
|
|
92 | close_action( &TC, result, queue_snd_id ); | |
98 |
|
|
93 | break; | |
99 | // |
|
|||
100 |
|
|
94 | case TC_SUBTYPE_DUMP: | |
101 |
|
|
95 | result = action_dump_par( queue_snd_id ); | |
102 |
|
|
96 | close_action( &TC, result, queue_snd_id ); | |
103 |
|
|
97 | break; | |
104 | // |
|
|||
105 |
|
|
98 | case TC_SUBTYPE_ENTER: | |
106 |
|
|
99 | result = action_enter_mode( &TC, queue_snd_id ); | |
107 |
|
|
100 | close_action( &TC, result, queue_snd_id ); | |
108 |
|
|
101 | break; | |
109 | // |
|
|||
110 |
|
|
102 | case TC_SUBTYPE_UPDT_INFO: | |
111 |
|
|
103 | result = action_update_info( &TC, queue_snd_id ); | |
112 |
|
|
104 | close_action( &TC, result, queue_snd_id ); | |
113 |
|
|
105 | break; | |
114 | // |
|
|||
115 |
|
|
106 | case TC_SUBTYPE_EN_CAL: | |
116 |
|
|
107 | result = action_enable_calibration( &TC, queue_snd_id, time ); | |
117 |
|
|
108 | close_action( &TC, result, queue_snd_id ); | |
118 |
|
|
109 | break; | |
119 | // |
|
|||
120 |
|
|
110 | case TC_SUBTYPE_DIS_CAL: | |
121 |
|
|
111 | result = action_disable_calibration( &TC, queue_snd_id, time ); | |
122 |
|
|
112 | close_action( &TC, result, queue_snd_id ); | |
123 |
|
|
113 | break; | |
124 | // |
|
114 | case TC_SUBTYPE_LOAD_K: | |
|
115 | result = action_load_kcoefficients( &TC, queue_snd_id, time ); | |||
|
116 | close_action( &TC, result, queue_snd_id ); | |||
|
117 | break; | |||
|
118 | case TC_SUBTYPE_DUMP_K: | |||
|
119 | result = action_dump_kcoefficients( &TC, queue_snd_id, time ); | |||
|
120 | close_action( &TC, result, queue_snd_id ); | |||
|
121 | break; | |||
|
122 | case TC_SUBTYPE_LOAD_FBINS: | |||
|
123 | result = action_load_fbins_mask( &TC, queue_snd_id, time ); | |||
|
124 | close_action( &TC, result, queue_snd_id ); | |||
|
125 | break; | |||
125 |
|
|
126 | case TC_SUBTYPE_UPDT_TIME: | |
126 |
|
|
127 | result = action_update_time( &TC ); | |
127 |
|
|
128 | close_action( &TC, result, queue_snd_id ); | |
128 |
|
|
129 | break; | |
129 | // |
|
|||
130 |
|
|
130 | default: | |
131 |
|
|
131 | break; | |
132 | } |
|
132 | } | |
@@ -167,6 +167,8 int action_enter_mode(ccsdsTelecommandPa | |||||
167 | unsigned int transitionCoarseTime; |
|
167 | unsigned int transitionCoarseTime; | |
168 | unsigned char * bytePosPtr; |
|
168 | unsigned char * bytePosPtr; | |
169 |
|
169 | |||
|
170 | printTaskID(); | |||
|
171 | ||||
170 | bytePosPtr = (unsigned char *) &TC->packetID; |
|
172 | bytePosPtr = (unsigned char *) &TC->packetID; | |
171 |
|
173 | |||
172 | requestedMode = bytePosPtr[ BYTE_POS_CP_MODE_LFR_SET ]; |
|
174 | requestedMode = bytePosPtr[ BYTE_POS_CP_MODE_LFR_SET ]; | |
@@ -669,6 +671,9 int suspend_science_tasks() | |||||
669 |
|
671 | |||
670 | rtems_status_code status; |
|
672 | rtems_status_code status; | |
671 |
|
673 | |||
|
674 | printf("in suspend_science_tasks\n"); | |||
|
675 | printTaskID(); | |||
|
676 | ||||
672 | status = rtems_task_suspend( Task_id[TASKID_AVF0] ); // suspend AVF0 |
|
677 | status = rtems_task_suspend( Task_id[TASKID_AVF0] ); // suspend AVF0 | |
673 | if (status != RTEMS_SUCCESSFUL) |
|
678 | if (status != RTEMS_SUCCESSFUL) | |
674 | { |
|
679 | { | |
@@ -1116,3 +1121,13 void reset_lfr( void ) | |||||
1116 |
|
1121 | |||
1117 | set_lfr_soft_reset( 0 ); |
|
1122 | set_lfr_soft_reset( 0 ); | |
1118 | } |
|
1123 | } | |
|
1124 | ||||
|
1125 | void printTaskID( void ) | |||
|
1126 | { | |||
|
1127 | unsigned int i; | |||
|
1128 | ||||
|
1129 | for (i=0; i<20;i++) | |||
|
1130 | { | |||
|
1131 | printf("ID %d = %d\n", i, (unsigned int) Task_id[i]); | |||
|
1132 | } | |||
|
1133 | } |
@@ -24,7 +24,7 int action_load_common_par(ccsdsTelecomm | |||||
24 | */ |
|
24 | */ | |
25 |
|
25 | |||
26 | parameter_dump_packet.unused0 = TC->dataAndCRC[0]; |
|
26 | parameter_dump_packet.unused0 = TC->dataAndCRC[0]; | |
27 |
parameter_dump_packet. |
|
27 | parameter_dump_packet.sy_lfr_common_parameters = TC->dataAndCRC[1]; | |
28 | set_wfp_data_shaping( ); |
|
28 | set_wfp_data_shaping( ); | |
29 | return LFR_SUCCESSFUL; |
|
29 | return LFR_SUCCESSFUL; | |
30 | } |
|
30 | } | |
@@ -269,6 +269,60 int action_load_sbm2_par(ccsdsTelecomman | |||||
269 | return flag; |
|
269 | return flag; | |
270 | } |
|
270 | } | |
271 |
|
271 | |||
|
272 | int action_load_kcoefficients(ccsdsTelecommandPacket_t *TC, rtems_id queue_id, unsigned char *time) | |||
|
273 | { | |||
|
274 | /** This function updates the LFR registers with the incoming sbm2 parameters. | |||
|
275 | * | |||
|
276 | * @param TC points to the TeleCommand packet that is being processed | |||
|
277 | * @param queue_id is the id of the queue which handles TM related to this execution step | |||
|
278 | * | |||
|
279 | */ | |||
|
280 | ||||
|
281 | int flag; | |||
|
282 | ||||
|
283 | flag = LFR_DEFAULT; | |||
|
284 | ||||
|
285 | send_tm_lfr_tc_exe_not_implemented( TC, queue_id, time ); | |||
|
286 | ||||
|
287 | return flag; | |||
|
288 | } | |||
|
289 | ||||
|
290 | int action_load_fbins_mask(ccsdsTelecommandPacket_t *TC, rtems_id queue_id, unsigned char *time) | |||
|
291 | { | |||
|
292 | /** This function updates the LFR registers with the incoming sbm2 parameters. | |||
|
293 | * | |||
|
294 | * @param TC points to the TeleCommand packet that is being processed | |||
|
295 | * @param queue_id is the id of the queue which handles TM related to this execution step | |||
|
296 | * | |||
|
297 | */ | |||
|
298 | ||||
|
299 | int flag; | |||
|
300 | ||||
|
301 | flag = LFR_DEFAULT; | |||
|
302 | ||||
|
303 | send_tm_lfr_tc_exe_not_implemented( TC, queue_id, time ); | |||
|
304 | ||||
|
305 | return flag; | |||
|
306 | } | |||
|
307 | ||||
|
308 | int action_dump_kcoefficients(ccsdsTelecommandPacket_t *TC, rtems_id queue_id, unsigned char *time) | |||
|
309 | { | |||
|
310 | /** This function updates the LFR registers with the incoming sbm2 parameters. | |||
|
311 | * | |||
|
312 | * @param TC points to the TeleCommand packet that is being processed | |||
|
313 | * @param queue_id is the id of the queue which handles TM related to this execution step | |||
|
314 | * | |||
|
315 | */ | |||
|
316 | ||||
|
317 | int flag; | |||
|
318 | ||||
|
319 | flag = LFR_DEFAULT; | |||
|
320 | ||||
|
321 | send_tm_lfr_tc_exe_not_implemented( TC, queue_id, time ); | |||
|
322 | ||||
|
323 | return flag; | |||
|
324 | } | |||
|
325 | ||||
272 | int action_dump_par( rtems_id queue_id ) |
|
326 | int action_dump_par( rtems_id queue_id ) | |
273 | { |
|
327 | { | |
274 | /** This function dumps the LFR parameters by sending the appropriate TM packet to the dedicated RTEMS message queue. |
|
328 | /** This function dumps the LFR parameters by sending the appropriate TM packet to the dedicated RTEMS message queue. | |
@@ -734,7 +788,7 void init_parameter_dump( void ) | |||||
734 | //****************** |
|
788 | //****************** | |
735 | // COMMON PARAMETERS |
|
789 | // COMMON PARAMETERS | |
736 | parameter_dump_packet.unused0 = DEFAULT_SY_LFR_COMMON0; |
|
790 | parameter_dump_packet.unused0 = DEFAULT_SY_LFR_COMMON0; | |
737 |
parameter_dump_packet. |
|
791 | parameter_dump_packet.sy_lfr_common_parameters = DEFAULT_SY_LFR_COMMON1; | |
738 |
|
792 | |||
739 | //****************** |
|
793 | //****************** | |
740 | // NORMAL PARAMETERS |
|
794 | // NORMAL PARAMETERS |
@@ -1214,7 +1214,7 void set_wfp_data_shaping( void ) | |||||
1214 | // get the parameters for the data shaping [BW SP0 SP1 R0 R1] in sy_lfr_common1 and configure the register |
|
1214 | // get the parameters for the data shaping [BW SP0 SP1 R0 R1] in sy_lfr_common1 and configure the register | |
1215 | // waveform picker : [R1 R0 SP1 SP0 BW] |
|
1215 | // waveform picker : [R1 R0 SP1 SP0 BW] | |
1216 |
|
1216 | |||
1217 |
data_shaping = parameter_dump_packet. |
|
1217 | data_shaping = parameter_dump_packet.sy_lfr_common_parameters; | |
1218 |
|
1218 | |||
1219 | waveform_picker_regs->data_shaping = |
|
1219 | waveform_picker_regs->data_shaping = | |
1220 | ( (data_shaping & 0x10) >> 4 ) // BW |
|
1220 | ( (data_shaping & 0x10) >> 4 ) // BW |
1 | NO CONTENT: file was removed, binary diff hidden |
|
NO CONTENT: file was removed, binary diff hidden |
General Comments 0
You need to be logged in to leave comments.
Login now