##// END OF EJS Templates
version 2.3 : bug affectation initiale des octets 7 et 9 de BP1 corrigé
version 2.3 : bug affectation initiale des octets 7 et 9 de BP1 corrigé

File last commit:

r21:3081d1f9bb20 TCH
r21:3081d1f9bb20 TCH
Show More
basic_parameters.c
184 lines | 8.2 KiB | text/x-c | CLexer
/ basic_parameters.c
version 2.0 pour la R3 + modif de init_coefficients
r17 // In the frame of RPW LFR Sofware ICD Issue1 Rev8 (05/07/2013) => R2 FSW
version 1.1 qui prends en compte les modifs de Paul (cependant question des short int à faire encore ...)
r5 // version 1.0: 31/07/2013
// version 1.1: 02/04/2014
version 1.2 qui règle le problème d'alignement mémoire pour BP1 (pour BP2 plus tard ...)
r6 // version 1.2: 30/04/2014
version 1.3 qui finalise la version 1.2 (pb d'alignement mémoire réglé pour BP1 et BP2)...
r7 // version 1.3: 02/05/2014
version 1.5 qui passe le tableau des k-coefficients d'intercalibration en paramètre de la fonction BP1_set....
r12 // version 1.4: 16/05/2014
// version 1.5: 20/05/2014
version 1.6 identique à la version 1.5 pour les calculs mais réorganise les fichiers pour séparer ce qui est du ressort du local de ce qui est proprement soft de vol
r13 // version 1.6: 19/12/2014
version 1.7 qui prend en compte les modifs de Paul (entêtes) + correction erreurs...
r15 // version 1.7: 15/01/2015 (modifs de Paul + correction erreurs qui se compensaient (LSB <=> MSB + indices [0,2] <=> [1,3])
version 2.0 pour la R3 + modif de init_coefficients
r17 // version 1.8: 02/02/2015 (gestion des divisions par zéro)
// In the frame of RPW LFR Sofware ICD Issue3 Rev6 (27/01/2015) => R3 FSW
// version 2.0: 19/06/2015
Version 2.1: répond aux remarques de Pauls (Task #446: BP1 BP2 pour release 3)
r18 // version 2.1: 22/06/2015 (modifs de Paul)
idem + maintien des declarations dans le .h
r20 // version 2.2: 23/06/2015 (modifs de l'ordre de déclaration/définition de init_k_coefficients dans basic_parameters.c ... + maintien des declarations dans le .h)
version 2.3 : bug affectation initiale des octets 7 et 9 de BP1 corrigé
r21 // version 2.3: 01/07/2015 (affectation initiale des octets 7 et 9 dans les BP1 corrigée ...)
version 1.7 qui prend en compte les modifs de Paul (entêtes) + correction erreurs...
r15
version 2.0 pour la R3 + modif de init_coefficients
r17 #include <stdio.h>
version 1.6 identique à la version 1.5 pour les calculs mais réorganise les fichiers pour séparer ce qui est du ressort du local de ce qui est proprement soft de vol
r13 #include <stdint.h>
version 2.2 : déclaration/définition de init_k_coefficients dans basic_parameters.c à la fin ...
r19
version 1.6 suite a
r14 #include "basic_parameters_params.h"
version 1.6 identique à la version 1.5 pour les calculs mais réorganise les fichiers pour séparer ce qui est du ressort du local de ce qui est proprement soft de vol
r13
version 2.0 pour la R3 + modif de init_coefficients
r17 void init_k_coefficients_f0(float *k_coefficients,
unsigned char nb_binscompressed_matrix )
{
uint8_t i; // 8 bits unsigned
version 1.7 qui prend en compte les modifs de Paul (entêtes) + correction erreurs...
r15 for(i=0; i<nb_binscompressed_matrix; i++){
k_coefficients[i*NB_K_COEFF_PER_BIN+K44_PE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K55_PE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K45_PE_RE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K45_PE_IM] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K14_SX_RE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K14_SX_IM] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K15_SX_RE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K15_SX_IM] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K24_SX_RE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K24_SX_IM] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K25_SX_RE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K25_SX_IM] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K34_SX_RE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K34_SX_IM] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K35_SX_RE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K35_SX_IM] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K24_NY_RE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K24_NY_IM] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K25_NY_RE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K25_NY_IM] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K34_NY_RE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K34_NY_IM] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K35_NY_RE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K35_NY_IM] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K24_NZ_RE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K24_NZ_IM] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K25_NZ_RE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K25_NZ_IM] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K34_NZ_RE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K34_NZ_IM] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K35_NZ_RE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K35_NZ_IM] = 1;
version 1.6 identique à la version 1.5 pour les calculs mais réorganise les fichiers pour séparer ce qui est du ressort du local de ce qui est proprement soft de vol
r13 }
version 2.0 pour la R3 + modif de init_coefficients
r17
version 1.6 identique à la version 1.5 pour les calculs mais réorganise les fichiers pour séparer ce qui est du ressort du local de ce qui est proprement soft de vol
r13 }
version 2.0 pour la R3 + modif de init_coefficients
r17
void init_k_coefficients_f1(float *k_coefficients,
unsigned char nb_binscompressed_matrix )
{
uint8_t i; // 8 bits unsigned
for(i=0; i<nb_binscompressed_matrix; i++){
k_coefficients[i*NB_K_COEFF_PER_BIN+K44_PE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K55_PE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K45_PE_RE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K45_PE_IM] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K14_SX_RE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K14_SX_IM] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K15_SX_RE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K15_SX_IM] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K24_SX_RE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K24_SX_IM] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K25_SX_RE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K25_SX_IM] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K34_SX_RE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K34_SX_IM] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K35_SX_RE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K35_SX_IM] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K24_NY_RE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K24_NY_IM] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K25_NY_RE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K25_NY_IM] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K34_NY_RE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K34_NY_IM] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K35_NY_RE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K35_NY_IM] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K24_NZ_RE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K24_NZ_IM] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K25_NZ_RE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K25_NZ_IM] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K34_NZ_RE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K34_NZ_IM] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K35_NZ_RE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K35_NZ_IM] = 1;
}
}
void init_k_coefficients_f2(float *k_coefficients,
unsigned char nb_binscompressed_matrix )
{
uint8_t i; // 8 bits unsigned
for(i=0; i<nb_binscompressed_matrix; i++){
k_coefficients[i*NB_K_COEFF_PER_BIN+K44_PE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K55_PE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K45_PE_RE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K45_PE_IM] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K14_SX_RE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K14_SX_IM] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K15_SX_RE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K15_SX_IM] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K24_SX_RE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K24_SX_IM] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K25_SX_RE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K25_SX_IM] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K34_SX_RE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K34_SX_IM] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K35_SX_RE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K35_SX_IM] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K24_NY_RE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K24_NY_IM] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K25_NY_RE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K25_NY_IM] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K34_NY_RE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K34_NY_IM] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K35_NY_RE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K35_NY_IM] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K24_NZ_RE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K24_NZ_IM] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K25_NZ_RE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K25_NZ_IM] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K34_NZ_RE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K34_NZ_IM] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K35_NZ_RE] = 1;
k_coefficients[i*NB_K_COEFF_PER_BIN+K35_NZ_IM] = 1;
}
}
version 2.2 : déclaration/définition de init_k_coefficients dans basic_parameters.c à la fin ...
r19 void init_k_coefficients(float *k_coefficients,
unsigned char nb_binscompressed_matrix )
{
switch (nb_binscompressed_matrix)
{
case NB_BINS_COMPRESSED_MATRIX_f0:
#ifdef DEBUG_TCH
printf("F0 data: initialization of the intercalibration k-coefficients\n");
#endif
init_k_coefficients_f0(k_coefficients, nb_binscompressed_matrix);
break;
version 2.0 pour la R3 + modif de init_coefficients
r17
version 2.2 : déclaration/définition de init_k_coefficients dans basic_parameters.c à la fin ...
r19 case NB_BINS_COMPRESSED_MATRIX_f1:
#ifdef DEBUG_TCH
printf("F1 data: initialization of the intercalibration k-coefficients\n");
#endif
init_k_coefficients_f1(k_coefficients, nb_binscompressed_matrix);
break;
case NB_BINS_COMPRESSED_MATRIX_f2:
#ifdef DEBUG_TCH
printf("F2 data: initialization of the intercalibration k-coefficients\n");
#endif
init_k_coefficients_f2(k_coefficients, nb_binscompressed_matrix);
break;
default:
#ifdef DEBUG_TCH
printf("there is a problème !!?\n");
#endif
break;
}
}