# HG changeset patch # User paul # Date 2014-06-12 05:59:56 # Node ID 39badd8e48259ab9e4fa24d9c692cf1a87b34279 # Parent f42e189444edea05419c4c2e5c11fb0b7ed9fef8 Bug #167 diff --git a/src/tc_load_dump_parameters.c b/src/tc_load_dump_parameters.c --- a/src/tc_load_dump_parameters.c +++ b/src/tc_load_dump_parameters.c @@ -101,6 +101,20 @@ int action_load_normal_par(ccsdsTelecomm } } + //**************************************************************** + // check the consistency between sy_lfr_n_bp_p0 and sy_lfr_n_bp_p1 + if (flag == LFR_SUCCESSFUL) + { + sy_lfr_n_bp_p0 = TC->dataAndCRC[ DATAFIELD_POS_SY_LFR_N_BP_P0 ]; + sy_lfr_n_bp_p1 = TC->dataAndCRC[ DATAFIELD_POS_SY_LFR_N_BP_P1 ]; + aux = ( (float ) sy_lfr_n_bp_p1 / sy_lfr_n_bp_p0 ) - floor(sy_lfr_n_bp_p1 / sy_lfr_n_bp_p0); + if (aux != 0) + { + status = send_tm_lfr_tc_exe_inconsistent( TC, queue_id, DATAFIELD_POS_SY_LFR_N_BP_P1+10, sy_lfr_n_bp_p1 ); + flag = LFR_DEFAULT; + } + } + //*************** // sy_lfr_n_bp_p1 if (flag == LFR_SUCCESSFUL) @@ -488,10 +502,21 @@ int set_sy_lfr_n_bp_p0( ccsdsTelecommand */ int status; + unsigned char val; status = LFR_SUCCESSFUL; - parameter_dump_packet.sy_lfr_n_bp_p0 = TC->dataAndCRC[ DATAFIELD_POS_SY_LFR_N_BP_P0 ]; + val = TC->dataAndCRC[ DATAFIELD_POS_SY_LFR_N_BP_P0 ]; + + if (val < SY_LFR_N_BP_P0) + { + status = send_tm_lfr_tc_exe_inconsistent( TC, queue_id, DATAFIELD_POS_SY_LFR_N_BP_P0+10, val ); + status = WRONG_APP_DATA; + } + else + { + parameter_dump_packet.sy_lfr_n_bp_p0 = val; + } return status; } @@ -506,10 +531,21 @@ int set_sy_lfr_n_bp_p1(ccsdsTelecommandP */ int status; + unsigned char val; status = LFR_SUCCESSFUL; - parameter_dump_packet.sy_lfr_n_bp_p1 = TC->dataAndCRC[ DATAFIELD_POS_SY_LFR_N_BP_P1 ]; + val = TC->dataAndCRC[ DATAFIELD_POS_SY_LFR_N_BP_P1 ]; + + if (val < SY_LFR_N_BP_P1) + { + status = send_tm_lfr_tc_exe_inconsistent( TC, queue_id, DATAFIELD_POS_SY_LFR_N_BP_P1+10, val ); + status = WRONG_APP_DATA; + } + else + { + parameter_dump_packet.sy_lfr_n_bp_p1 = val; + } return status; }