diff --git a/header/tc_load_dump_parameters.h b/header/tc_load_dump_parameters.h --- a/header/tc_load_dump_parameters.h +++ b/header/tc_load_dump_parameters.h @@ -92,6 +92,7 @@ int check_sy_lfr_filter_parameters( ccsd int set_sy_lfr_kcoeff(ccsdsTelecommandPacket_t *TC , rtems_id queue_id); void copyFloatByChar( unsigned char *destination, unsigned char *source ); void copyInt32ByChar( unsigned char *destination, unsigned char *source ); +void copyInt16ByChar( unsigned char *destination, unsigned char *source ); void floatToChar( float value, unsigned char* ptr); void init_parameter_dump( void ); diff --git a/src/fsw_misc.c b/src/fsw_misc.c --- a/src/fsw_misc.c +++ b/src/fsw_misc.c @@ -408,7 +408,7 @@ rtems_task avgv_task(rtems_task_argument if (k == (MOVING_AVERAGE-1)) { k = 0; - printf("tick\n"); + PRINTF("tick\n"); } else { diff --git a/src/fsw_spacewire.c b/src/fsw_spacewire.c --- a/src/fsw_spacewire.c +++ b/src/fsw_spacewire.c @@ -167,7 +167,7 @@ rtems_task recv_task( rtems_task_argumen } else { estimatedPacketLength = (unsigned int) (len - CCSDS_TC_TM_PACKET_OFFSET - PROTID_RES_APP); // => -3 is for Prot ID, Reserved and User App bytes -// PRINTF1("incoming TC with Length (byte): %d\n", len - 3); + PRINTF1("incoming TC with Length (byte): %d\n", len - 3); currentTC_LEN_RCV[ 0 ] = (unsigned char) (estimatedPacketLength >> SHIFT_1_BYTE); currentTC_LEN_RCV[ 1 ] = (unsigned char) (estimatedPacketLength ); // CHECK THE TC diff --git a/src/tc_handler.c b/src/tc_handler.c --- a/src/tc_handler.c +++ b/src/tc_handler.c @@ -177,17 +177,11 @@ int action_enter_mode(ccsdsTelecommandPa unsigned int transitionCoarseTime; unsigned char * bytePosPtr; - printf("(0)\n"); bytePosPtr = (unsigned char *) &TC->packetID; - printf("(1)\n"); requestedMode = bytePosPtr[ BYTE_POS_CP_MODE_LFR_SET ]; - printf("(2)\n"); copyInt32ByChar( (char*) &transitionCoarseTime, &bytePosPtr[ BYTE_POS_CP_LFR_ENTER_MODE_TIME ] ); - printf("(3)\n"); transitionCoarseTime = transitionCoarseTime & COARSE_TIME_MASK; - printf("(4)\n"); status = check_mode_value( requestedMode ); - printf("(5)\n"); if ( status != LFR_SUCCESSFUL ) // the mode value is inconsistent { @@ -684,8 +678,6 @@ int enter_mode_normal( unsigned int tran status = RTEMS_UNSATISFIED; - printf("hop\n"); - switch( lfrCurrentMode ) { case LFR_MODE_STANDBY: 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 @@ -1318,7 +1318,6 @@ int set_sy_lfr_kcoeff( ccsdsTelecommandP unsigned int kcoeff; unsigned short sy_lfr_kcoeff_frequency; unsigned short bin; - unsigned short *freqPtr; float *kcoeffPtr_norm; float *kcoeffPtr_sbm; int status; @@ -1327,14 +1326,14 @@ int set_sy_lfr_kcoeff( ccsdsTelecommandP unsigned char *kcoeffSbmPtr_a; unsigned char *kcoeffSbmPtr_b; - status = LFR_SUCCESSFUL; - + sy_lfr_kcoeff_frequency = 0; + bin = 0; kcoeffPtr_norm = NULL; kcoeffPtr_sbm = NULL; - bin = 0; + status = LFR_SUCCESSFUL; - freqPtr = (unsigned short *) &TC->dataAndCRC[DATAFIELD_POS_SY_LFR_KCOEFF_FREQUENCY]; - sy_lfr_kcoeff_frequency = *freqPtr; + // copy the value of the frequency byte by byte DO NOT USE A SHORT* POINTER + copyInt16ByChar( (unsigned char*) &sy_lfr_kcoeff_frequency, &TC->dataAndCRC[DATAFIELD_POS_SY_LFR_KCOEFF_FREQUENCY] ); if ( sy_lfr_kcoeff_frequency >= NB_BINS_COMPRESSED_SM ) { @@ -1396,7 +1395,7 @@ int set_sy_lfr_kcoeff( ccsdsTelecommandP } } -// print_k_coeff(); + //print_k_coeff(); return status; } @@ -1417,6 +1416,12 @@ void copyInt32ByChar( unsigned char *des destination[BYTE_3] = source[BYTE_3]; } +void copyInt16ByChar( unsigned char *destination, unsigned char *source ) +{ + destination[BYTE_0] = source[BYTE_0]; + destination[BYTE_1] = source[BYTE_1]; +} + void floatToChar( float value, unsigned char* ptr) { unsigned char* valuePtr;