fix keywords updating from permanent and current list

This commit is contained in:
Timur A. Fatkhullin 2024-12-24 18:10:56 +03:00
parent ea9b099d81
commit 69bba48ce1

View File

@ -327,11 +327,16 @@ void RaptorEagleCCD::AcquisitionProcess::start(const std::shared_ptr<acq_params_
} }
// permanent keywords (may update keywords from template file!) // permanent keywords (may update keywords from template file!)
char card[80]; char card[81];
char kname[8]; char kname[9] = " ";
int k_type; int k_type;
for (auto& s : _manager->_permanentFitsKeywords) { if (_acqParams->permanentKeywords.size()) {
_manager->logDebug("Copy {} permanent keywords", _acqParams->permanentKeywords.size());
} else {
_manager->logDebug("There is no one permanent keyword! Skip!");
}
for (auto& s : _acqParams->permanentKeywords) {
fits_parse_template(s.data(), card, &k_type, &status); fits_parse_template(s.data(), card, &k_type, &status);
if (status) { // ignore possible errors if (status) { // ignore possible errors
fits_get_errstatus(status, err_str); fits_get_errstatus(status, err_str);
@ -346,11 +351,29 @@ void RaptorEagleCCD::AcquisitionProcess::start(const std::shared_ptr<acq_params_
kname[i] = card[i]; kname[i] = card[i];
} }
} }
_manager->logTrace("Try to update [{}] FITS card (name = '{}')", card, kname);
fits_update_card(fitsFilePtr, kname, card, &status); fits_update_card(fitsFilePtr, kname, card, &status);
if (status) {
fits_get_errstatus(status, err_str);
_manager->logWarn(
"An error occured while updating FITS card (name = '{}') (err = {}, msg = {})! Skip!", kname,
status, err_str);
} else {
_manager->logTrace("The FITS card (name = '{}') was updated successfully", kname);
}
} }
// keyword from user (may update template file and permanent keywords!) // keyword from user (may update template file and permanent keywords!)
for (auto& s : _manager->_currentFitsKeywords) { if (_acqParams->currentKeywords.size()) {
_manager->logDebug("Copy {} current keywords", _acqParams->currentKeywords.size());
} else {
_manager->logDebug("There is no one current keyword! Skip!");
}
for (auto& s : _acqParams->currentKeywords) {
fits_parse_template(s.data(), card, &k_type, &status); fits_parse_template(s.data(), card, &k_type, &status);
if (status) { // ignore possible errors if (status) { // ignore possible errors
fits_get_errstatus(status, err_str); fits_get_errstatus(status, err_str);
@ -365,7 +388,19 @@ void RaptorEagleCCD::AcquisitionProcess::start(const std::shared_ptr<acq_params_
kname[i] = card[i]; kname[i] = card[i];
} }
} }
_manager->logTrace("Try to update [{}] FITS card (name = '{}')", card, kname);
fits_update_card(fitsFilePtr, kname, card, &status); fits_update_card(fitsFilePtr, kname, card, &status);
if (status) {
fits_get_errstatus(status, err_str);
_manager->logWarn(
"An error occured while updating FITS card (name = '{}') (err = {}, msg = {})! Skip!", kname,
status, err_str);
} else {
_manager->logTrace("The FITS card (name = '{}') was updated successfully", kname);
}
} }
} }