diff --git a/SRT/Configuration/CDB/alma/DataBlock/MinorServo/GFR/LookupTables/LookupTables.xml b/SRT/Configuration/CDB/alma/DataBlock/MinorServo/GFR/LookupTables/LookupTables.xml index 9481f7890788a154112c0b50bd231433a4a1be92..c8cb3564cc04d1d6db172fee86be468475c5da2d 100644 --- a/SRT/Configuration/CDB/alma/DataBlock/MinorServo/GFR/LookupTables/LookupTables.xml +++ b/SRT/Configuration/CDB/alma/DataBlock/MinorServo/GFR/LookupTables/LookupTables.xml @@ -23,6 +23,8 @@ <MISTRAL> <axis>ROTATION</axis> <coefficients>-51.821170 </coefficients></MISTRAL> <MISTRAL_ASACTIVE> <axis>ROTATION</axis> <coefficients>-51.821170 </coefficients></MISTRAL_ASACTIVE> + <CABINET> <axis>ROTATION</axis> <coefficients>40 </coefficients></CABINET> + <!-- BWG - GFR open - configurations commented out since the SETUP command takes care of positioning the GFR to 0 --> <!--CCB> <axis>ROTATION</axis> <coefficients>0 </coefficients></CCB--> <!--CCB_ASACTIVE> <axis>ROTATION</axis> <coefficients>0 </coefficients></CCB_ASACTIVE--> diff --git a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoContainers.h b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoContainers.h index 3c5446638b63224658901858b589ab3370ab1aa0..cae77edb364c453394e25fd0990fe57aa35fc462 100644 --- a/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoContainers.h +++ b/SRT/Libraries/SRTMinorServoLibrary/include/SRTMinorServoContainers.h @@ -79,11 +79,11 @@ namespace MinorServo using DiscosConfigurationNameTableType = std::map<std::string, std::pair<SRTMinorServoFocalConfiguration, bool>>; const DiscosConfigurationNameTableType DiscosConfigurationNameTable = { - {"LLP", std::make_pair(CONFIGURATION_PRIMARY, false)}, - {"PPP", std::make_pair(CONFIGURATION_PRIMARY, false)}, - {"PLP", std::make_pair(CONFIGURATION_PRIMARY, false)}, - {"HHP", std::make_pair(CONFIGURATION_PRIMARY, false)}, - {"XKP", std::make_pair(CONFIGURATION_PRIMARY, false)}, + //{"LLP", std::make_pair(CONFIGURATION_PRIMARY, false)}, + //{"PPP", std::make_pair(CONFIGURATION_PRIMARY, false)}, + //{"PLP", std::make_pair(CONFIGURATION_PRIMARY, false)}, + //{"HHP", std::make_pair(CONFIGURATION_PRIMARY, false)}, + //{"XKP", std::make_pair(CONFIGURATION_PRIMARY, false)}, {"CCG", std::make_pair(CONFIGURATION_GREGORIAN1, true )}, {"KKG", std::make_pair(CONFIGURATION_GREGORIAN2, true )}, {"WWG", std::make_pair(CONFIGURATION_GREGORIAN3, true )}, @@ -92,6 +92,7 @@ namespace MinorServo {"MISTRAL", std::make_pair(CONFIGURATION_GREGORIAN6, true )}, {"CCB", std::make_pair(CONFIGURATION_BWG1, true )}, {"XB", std::make_pair(CONFIGURATION_BWG3, true )}, + {"CABINET", std::make_pair(CONFIGURATION_GREGORIAN7, false)}, }; /** diff --git a/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoLookupTable.xsd b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoLookupTable.xsd index 858936df267329f497190fd6f80b87837e75e7bc..4470ec709449f3e8ce3cec3c07a768e9cf3bdd50 100644 --- a/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoLookupTable.xsd +++ b/SRT/Servers/SRTMinorServo/config/CDB/schemas/SRTMinorServoLookupTable.xsd @@ -44,6 +44,7 @@ <xs:element name="CCB_ASACTIVE" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> <xs:element name="XB" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> <xs:element name="XB_ASACTIVE" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> + <xs:element name="CABINET" type="SRTMinorServoCoefficientsType" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> </xs:complexType> diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp index 7c50b8ccae5ab97a78cfb86d87f53b02920ba13d..e890517533278ba5bd0952d90e0cfc0296d56285 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoBossCore.cpp @@ -357,7 +357,8 @@ void SRTMinorServoBossCore::park() m_current_servos.clear(); m_current_tracking_servos.clear(); - try + // Skipping this because of the cover not always engaging the limit switch + /*try { // Send the STOW command to close the gregorian cover if(!m_socket.sendCommand(SRTMinorServoCommandLibrary::stow("GREGORIAN_CAP", COVER_STATUS_CLOSED)).checkOutput()) @@ -376,7 +377,7 @@ void SRTMinorServoBossCore::park() ex.setReason("Error while sending the STOW command to the gregorian cover."); ex.log(LM_DEBUG); throw ex.getParkingErrorEx(); - } + }*/ // Send the STOP command to all the servos for(const auto& [servo_name, servo] : m_servos) diff --git a/SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp b/SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp index f13092fb31537803fbca342d029a145e25ac7323..2e6dff7e242e9ca38e1622340a2a7fccdba8edf8 100644 --- a/SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp +++ b/SRT/Servers/SRTMinorServo/src/SRTMinorServoParkThread.cpp @@ -60,7 +60,9 @@ void SRTMinorServoParkThread::runLoop() case 0: { // First we check if the gregorian cover has closed - bool completed = m_core.m_status.getGregorianCoverPosition() == COVER_STATUS_CLOSED; + // TEMPORARY: we skip the gregorian cover closing, therefore we don't check + //bool completed = m_core.m_status.getGregorianCoverPosition() == COVER_STATUS_CLOSED; + bool completed = true; // Then we cycle through all the servos and make sure their operative mode is STOP if(completed && std::all_of(m_core.m_servos.begin(), m_core.m_servos.end(), [](const std::pair<std::string, SRTBaseMinorServo_ptr>& servo) -> bool