##// END OF EJS Templates
R3 updates. TC handlers added for the new telecommands:...
paul -
r192:a0b224a4fc7c VHDL_0_1_28
parent child
Show More
@@ -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=2 # major
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=2 # patch
14 DEFINES += SW_VERSION_N3=0 # patch
15 DEFINES += SW_VERSION_N4=3 # internal
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 result = action_reset( &TC, queue_snd_id, time );
71 result = action_reset( &TC, queue_snd_id, time );
72 close_action( &TC, result, queue_snd_id );
72 close_action( &TC, result, queue_snd_id );
73 break;
73 break;
74 //
75 case TC_SUBTYPE_LOAD_COMM:
74 case TC_SUBTYPE_LOAD_COMM:
76 result = action_load_common_par( &TC );
75 result = action_load_common_par( &TC );
77 close_action( &TC, result, queue_snd_id );
76 close_action( &TC, result, queue_snd_id );
78 break;
77 break;
79 //
80 case TC_SUBTYPE_LOAD_NORM:
78 case TC_SUBTYPE_LOAD_NORM:
81 result = action_load_normal_par( &TC, queue_snd_id, time );
79 result = action_load_normal_par( &TC, queue_snd_id, time );
82 close_action( &TC, result, queue_snd_id );
80 close_action( &TC, result, queue_snd_id );
83 break;
81 break;
84 //
85 case TC_SUBTYPE_LOAD_BURST:
82 case TC_SUBTYPE_LOAD_BURST:
86 result = action_load_burst_par( &TC, queue_snd_id, time );
83 result = action_load_burst_par( &TC, queue_snd_id, time );
87 close_action( &TC, result, queue_snd_id );
84 close_action( &TC, result, queue_snd_id );
88 break;
85 break;
89 //
90 case TC_SUBTYPE_LOAD_SBM1:
86 case TC_SUBTYPE_LOAD_SBM1:
91 result = action_load_sbm1_par( &TC, queue_snd_id, time );
87 result = action_load_sbm1_par( &TC, queue_snd_id, time );
92 close_action( &TC, result, queue_snd_id );
88 close_action( &TC, result, queue_snd_id );
93 break;
89 break;
94 //
95 case TC_SUBTYPE_LOAD_SBM2:
90 case TC_SUBTYPE_LOAD_SBM2:
96 result = action_load_sbm2_par( &TC, queue_snd_id, time );
91 result = action_load_sbm2_par( &TC, queue_snd_id, time );
97 close_action( &TC, result, queue_snd_id );
92 close_action( &TC, result, queue_snd_id );
98 break;
93 break;
99 //
100 case TC_SUBTYPE_DUMP:
94 case TC_SUBTYPE_DUMP:
101 result = action_dump_par( queue_snd_id );
95 result = action_dump_par( queue_snd_id );
102 close_action( &TC, result, queue_snd_id );
96 close_action( &TC, result, queue_snd_id );
103 break;
97 break;
104 //
105 case TC_SUBTYPE_ENTER:
98 case TC_SUBTYPE_ENTER:
106 result = action_enter_mode( &TC, queue_snd_id );
99 result = action_enter_mode( &TC, queue_snd_id );
107 close_action( &TC, result, queue_snd_id );
100 close_action( &TC, result, queue_snd_id );
108 break;
101 break;
109 //
110 case TC_SUBTYPE_UPDT_INFO:
102 case TC_SUBTYPE_UPDT_INFO:
111 result = action_update_info( &TC, queue_snd_id );
103 result = action_update_info( &TC, queue_snd_id );
112 close_action( &TC, result, queue_snd_id );
104 close_action( &TC, result, queue_snd_id );
113 break;
105 break;
114 //
115 case TC_SUBTYPE_EN_CAL:
106 case TC_SUBTYPE_EN_CAL:
116 result = action_enable_calibration( &TC, queue_snd_id, time );
107 result = action_enable_calibration( &TC, queue_snd_id, time );
117 close_action( &TC, result, queue_snd_id );
108 close_action( &TC, result, queue_snd_id );
118 break;
109 break;
119 //
120 case TC_SUBTYPE_DIS_CAL:
110 case TC_SUBTYPE_DIS_CAL:
121 result = action_disable_calibration( &TC, queue_snd_id, time );
111 result = action_disable_calibration( &TC, queue_snd_id, time );
122 close_action( &TC, result, queue_snd_id );
112 close_action( &TC, result, queue_snd_id );
123 break;
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 case TC_SUBTYPE_UPDT_TIME:
126 case TC_SUBTYPE_UPDT_TIME:
126 result = action_update_time( &TC );
127 result = action_update_time( &TC );
127 close_action( &TC, result, queue_snd_id );
128 close_action( &TC, result, queue_snd_id );
128 break;
129 break;
129 //
130 default:
130 default:
131 break;
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.bw_sp0_sp1_r0_r1 = TC->dataAndCRC[1];
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.bw_sp0_sp1_r0_r1 = DEFAULT_SY_LFR_COMMON1;
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.bw_sp0_sp1_r0_r1;
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