From 0206533211352a1c10bb188a754e4c61c2eb2967 Mon Sep 17 00:00:00 2001 From: MALFREYT <alexandre.malfreyt@synchrotron-soleil.fr> Date: Wed, 23 Apr 2025 18:27:41 +0200 Subject: [PATCH] refactor: revert e9bc2d69 partially to prevent pogo interference (get default values later in get_device_property) --- src/SingleShotAO.cpp | 60 ++++++++++++++++++++++++-------------------- 1 file changed, 33 insertions(+), 27 deletions(-) diff --git a/src/SingleShotAO.cpp b/src/SingleShotAO.cpp index 9a61cc0..f9658b7 100755 --- a/src/SingleShotAO.cpp +++ b/src/SingleShotAO.cpp @@ -253,7 +253,7 @@ void SingleShotAO::init_device() m_state = Tango::FAULT; return; } - + // Initialise variables to default values //-------------------------------------------- @@ -681,83 +681,89 @@ void SingleShotAO::get_device_property() // Call database and extract values //-------------------------------------------- - if (Tango::Util::instance()->_UseDb==true) + if (Tango::Util::instance()->_UseDb == true) { get_db_device()->get_property(dev_prop); } Tango::DbDatum def_prop, cl_prop; SingleShotAOClass *ds_class = (static_cast<SingleShotAOClass *>(get_device_class())); - int i = -1; + int i = -1; //- <BoardNum> ----------------------- // Try to initialize BoardNum from class property cl_prop = ds_class->get_class_property(dev_prop[++i].name); - if (cl_prop.is_empty()==false) cl_prop >> boardNum; - else { + if (cl_prop.is_empty() == false) + cl_prop >> boardNum; + else + { // Try to initialize BoardNum from default device value def_prop = ds_class->get_default_device_property(dev_prop[i].name); if (def_prop.is_empty() == false) - { - def_prop >> boardNum_default; def_prop >> boardNum; - } } // And try to extract BoardNum value from database - if (dev_prop[i].is_empty() == false) dev_prop[i] >> boardNum; + if (dev_prop[i].is_empty() == false) + dev_prop[i] >> boardNum; INFO_STREAM << "Raw BoardNum parsed: " << boardNum << endl; //- <BoardType> ----------------------- // Try to initialize BoardType from class property cl_prop = ds_class->get_class_property(dev_prop[++i].name); - if (cl_prop.is_empty() == false) cl_prop >> boardType; - else { + if (cl_prop.is_empty() == false) + cl_prop >> boardType; + else + { // Try to initialize BoardType from default device value def_prop = ds_class->get_default_device_property(dev_prop[i].name); if (def_prop.is_empty() == false) - { - def_prop >> boardType_default; def_prop >> boardType; - } } // And try to extract BoardType value from database - if (dev_prop[i].is_empty() == false) dev_prop[i] >> boardType; + if (dev_prop[i].is_empty() == false) + dev_prop[i] >> boardType; INFO_STREAM << "Raw BoardType parsed: " << boardType << endl; //- <EnableRamps> ----------------------- // Try to initialize EnableRamps from class property cl_prop = ds_class->get_class_property(dev_prop[++i].name); - if (cl_prop.is_empty() == false) cl_prop >> enableRamps; - else { + if (cl_prop.is_empty() == false) + cl_prop >> enableRamps; + else + { // Try to initialize EnableRamps from default device value def_prop = ds_class->get_default_device_property(dev_prop[i].name); if (def_prop.is_empty() == false) - { - def_prop >> enableRamps_default; def_prop >> enableRamps; - } } // And try to extract EnableRamps value from database - if (dev_prop[i].is_empty() == false) dev_prop[i] >> enableRamps; + if (dev_prop[i].is_empty() == false) + dev_prop[i] >> enableRamps; INFO_STREAM << "EnableRamps parsed: " << (enableRamps ? "true" : "false") << endl; //- <OutputMemorizedChannelsAtInit> ----------------------- // Try to initialize OutputMemorizedChannelsAtInit from class property cl_prop = ds_class->get_class_property(dev_prop[++i].name); - if (cl_prop.is_empty() == false) cl_prop >> outputMemorizedChannelsAtInit; - else { + if (cl_prop.is_empty() == false) + cl_prop >> outputMemorizedChannelsAtInit; + else + { // Try to initialize OutputMemorizedChannelsAtInit from default device value def_prop = ds_class->get_default_device_property(dev_prop[i].name); if (def_prop.is_empty() == false) - { - def_prop >> outputMemorizedChannelsAtInit_default; def_prop >> outputMemorizedChannelsAtInit; - } } // And try to extract OutputMemorizedChannelsAtInit value from database - if (dev_prop[i].is_empty() == false) dev_prop[i] >> outputMemorizedChannelsAtInit; + if (dev_prop[i].is_empty() == false) + dev_prop[i] >> outputMemorizedChannelsAtInit; INFO_STREAM << "OutputMemorizedChannelsAtInit parsed: " << (outputMemorizedChannelsAtInit ? "true" : "false") << endl; + // Get default values from class + //-------------------------------------------- + ds_class->get_default_device_property("BoardNum") >> boardNum_default; + ds_class->get_default_device_property("BoardType") >> boardType_default; + ds_class->get_default_device_property("EnableRamps") >> enableRamps_default; + ds_class->get_default_device_property("OutputMemorizedChannelsAtInit") >> outputMemorizedChannelsAtInit_default; // Create properties if empty and set default values //-------------------------------------------- -- GitLab