Project

General

Profile

Actions

Task #517

closed

Vérification des températures

Added by Veronique bouzid over 6 years ago. Updated over 6 years ago.

Status:
Closed
Priority:
Normal
Category:
-
Target version:
-
Start date:
29/09/2015
Due date:
% Done:

0%

Estimated time:
revision:

Description

J ai demandé à Paul comment calculer les temperatures contenues dans les TM_LFR_HK.

3 champs
- HK_LFR_TEMP_SCM
- HK_LFR_TEMP_PCB
- HK_LFR_TEMP_FPGA

Voici sa réponse
Deux solutions: soit tu fais une vérification par toi même et dans ce cas, il faut regarder sur les schémas de la carte sur lesquels Alexis a glissé des plots dont on peut déduire les formules (tu peux lui demander de l'aide si t'as pas peur). Soit tu me fais confiance et dans le soft lfrsgse, la fonctino qui fait ça est la suivante:

void HKDisplay::update_temperatures(Packet_TM_LFR_HK_t *housekeepingPacket) {
short temp_scm;
short temp_pcb;
short temp_fpga;
float Tscm;
float Tpcb;
float Tfpga;

temp_scm  = (short) (housekeepingPacket->hk_lfr_temp_scm[0] << 8)
+ housekeepingPacket->hk_lfr_temp_scm[1];
temp_pcb = (short) (housekeepingPacket->hk_lfr_temp_pcb[0] << 8)
+ housekeepingPacket->hk_lfr_temp_pcb[1];
temp_fpga = (short) (housekeepingPacket->hk_lfr_temp_fpga[0] << 8)
+ housekeepingPacket->hk_lfr_temp_fpga[1];
Tscm  = ( (float) temp_scm) * 1.4 / 16384 * 100 / 0.8 + 115;
Tpcb = ( (float) temp_pcb) * 1.4 / 16384 * 50 / 0.8 + 37.5;
Tfpga = ( (float) temp_fpga)* 1.4 / 16384 * 50 / 0.8 + 37.5;
hk_lfr_temp_scm->setText( "temp_scm: "  + QString::number( temp_scm  )
+ " (" + QString::number( Tscm, 'f', 1 ) + " °C)");
hk_lfr_temp_pcb->setText( "temp_pcb: " + QString::number( temp_pcb )
+ " (" + QString::number( Tpcb, 'f', 1 ) + " °C)");
hk_lfr_temp_fpga->setText("temp_fpga: " + QString::number( temp_fpga )
+ " (" + QString::number( Tfpga, 'f', 1 ) + " °C)");
}

En ce qui concerne la temperature des SCM, cela ne peut etre fait par pas de sensors.

Actions #1

Updated by Veronique bouzid over 6 years ago

  • Status changed from New to Closed

J ai crée une fonction convert_temp. Elle est intégrée dans le fichier /opt/VALIDATION_R3/lfrverif/common/miscellaneous/fun_misc.py
Il faut importer la bibliotheque ctypes

Voici le code
  1. Conversion temperatures in degree
    def convert_temp (tscm,tpcb,tfpga):
itscm=c_short (tscm)
  1. we use the value attribue
    rtscm = itscm.value * 1.4 / 16384.0 * 100.0 / 0.8 + 115.0
itpcb=c_short (tpcb)
rtpcb=itpcb.value * 1.4 / 16384.0 * 50 / 0.8 + 37.5
itfpga=c_short (tfpga)
rtfpga=itfpga.value * 1.4 / 16384.0 * 50 / 0.8 + 37.5
tab_temp = [rtscm,rtpcb,rtfpga]
return tab_temp

Maintenant dans nos fichiers Detail.txt , les temperatures s'affichent en deg alors qu'auparavant on affiichait les 16bits du champ.
HK_LFR_TEMP_SCM=57.75degC, HK_LFR_TEMP_PCB=18.41degC, HK_LFR_TEMP_FPGA=21.45degC,
Seules HK_LFR_TEMP_PCB et HK_LFR_TEMP_FPGA sont significatives.

Actions

Also available in: Atom PDF