diff --git a/.hgsubstate b/.hgsubstate --- a/.hgsubstate +++ b/.hgsubstate @@ -1,2 +1,2 @@ 3081d1f9bb20b2b64a192585337a292a9804e0c5 LFR_basic-parameters -bb9afa759d57093f7646d3be18f4a9923a4cbf84 header/lfr_common_headers +a0ca246cc2057880086d028aab3cf35be244efbc header/lfr_common_headers diff --git a/FSW-qt/fsw-qt.pro b/FSW-qt/fsw-qt.pro --- a/FSW-qt/fsw-qt.pro +++ b/FSW-qt/fsw-qt.pro @@ -2,7 +2,7 @@ TEMPLATE = app # CONFIG += console v8 sim # CONFIG options = verbose *** boot_messages *** debug_messages *** cpu_usage_report *** stack_report *** vhdl_dev *** debug_tch # lpp_dpu_destid -CONFIG += console verbose lpp_dpu_destid +CONFIG += console verbose lpp_dpu_destid stack_report CONFIG -= qt include(./sparc.pri) diff --git a/header/fsw_init.h b/header/fsw_init.h --- a/header/fsw_init.h +++ b/header/fsw_init.h @@ -18,6 +18,7 @@ extern rtems_name Task_name[20]; /* array of task names */ extern rtems_id Task_id[20]; /* array of task ids */ +extern unsigned char pa_bia_status_info; // RTEMS TASKS rtems_task Init( rtems_task_argument argument); diff --git a/header/fsw_misc.h b/header/fsw_misc.h --- a/header/fsw_misc.h +++ b/header/fsw_misc.h @@ -38,6 +38,7 @@ void get_temperatures( unsigned char *te void get_v_e1_e2_f3( unsigned char *spacecraft_potential ); void get_cpu_load( unsigned char *resource_statistics ); void set_hk_lfr_sc_potential_flag( bool state ); +void set_hk_lfr_mag_fields_flag( bool state ); void set_hk_lfr_calib_enable( bool state ); diff --git a/src/fsw_globals.c b/src/fsw_globals.c --- a/src/fsw_globals.c +++ b/src/fsw_globals.c @@ -29,6 +29,7 @@ rtems_id Task_id[20]; /* arra int fdSPW = 0; int fdUART = 0; unsigned char lfrCurrentMode; +unsigned char pa_bia_status_info; // WAVEFORMS GLOBAL VARIABLES // 2048 * 3 * 4 + 2 * 4 = 24576 + 8 bytes = 24584 // 97 * 256 = 24832 => delta = 248 bytes = 62 words diff --git a/src/fsw_init.c b/src/fsw_init.c --- a/src/fsw_init.c +++ b/src/fsw_init.c @@ -138,6 +138,7 @@ rtems_task Init( rtems_task_argument ign init_k_coefficients_prc0(); init_k_coefficients_prc1(); init_k_coefficients_prc2(); + pa_bia_status_info = 0x00; // waveform picker initialization WFP_init_rings(); // initialize the waveform rings @@ -248,6 +249,8 @@ rtems_task Init( rtems_task_argument ign BOOT_PRINTF("delete INIT\n") + set_hk_lfr_sc_potential_flag( true ); + status = rtems_task_delete(RTEMS_SELF); } diff --git a/src/fsw_misc.c b/src/fsw_misc.c --- a/src/fsw_misc.c +++ b/src/fsw_misc.c @@ -538,6 +538,18 @@ void set_hk_lfr_sc_potential_flag( bool } } +void set_hk_lfr_mag_fields_flag( bool state ) +{ + if (state == true) + { + housekeeping_packet.lfr_status_word[1] = housekeeping_packet.lfr_status_word[1] | 0x20; // [0010 0000] + } + else + { + housekeeping_packet.lfr_status_word[1] = housekeeping_packet.lfr_status_word[1] & 0xd7; // [1101 1111] + } +} + void set_hk_lfr_calib_enable( bool state ) { if (state == true) @@ -549,3 +561,4 @@ void set_hk_lfr_calib_enable( bool state housekeeping_packet.lfr_status_word[1] = housekeeping_packet.lfr_status_word[1] & 0xf7; // [1111 0111] } } + diff --git a/src/fsw_spacewire.c b/src/fsw_spacewire.c --- a/src/fsw_spacewire.c +++ b/src/fsw_spacewire.c @@ -814,6 +814,7 @@ int spw_send_waveform_CWF( ring_node *ri header->packetLength[0] = (unsigned char) (TM_LEN_SCI_CWF_336 >> 8); header->packetLength[1] = (unsigned char) (TM_LEN_SCI_CWF_336 ); + header->hkBIA = pa_bia_status_info; header->sy_lfr_common_parameters = parameter_dump_packet.sy_lfr_common_parameters; header->blkNr[0] = (unsigned char) (BLK_NR_CWF >> 8); header->blkNr[1] = (unsigned char) (BLK_NR_CWF ); @@ -897,6 +898,7 @@ int spw_send_waveform_SWF( ring_node *ri dataPtr = (int*) ring_node_to_send->buffer_address; sid = ring_node_to_send->sid; + header->hkBIA = pa_bia_status_info; header->sy_lfr_common_parameters = parameter_dump_packet.sy_lfr_common_parameters; for (i=0; i<7; i++) // send waveform @@ -988,6 +990,7 @@ int spw_send_waveform_CWF3_light( ring_n header->packetLength[0] = (unsigned char) (TM_LEN_SCI_CWF_672 >> 8); header->packetLength[1] = (unsigned char) (TM_LEN_SCI_CWF_672 ); + header->hkBIA = pa_bia_status_info; header->sy_lfr_common_parameters = parameter_dump_packet.sy_lfr_common_parameters; header->blkNr[0] = (unsigned char) (BLK_NR_CWF_SHORT_F3 >> 8); header->blkNr[1] = (unsigned char) (BLK_NR_CWF_SHORT_F3 ); @@ -1049,6 +1052,7 @@ void spw_send_asm_f0( ring_node *ring_no coarseTime = ring_node_to_send->coarseTime; fineTime = ring_node_to_send->fineTime; + header->biaStatusInfo = pa_bia_status_info; header->sy_lfr_common_parameters = parameter_dump_packet.sy_lfr_common_parameters; for (i=0; i<3; i++) @@ -1128,6 +1132,7 @@ void spw_send_asm_f1( ring_node *ring_no coarseTime = ring_node_to_send->coarseTime; fineTime = ring_node_to_send->fineTime; + header->biaStatusInfo = pa_bia_status_info; header->sy_lfr_common_parameters = parameter_dump_packet.sy_lfr_common_parameters; for (i=0; i<3; i++) @@ -1207,6 +1212,7 @@ void spw_send_asm_f2( ring_node *ring_no coarseTime = ring_node_to_send->coarseTime; fineTime = ring_node_to_send->fineTime; + header->biaStatusInfo = pa_bia_status_info; header->sy_lfr_common_parameters = parameter_dump_packet.sy_lfr_common_parameters; for (i=0; i<3; i++) diff --git a/src/tc_handler.c b/src/tc_handler.c --- a/src/tc_handler.c +++ b/src/tc_handler.c @@ -253,6 +253,17 @@ int action_update_info(ccsdsTelecommandP housekeeping_packet.hk_lfr_update_info_tc_cnt[1] = (unsigned char) (val); } + // pa_bia_status_info + // => pa_bia_mode_mux_set 3 bits + // => pa_bia_mode_hv_enabled 1 bit + // => pa_bia_mode_bias1_enabled 1 bit + // => pa_bia_mode_bias2_enabled 1 bit + // => pa_bia_mode_bias3_enabled 1 bit + // => pa_bia_on_off (cp_dpu_bias_on_off) + pa_bia_status_info = bytePosPtr[ BYTE_POS_UPDATE_INFO_PARAMETERS_SET2 ] & 0xfe; // [1111 1110] + pa_bia_status_info = pa_bia_status_info + | (bytePosPtr[ BYTE_POS_UPDATE_INFO_PARAMETERS_SET1 ] & 0x1); + result = status; return result;